diff options
Diffstat (limited to 'net/sctp/protocol.c')
| -rw-r--r-- | net/sctp/protocol.c | 94 |
1 files changed, 51 insertions, 43 deletions
diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c index de693b43c8ea..2088aa992b7a 100644 --- a/net/sctp/protocol.c +++ b/net/sctp/protocol.c | |||
| @@ -831,24 +831,28 @@ static struct notifier_block sctp_inetaddr_notifier = { | |||
| 831 | 831 | ||
| 832 | /* Socket operations. */ | 832 | /* Socket operations. */ |
| 833 | static const struct proto_ops inet_seqpacket_ops = { | 833 | static const struct proto_ops inet_seqpacket_ops = { |
| 834 | .family = PF_INET, | 834 | .family = PF_INET, |
| 835 | .owner = THIS_MODULE, | 835 | .owner = THIS_MODULE, |
| 836 | .release = inet_release, /* Needs to be wrapped... */ | 836 | .release = inet_release, /* Needs to be wrapped... */ |
| 837 | .bind = inet_bind, | 837 | .bind = inet_bind, |
| 838 | .connect = inet_dgram_connect, | 838 | .connect = inet_dgram_connect, |
| 839 | .socketpair = sock_no_socketpair, | 839 | .socketpair = sock_no_socketpair, |
| 840 | .accept = inet_accept, | 840 | .accept = inet_accept, |
| 841 | .getname = inet_getname, /* Semantics are different. */ | 841 | .getname = inet_getname, /* Semantics are different. */ |
| 842 | .poll = sctp_poll, | 842 | .poll = sctp_poll, |
| 843 | .ioctl = inet_ioctl, | 843 | .ioctl = inet_ioctl, |
| 844 | .listen = sctp_inet_listen, | 844 | .listen = sctp_inet_listen, |
| 845 | .shutdown = inet_shutdown, /* Looks harmless. */ | 845 | .shutdown = inet_shutdown, /* Looks harmless. */ |
| 846 | .setsockopt = sock_common_setsockopt, /* IP_SOL IP_OPTION is a problem. */ | 846 | .setsockopt = sock_common_setsockopt, /* IP_SOL IP_OPTION is a problem */ |
| 847 | .getsockopt = sock_common_getsockopt, | 847 | .getsockopt = sock_common_getsockopt, |
| 848 | .sendmsg = inet_sendmsg, | 848 | .sendmsg = inet_sendmsg, |
| 849 | .recvmsg = sock_common_recvmsg, | 849 | .recvmsg = sock_common_recvmsg, |
| 850 | .mmap = sock_no_mmap, | 850 | .mmap = sock_no_mmap, |
| 851 | .sendpage = sock_no_sendpage, | 851 | .sendpage = sock_no_sendpage, |
| 852 | #ifdef CONFIG_COMPAT | ||
| 853 | .compat_setsockopt = compat_sock_common_setsockopt, | ||
| 854 | .compat_getsockopt = compat_sock_common_getsockopt, | ||
| 855 | #endif | ||
| 852 | }; | 856 | }; |
| 853 | 857 | ||
| 854 | /* Registration with AF_INET family. */ | 858 | /* Registration with AF_INET family. */ |
| @@ -880,31 +884,35 @@ static struct net_protocol sctp_protocol = { | |||
| 880 | 884 | ||
| 881 | /* IPv4 address related functions. */ | 885 | /* IPv4 address related functions. */ |
| 882 | static struct sctp_af sctp_ipv4_specific = { | 886 | static struct sctp_af sctp_ipv4_specific = { |
| 883 | .sctp_xmit = sctp_v4_xmit, | 887 | .sa_family = AF_INET, |
| 884 | .setsockopt = ip_setsockopt, | 888 | .sctp_xmit = sctp_v4_xmit, |
| 885 | .getsockopt = ip_getsockopt, | 889 | .setsockopt = ip_setsockopt, |
| 886 | .get_dst = sctp_v4_get_dst, | 890 | .getsockopt = ip_getsockopt, |
| 887 | .get_saddr = sctp_v4_get_saddr, | 891 | .get_dst = sctp_v4_get_dst, |
| 888 | .copy_addrlist = sctp_v4_copy_addrlist, | 892 | .get_saddr = sctp_v4_get_saddr, |
| 889 | .from_skb = sctp_v4_from_skb, | 893 | .copy_addrlist = sctp_v4_copy_addrlist, |
| 890 | .from_sk = sctp_v4_from_sk, | 894 | .from_skb = sctp_v4_from_skb, |
| 891 | .to_sk_saddr = sctp_v4_to_sk_saddr, | 895 | .from_sk = sctp_v4_from_sk, |
| 892 | .to_sk_daddr = sctp_v4_to_sk_daddr, | 896 | .to_sk_saddr = sctp_v4_to_sk_saddr, |
| 893 | .from_addr_param= sctp_v4_from_addr_param, | 897 | .to_sk_daddr = sctp_v4_to_sk_daddr, |
| 894 | .to_addr_param = sctp_v4_to_addr_param, | 898 | .from_addr_param = sctp_v4_from_addr_param, |
| 895 | .dst_saddr = sctp_v4_dst_saddr, | 899 | .to_addr_param = sctp_v4_to_addr_param, |
| 896 | .cmp_addr = sctp_v4_cmp_addr, | 900 | .dst_saddr = sctp_v4_dst_saddr, |
| 897 | .addr_valid = sctp_v4_addr_valid, | 901 | .cmp_addr = sctp_v4_cmp_addr, |
| 898 | .inaddr_any = sctp_v4_inaddr_any, | 902 | .addr_valid = sctp_v4_addr_valid, |
| 899 | .is_any = sctp_v4_is_any, | 903 | .inaddr_any = sctp_v4_inaddr_any, |
| 900 | .available = sctp_v4_available, | 904 | .is_any = sctp_v4_is_any, |
| 901 | .scope = sctp_v4_scope, | 905 | .available = sctp_v4_available, |
| 902 | .skb_iif = sctp_v4_skb_iif, | 906 | .scope = sctp_v4_scope, |
| 903 | .is_ce = sctp_v4_is_ce, | 907 | .skb_iif = sctp_v4_skb_iif, |
| 904 | .seq_dump_addr = sctp_v4_seq_dump_addr, | 908 | .is_ce = sctp_v4_is_ce, |
| 905 | .net_header_len = sizeof(struct iphdr), | 909 | .seq_dump_addr = sctp_v4_seq_dump_addr, |
| 906 | .sockaddr_len = sizeof(struct sockaddr_in), | 910 | .net_header_len = sizeof(struct iphdr), |
| 907 | .sa_family = AF_INET, | 911 | .sockaddr_len = sizeof(struct sockaddr_in), |
| 912 | #ifdef CONFIG_COMPAT | ||
| 913 | .compat_setsockopt = compat_ip_setsockopt, | ||
| 914 | .compat_getsockopt = compat_ip_getsockopt, | ||
| 915 | #endif | ||
| 908 | }; | 916 | }; |
| 909 | 917 | ||
| 910 | struct sctp_pf *sctp_get_pf_specific(sa_family_t family) { | 918 | struct sctp_pf *sctp_get_pf_specific(sa_family_t family) { |
