Lines Matching refs:optname
646 static bool setsockopt_needs_rtnl(int optname)
648 switch (optname) {
728 static int do_mcast_group_source(struct sock *sk, int optname,
750 if (optname == MCAST_BLOCK_SOURCE) {
753 } else if (optname == MCAST_UNBLOCK_SOURCE) {
756 } else if (optname == MCAST_JOIN_SOURCE_GROUP) {
851 static int ip_mcast_join_leave(struct sock *sk, int optname,
868 if (optname == MCAST_JOIN_GROUP)
873 static int compat_ip_mcast_join_leave(struct sock *sk, int optname,
891 if (optname == MCAST_JOIN_GROUP)
896 static int do_ip_setsockopt(struct sock *sk, int level, int optname,
902 bool needs_rtnl = setsockopt_needs_rtnl(optname);
904 switch (optname) {
944 if (optname == IP_ROUTER_ALERT)
946 if (ip_mroute_opt(optname))
947 return ip_mroute_setsockopt(sk, optname, optval, optlen);
954 switch (optname) {
1229 if (optname == IP_ADD_MEMBERSHIP)
1280 if (optname == IP_BLOCK_SOURCE) {
1283 } else if (optname == IP_UNBLOCK_SOURCE) {
1286 } else if (optname == IP_ADD_SOURCE_MEMBERSHIP) {
1307 err = compat_ip_mcast_join_leave(sk, optname, optval,
1310 err = ip_mcast_join_leave(sk, optname, optval, optlen);
1316 err = do_mcast_group_source(sk, optname, optval, optlen);
1343 err = xfrm_user_policy(sk, optname, optval, optlen);
1422 int ip_setsockopt(struct sock *sk, int level, int optname, sockptr_t optval,
1430 err = do_ip_setsockopt(sk, level, optname, optval, optlen);
1432 if (optname >= BPFILTER_IPT_SO_SET_REPLACE &&
1433 optname < BPFILTER_IPT_SET_MAX)
1434 err = bpfilter_ip_set_sockopt(sk, optname, optval, optlen);
1438 if (err == -ENOPROTOOPT && optname != IP_HDRINCL &&
1439 optname != IP_IPSEC_POLICY &&
1440 optname != IP_XFRM_POLICY &&
1441 !ip_mroute_opt(optname))
1442 err = nf_setsockopt(sk, PF_INET, optname, optval, optlen);
1453 static bool getsockopt_needs_rtnl(int optname)
1455 switch (optname) {
1522 static int do_ip_getsockopt(struct sock *sk, int level, int optname,
1526 bool needs_rtnl = getsockopt_needs_rtnl(optname);
1533 if (ip_mroute_opt(optname))
1534 return ip_mroute_getsockopt(sk, optname, optval, optlen);
1545 switch (optname) {
1767 int optname, char __user *optval, int __user *optlen)
1771 err = do_ip_getsockopt(sk, level, optname, optval, optlen);
1774 if (optname >= BPFILTER_IPT_SO_GET_INFO &&
1775 optname < BPFILTER_IPT_GET_MAX)
1776 err = bpfilter_ip_get_sockopt(sk, optname, optval, optlen);
1780 if (err == -ENOPROTOOPT && optname != IP_PKTOPTIONS &&
1781 !ip_mroute_opt(optname)) {
1787 err = nf_getsockopt(sk, PF_INET, optname, optval, &len);