ipv6_sockglue.c (e6848976b721eeb5551cd94673faafeef78d9f35) | ipv6_sockglue.c (20380731bc2897f2952ae055420972ded4cd786e) |
---|---|
1/* 2 * IPv6 BSD socket options interface 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on linux/net/ipv4/ip_sockglue.c --- 95 unchanged lines hidden (view full) --- 104 new_ra->destructor = destructor; 105 new_ra->next = ra; 106 *rap = new_ra; 107 sock_hold(sk); 108 write_unlock_bh(&ip6_ra_lock); 109 return 0; 110} 111 | 1/* 2 * IPv6 BSD socket options interface 3 * Linux INET6 implementation 4 * 5 * Authors: 6 * Pedro Roque <roque@di.fc.ul.pt> 7 * 8 * Based on linux/net/ipv4/ip_sockglue.c --- 95 unchanged lines hidden (view full) --- 104 new_ra->destructor = destructor; 105 new_ra->next = ra; 106 *rap = new_ra; 107 sock_hold(sk); 108 write_unlock_bh(&ip6_ra_lock); 109 return 0; 110} 111 |
112extern int ip6_mc_source(int add, int omode, struct sock *sk, 113 struct group_source_req *pgsr); 114extern int ip6_mc_msfilter(struct sock *sk, struct group_filter *gsf); 115extern int ip6_mc_msfget(struct sock *sk, struct group_filter *gsf, 116 struct group_filter __user *optval, int __user *optlen); 117 118 | |
119int ipv6_setsockopt(struct sock *sk, int level, int optname, 120 char __user *optval, int optlen) 121{ 122 struct ipv6_pinfo *np = inet6_sk(sk); 123 int val, valbool; 124 int retv = -ENOPROTOOPT; 125 126 if (level == SOL_IP && sk->sk_type != SOCK_RAW) --- 314 unchanged lines hidden (view full) --- 441 omode = MCAST_INCLUDE; 442 add = 0; 443 } 444 retv = ip6_mc_source(add, omode, sk, &greqs); 445 break; 446 } 447 case MCAST_MSFILTER: 448 { | 112int ipv6_setsockopt(struct sock *sk, int level, int optname, 113 char __user *optval, int optlen) 114{ 115 struct ipv6_pinfo *np = inet6_sk(sk); 116 int val, valbool; 117 int retv = -ENOPROTOOPT; 118 119 if (level == SOL_IP && sk->sk_type != SOCK_RAW) --- 314 unchanged lines hidden (view full) --- 434 omode = MCAST_INCLUDE; 435 add = 0; 436 } 437 retv = ip6_mc_source(add, omode, sk, &greqs); 438 break; 439 } 440 case MCAST_MSFILTER: 441 { |
449 extern int sysctl_optmem_max; | |
450 extern int sysctl_mld_max_msf; 451 struct group_filter *gsf; 452 453 if (optlen < GROUP_FILTER_SIZE(0)) 454 goto e_inval; 455 if (optlen > sysctl_optmem_max) { 456 retv = -ENOBUFS; 457 break; --- 260 unchanged lines hidden --- | 442 extern int sysctl_mld_max_msf; 443 struct group_filter *gsf; 444 445 if (optlen < GROUP_FILTER_SIZE(0)) 446 goto e_inval; 447 if (optlen > sysctl_optmem_max) { 448 retv = -ENOBUFS; 449 break; --- 260 unchanged lines hidden --- |