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) { |