aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/protocol.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/sctp/protocol.c')
-rw-r--r--net/sctp/protocol.c94
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. */
833static const struct proto_ops inet_seqpacket_ops = { 833static 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. */
882static struct sctp_af sctp_ipv4_specific = { 886static 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
910struct sctp_pf *sctp_get_pf_specific(sa_family_t family) { 918struct sctp_pf *sctp_get_pf_specific(sa_family_t family) {