diff options
author | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-03-21 14:05:45 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2006-03-21 14:05:45 -0500 |
commit | d04cdb64212eb5ae6a98026a97dda626e40e8e9a (patch) | |
tree | b6a7dbb21ccfceb915844e9a330b3d3dfcaf3c5b /net/sctp | |
parent | 2f8600dff2b140096a7df781884e918a16aa90e0 (diff) | |
parent | ec1248e70edc5cf7b485efcc7b41e44e10f422e5 (diff) |
Merge ../linux-2.6
Diffstat (limited to 'net/sctp')
-rw-r--r-- | net/sctp/ipv6.c | 92 | ||||
-rw-r--r-- | net/sctp/protocol.c | 94 |
2 files changed, 101 insertions, 85 deletions
diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c index 2e266129a764..c20d282fac06 100644 --- a/net/sctp/ipv6.c +++ b/net/sctp/ipv6.c | |||
@@ -861,23 +861,27 @@ static int sctp_inet6_supported_addrs(const struct sctp_sock *opt, | |||
861 | } | 861 | } |
862 | 862 | ||
863 | static const struct proto_ops inet6_seqpacket_ops = { | 863 | static const struct proto_ops inet6_seqpacket_ops = { |
864 | .family = PF_INET6, | 864 | .family = PF_INET6, |
865 | .owner = THIS_MODULE, | 865 | .owner = THIS_MODULE, |
866 | .release = inet6_release, | 866 | .release = inet6_release, |
867 | .bind = inet6_bind, | 867 | .bind = inet6_bind, |
868 | .connect = inet_dgram_connect, | 868 | .connect = inet_dgram_connect, |
869 | .socketpair = sock_no_socketpair, | 869 | .socketpair = sock_no_socketpair, |
870 | .accept = inet_accept, | 870 | .accept = inet_accept, |
871 | .getname = inet6_getname, | 871 | .getname = inet6_getname, |
872 | .poll = sctp_poll, | 872 | .poll = sctp_poll, |
873 | .ioctl = inet6_ioctl, | 873 | .ioctl = inet6_ioctl, |
874 | .listen = sctp_inet_listen, | 874 | .listen = sctp_inet_listen, |
875 | .shutdown = inet_shutdown, | 875 | .shutdown = inet_shutdown, |
876 | .setsockopt = sock_common_setsockopt, | 876 | .setsockopt = sock_common_setsockopt, |
877 | .getsockopt = sock_common_getsockopt, | 877 | .getsockopt = sock_common_getsockopt, |
878 | .sendmsg = inet_sendmsg, | 878 | .sendmsg = inet_sendmsg, |
879 | .recvmsg = sock_common_recvmsg, | 879 | .recvmsg = sock_common_recvmsg, |
880 | .mmap = sock_no_mmap, | 880 | .mmap = sock_no_mmap, |
881 | #ifdef CONFIG_COMPAT | ||
882 | .compat_setsockopt = compat_sock_common_setsockopt, | ||
883 | .compat_getsockopt = compat_sock_common_getsockopt, | ||
884 | #endif | ||
881 | }; | 885 | }; |
882 | 886 | ||
883 | static struct inet_protosw sctpv6_seqpacket_protosw = { | 887 | static struct inet_protosw sctpv6_seqpacket_protosw = { |
@@ -911,31 +915,35 @@ static struct inet6_protocol sctpv6_protocol = { | |||
911 | }; | 915 | }; |
912 | 916 | ||
913 | static struct sctp_af sctp_ipv6_specific = { | 917 | static struct sctp_af sctp_ipv6_specific = { |
914 | .sctp_xmit = sctp_v6_xmit, | 918 | .sa_family = AF_INET6, |
915 | .setsockopt = ipv6_setsockopt, | 919 | .sctp_xmit = sctp_v6_xmit, |
916 | .getsockopt = ipv6_getsockopt, | 920 | .setsockopt = ipv6_setsockopt, |
917 | .get_dst = sctp_v6_get_dst, | 921 | .getsockopt = ipv6_getsockopt, |
918 | .get_saddr = sctp_v6_get_saddr, | 922 | .get_dst = sctp_v6_get_dst, |
919 | .copy_addrlist = sctp_v6_copy_addrlist, | 923 | .get_saddr = sctp_v6_get_saddr, |
920 | .from_skb = sctp_v6_from_skb, | 924 | .copy_addrlist = sctp_v6_copy_addrlist, |
921 | .from_sk = sctp_v6_from_sk, | 925 | .from_skb = sctp_v6_from_skb, |
922 | .to_sk_saddr = sctp_v6_to_sk_saddr, | 926 | .from_sk = sctp_v6_from_sk, |
923 | .to_sk_daddr = sctp_v6_to_sk_daddr, | 927 | .to_sk_saddr = sctp_v6_to_sk_saddr, |
924 | .from_addr_param = sctp_v6_from_addr_param, | 928 | .to_sk_daddr = sctp_v6_to_sk_daddr, |
925 | .to_addr_param = sctp_v6_to_addr_param, | 929 | .from_addr_param = sctp_v6_from_addr_param, |
926 | .dst_saddr = sctp_v6_dst_saddr, | 930 | .to_addr_param = sctp_v6_to_addr_param, |
927 | .cmp_addr = sctp_v6_cmp_addr, | 931 | .dst_saddr = sctp_v6_dst_saddr, |
928 | .scope = sctp_v6_scope, | 932 | .cmp_addr = sctp_v6_cmp_addr, |
929 | .addr_valid = sctp_v6_addr_valid, | 933 | .scope = sctp_v6_scope, |
930 | .inaddr_any = sctp_v6_inaddr_any, | 934 | .addr_valid = sctp_v6_addr_valid, |
931 | .is_any = sctp_v6_is_any, | 935 | .inaddr_any = sctp_v6_inaddr_any, |
932 | .available = sctp_v6_available, | 936 | .is_any = sctp_v6_is_any, |
933 | .skb_iif = sctp_v6_skb_iif, | 937 | .available = sctp_v6_available, |
934 | .is_ce = sctp_v6_is_ce, | 938 | .skb_iif = sctp_v6_skb_iif, |
935 | .seq_dump_addr = sctp_v6_seq_dump_addr, | 939 | .is_ce = sctp_v6_is_ce, |
936 | .net_header_len = sizeof(struct ipv6hdr), | 940 | .seq_dump_addr = sctp_v6_seq_dump_addr, |
937 | .sockaddr_len = sizeof(struct sockaddr_in6), | 941 | .net_header_len = sizeof(struct ipv6hdr), |
938 | .sa_family = AF_INET6, | 942 | .sockaddr_len = sizeof(struct sockaddr_in6), |
943 | #ifdef CONFIG_COMPAT | ||
944 | .compat_setsockopt = compat_ipv6_setsockopt, | ||
945 | .compat_getsockopt = compat_ipv6_getsockopt, | ||
946 | #endif | ||
939 | }; | 947 | }; |
940 | 948 | ||
941 | static struct sctp_pf sctp_pf_inet6_specific = { | 949 | static struct sctp_pf sctp_pf_inet6_specific = { |
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) { |