aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp
diff options
context:
space:
mode:
Diffstat (limited to 'net/dccp')
-rw-r--r--net/dccp/ipv4.c72
-rw-r--r--net/dccp/ipv6.c138
-rw-r--r--net/dccp/proto.c9
3 files changed, 111 insertions, 108 deletions
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c
index 8a33c8498d9c..29047995c695 100644
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -986,20 +986,20 @@ do_time_wait:
986} 986}
987 987
988static struct inet_connection_sock_af_ops dccp_ipv4_af_ops = { 988static struct inet_connection_sock_af_ops dccp_ipv4_af_ops = {
989 .queue_xmit = ip_queue_xmit, 989 .queue_xmit = ip_queue_xmit,
990 .send_check = dccp_v4_send_check, 990 .send_check = dccp_v4_send_check,
991 .rebuild_header = inet_sk_rebuild_header, 991 .rebuild_header = inet_sk_rebuild_header,
992 .conn_request = dccp_v4_conn_request, 992 .conn_request = dccp_v4_conn_request,
993 .syn_recv_sock = dccp_v4_request_recv_sock, 993 .syn_recv_sock = dccp_v4_request_recv_sock,
994 .net_header_len = sizeof(struct iphdr), 994 .net_header_len = sizeof(struct iphdr),
995 .setsockopt = ip_setsockopt, 995 .setsockopt = ip_setsockopt,
996 .getsockopt = ip_getsockopt, 996 .getsockopt = ip_getsockopt,
997 .addr2sockaddr = inet_csk_addr2sockaddr,
998 .sockaddr_len = sizeof(struct sockaddr_in),
997#ifdef CONFIG_COMPAT 999#ifdef CONFIG_COMPAT
998 .compat_setsockopt = compat_ip_setsockopt, 1000 .compat_setsockopt = compat_ip_setsockopt,
999 .compat_getsockopt = compat_ip_getsockopt, 1001 .compat_getsockopt = compat_ip_getsockopt,
1000#endif 1002#endif
1001 .addr2sockaddr = inet_csk_addr2sockaddr,
1002 .sockaddr_len = sizeof(struct sockaddr_in),
1003}; 1003};
1004 1004
1005static int dccp_v4_init_sock(struct sock *sk) 1005static int dccp_v4_init_sock(struct sock *sk)
@@ -1044,10 +1044,6 @@ static struct proto dccp_v4_prot = {
1044 .init = dccp_v4_init_sock, 1044 .init = dccp_v4_init_sock,
1045 .setsockopt = dccp_setsockopt, 1045 .setsockopt = dccp_setsockopt,
1046 .getsockopt = dccp_getsockopt, 1046 .getsockopt = dccp_getsockopt,
1047#ifdef CONFIG_COMPAT
1048 .compat_setsockopt = compat_dccp_setsockopt,
1049 .compat_getsockopt = compat_dccp_getsockopt,
1050#endif
1051 .sendmsg = dccp_sendmsg, 1047 .sendmsg = dccp_sendmsg,
1052 .recvmsg = dccp_recvmsg, 1048 .recvmsg = dccp_recvmsg,
1053 .backlog_rcv = dccp_v4_do_rcv, 1049 .backlog_rcv = dccp_v4_do_rcv,
@@ -1062,6 +1058,10 @@ static struct proto dccp_v4_prot = {
1062 .obj_size = sizeof(struct dccp_sock), 1058 .obj_size = sizeof(struct dccp_sock),
1063 .rsk_prot = &dccp_request_sock_ops, 1059 .rsk_prot = &dccp_request_sock_ops,
1064 .twsk_prot = &dccp_timewait_sock_ops, 1060 .twsk_prot = &dccp_timewait_sock_ops,
1061#ifdef CONFIG_COMPAT
1062 .compat_setsockopt = compat_dccp_setsockopt,
1063 .compat_getsockopt = compat_dccp_getsockopt,
1064#endif
1065}; 1065};
1066 1066
1067static struct net_protocol dccp_v4_protocol = { 1067static struct net_protocol dccp_v4_protocol = {
@@ -1071,30 +1071,30 @@ static struct net_protocol dccp_v4_protocol = {
1071}; 1071};
1072 1072
1073static const struct proto_ops inet_dccp_ops = { 1073static const struct proto_ops inet_dccp_ops = {
1074 .family = PF_INET, 1074 .family = PF_INET,
1075 .owner = THIS_MODULE, 1075 .owner = THIS_MODULE,
1076 .release = inet_release, 1076 .release = inet_release,
1077 .bind = inet_bind, 1077 .bind = inet_bind,
1078 .connect = inet_stream_connect, 1078 .connect = inet_stream_connect,
1079 .socketpair = sock_no_socketpair, 1079 .socketpair = sock_no_socketpair,
1080 .accept = inet_accept, 1080 .accept = inet_accept,
1081 .getname = inet_getname, 1081 .getname = inet_getname,
1082 /* FIXME: work on tcp_poll to rename it to inet_csk_poll */ 1082 /* FIXME: work on tcp_poll to rename it to inet_csk_poll */
1083 .poll = dccp_poll, 1083 .poll = dccp_poll,
1084 .ioctl = inet_ioctl, 1084 .ioctl = inet_ioctl,
1085 /* FIXME: work on inet_listen to rename it to sock_common_listen */ 1085 /* FIXME: work on inet_listen to rename it to sock_common_listen */
1086 .listen = inet_dccp_listen, 1086 .listen = inet_dccp_listen,
1087 .shutdown = inet_shutdown, 1087 .shutdown = inet_shutdown,
1088 .setsockopt = sock_common_setsockopt, 1088 .setsockopt = sock_common_setsockopt,
1089 .getsockopt = sock_common_getsockopt, 1089 .getsockopt = sock_common_getsockopt,
1090 .sendmsg = inet_sendmsg,
1091 .recvmsg = sock_common_recvmsg,
1092 .mmap = sock_no_mmap,
1093 .sendpage = sock_no_sendpage,
1090#ifdef CONFIG_COMPAT 1094#ifdef CONFIG_COMPAT
1091 .compat_setsockopt = compat_sock_common_setsockopt, 1095 .compat_setsockopt = compat_sock_common_setsockopt,
1092 .compat_getsockopt = compat_sock_common_getsockopt, 1096 .compat_getsockopt = compat_sock_common_getsockopt,
1093#endif 1097#endif
1094 .sendmsg = inet_sendmsg,
1095 .recvmsg = sock_common_recvmsg,
1096 .mmap = sock_no_mmap,
1097 .sendpage = sock_no_sendpage,
1098}; 1098};
1099 1099
1100static struct inet_protosw dccp_v4_protosw = { 1100static struct inet_protosw dccp_v4_protosw = {
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index 89106c7d3247..65e2ab0886e6 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -1106,40 +1106,40 @@ do_time_wait:
1106} 1106}
1107 1107
1108static struct inet_connection_sock_af_ops dccp_ipv6_af_ops = { 1108static struct inet_connection_sock_af_ops dccp_ipv6_af_ops = {
1109 .queue_xmit = inet6_csk_xmit, 1109 .queue_xmit = inet6_csk_xmit,
1110 .send_check = dccp_v6_send_check, 1110 .send_check = dccp_v6_send_check,
1111 .rebuild_header = inet6_sk_rebuild_header, 1111 .rebuild_header = inet6_sk_rebuild_header,
1112 .conn_request = dccp_v6_conn_request, 1112 .conn_request = dccp_v6_conn_request,
1113 .syn_recv_sock = dccp_v6_request_recv_sock, 1113 .syn_recv_sock = dccp_v6_request_recv_sock,
1114 .net_header_len = sizeof(struct ipv6hdr), 1114 .net_header_len = sizeof(struct ipv6hdr),
1115 .setsockopt = ipv6_setsockopt, 1115 .setsockopt = ipv6_setsockopt,
1116 .getsockopt = ipv6_getsockopt, 1116 .getsockopt = ipv6_getsockopt,
1117 .addr2sockaddr = inet6_csk_addr2sockaddr,
1118 .sockaddr_len = sizeof(struct sockaddr_in6),
1117#ifdef CONFIG_COMPAT 1119#ifdef CONFIG_COMPAT
1118 .compat_setsockopt = compat_ipv6_setsockopt, 1120 .compat_setsockopt = compat_ipv6_setsockopt,
1119 .compat_getsockopt = compat_ipv6_getsockopt, 1121 .compat_getsockopt = compat_ipv6_getsockopt,
1120#endif 1122#endif
1121 .addr2sockaddr = inet6_csk_addr2sockaddr,
1122 .sockaddr_len = sizeof(struct sockaddr_in6)
1123}; 1123};
1124 1124
1125/* 1125/*
1126 * DCCP over IPv4 via INET6 API 1126 * DCCP over IPv4 via INET6 API
1127 */ 1127 */
1128static struct inet_connection_sock_af_ops dccp_ipv6_mapped = { 1128static struct inet_connection_sock_af_ops dccp_ipv6_mapped = {
1129 .queue_xmit = ip_queue_xmit, 1129 .queue_xmit = ip_queue_xmit,
1130 .send_check = dccp_v4_send_check, 1130 .send_check = dccp_v4_send_check,
1131 .rebuild_header = inet_sk_rebuild_header, 1131 .rebuild_header = inet_sk_rebuild_header,
1132 .conn_request = dccp_v6_conn_request, 1132 .conn_request = dccp_v6_conn_request,
1133 .syn_recv_sock = dccp_v6_request_recv_sock, 1133 .syn_recv_sock = dccp_v6_request_recv_sock,
1134 .net_header_len = sizeof(struct iphdr), 1134 .net_header_len = sizeof(struct iphdr),
1135 .setsockopt = ipv6_setsockopt, 1135 .setsockopt = ipv6_setsockopt,
1136 .getsockopt = ipv6_getsockopt, 1136 .getsockopt = ipv6_getsockopt,
1137 .addr2sockaddr = inet6_csk_addr2sockaddr,
1138 .sockaddr_len = sizeof(struct sockaddr_in6),
1137#ifdef CONFIG_COMPAT 1139#ifdef CONFIG_COMPAT
1138 .compat_setsockopt = compat_ipv6_setsockopt, 1140 .compat_setsockopt = compat_ipv6_setsockopt,
1139 .compat_getsockopt = compat_ipv6_getsockopt, 1141 .compat_getsockopt = compat_ipv6_getsockopt,
1140#endif 1142#endif
1141 .addr2sockaddr = inet6_csk_addr2sockaddr,
1142 .sockaddr_len = sizeof(struct sockaddr_in6)
1143}; 1143};
1144 1144
1145/* NOTE: A lot of things set to zero explicitly by call to 1145/* NOTE: A lot of things set to zero explicitly by call to
@@ -1166,33 +1166,33 @@ static int dccp_v6_destroy_sock(struct sock *sk)
1166} 1166}
1167 1167
1168static struct proto dccp_v6_prot = { 1168static struct proto dccp_v6_prot = {
1169 .name = "DCCPv6", 1169 .name = "DCCPv6",
1170 .owner = THIS_MODULE, 1170 .owner = THIS_MODULE,
1171 .close = dccp_close, 1171 .close = dccp_close,
1172 .connect = dccp_v6_connect, 1172 .connect = dccp_v6_connect,
1173 .disconnect = dccp_disconnect, 1173 .disconnect = dccp_disconnect,
1174 .ioctl = dccp_ioctl, 1174 .ioctl = dccp_ioctl,
1175 .init = dccp_v6_init_sock, 1175 .init = dccp_v6_init_sock,
1176 .setsockopt = dccp_setsockopt, 1176 .setsockopt = dccp_setsockopt,
1177 .getsockopt = dccp_getsockopt, 1177 .getsockopt = dccp_getsockopt,
1178 .sendmsg = dccp_sendmsg,
1179 .recvmsg = dccp_recvmsg,
1180 .backlog_rcv = dccp_v6_do_rcv,
1181 .hash = dccp_v6_hash,
1182 .unhash = dccp_unhash,
1183 .accept = inet_csk_accept,
1184 .get_port = dccp_v6_get_port,
1185 .shutdown = dccp_shutdown,
1186 .destroy = dccp_v6_destroy_sock,
1187 .orphan_count = &dccp_orphan_count,
1188 .max_header = MAX_DCCP_HEADER,
1189 .obj_size = sizeof(struct dccp6_sock),
1190 .rsk_prot = &dccp6_request_sock_ops,
1191 .twsk_prot = &dccp6_timewait_sock_ops,
1178#ifdef CONFIG_COMPAT 1192#ifdef CONFIG_COMPAT
1179 .compat_setsockopt = compat_dccp_setsockopt, 1193 .compat_setsockopt = compat_dccp_setsockopt,
1180 .compat_getsockopt = compat_dccp_getsockopt, 1194 .compat_getsockopt = compat_dccp_getsockopt,
1181#endif 1195#endif
1182 .sendmsg = dccp_sendmsg,
1183 .recvmsg = dccp_recvmsg,
1184 .backlog_rcv = dccp_v6_do_rcv,
1185 .hash = dccp_v6_hash,
1186 .unhash = dccp_unhash,
1187 .accept = inet_csk_accept,
1188 .get_port = dccp_v6_get_port,
1189 .shutdown = dccp_shutdown,
1190 .destroy = dccp_v6_destroy_sock,
1191 .orphan_count = &dccp_orphan_count,
1192 .max_header = MAX_DCCP_HEADER,
1193 .obj_size = sizeof(struct dccp6_sock),
1194 .rsk_prot = &dccp6_request_sock_ops,
1195 .twsk_prot = &dccp6_timewait_sock_ops,
1196}; 1196};
1197 1197
1198static struct inet6_protocol dccp_v6_protocol = { 1198static struct inet6_protocol dccp_v6_protocol = {
@@ -1202,28 +1202,28 @@ static struct inet6_protocol dccp_v6_protocol = {
1202}; 1202};
1203 1203
1204static struct proto_ops inet6_dccp_ops = { 1204static struct proto_ops inet6_dccp_ops = {
1205 .family = PF_INET6, 1205 .family = PF_INET6,
1206 .owner = THIS_MODULE, 1206 .owner = THIS_MODULE,
1207 .release = inet6_release, 1207 .release = inet6_release,
1208 .bind = inet6_bind, 1208 .bind = inet6_bind,
1209 .connect = inet_stream_connect, 1209 .connect = inet_stream_connect,
1210 .socketpair = sock_no_socketpair, 1210 .socketpair = sock_no_socketpair,
1211 .accept = inet_accept, 1211 .accept = inet_accept,
1212 .getname = inet6_getname, 1212 .getname = inet6_getname,
1213 .poll = dccp_poll, 1213 .poll = dccp_poll,
1214 .ioctl = inet6_ioctl, 1214 .ioctl = inet6_ioctl,
1215 .listen = inet_dccp_listen, 1215 .listen = inet_dccp_listen,
1216 .shutdown = inet_shutdown, 1216 .shutdown = inet_shutdown,
1217 .setsockopt = sock_common_setsockopt, 1217 .setsockopt = sock_common_setsockopt,
1218 .getsockopt = sock_common_getsockopt, 1218 .getsockopt = sock_common_getsockopt,
1219 .sendmsg = inet_sendmsg,
1220 .recvmsg = sock_common_recvmsg,
1221 .mmap = sock_no_mmap,
1222 .sendpage = sock_no_sendpage,
1219#ifdef CONFIG_COMPAT 1223#ifdef CONFIG_COMPAT
1220 .compat_setsockopt = compat_sock_common_setsockopt, 1224 .compat_setsockopt = compat_sock_common_setsockopt,
1221 .compat_getsockopt = compat_sock_common_getsockopt, 1225 .compat_getsockopt = compat_sock_common_getsockopt,
1222#endif 1226#endif
1223 .sendmsg = inet_sendmsg,
1224 .recvmsg = sock_common_recvmsg,
1225 .mmap = sock_no_mmap,
1226 .sendpage = sock_no_sendpage,
1227}; 1227};
1228 1228
1229static struct inet_protosw dccp_v6_protosw = { 1229static struct inet_protosw dccp_v6_protosw = {
diff --git a/net/dccp/proto.c b/net/dccp/proto.c
index 6d7aef9647de..8a6d0a83047c 100644
--- a/net/dccp/proto.c
+++ b/net/dccp/proto.c
@@ -516,18 +516,19 @@ int dccp_setsockopt(struct sock *sk, int level, int optname,
516 optlen); 516 optlen);
517 return do_dccp_setsockopt(sk, level, optname, optval, optlen); 517 return do_dccp_setsockopt(sk, level, optname, optval, optlen);
518} 518}
519
519EXPORT_SYMBOL_GPL(dccp_setsockopt); 520EXPORT_SYMBOL_GPL(dccp_setsockopt);
520 521
521#ifdef CONFIG_COMPAT 522#ifdef CONFIG_COMPAT
522int compat_dccp_setsockopt(struct sock *sk, int level, int optname, 523int compat_dccp_setsockopt(struct sock *sk, int level, int optname,
523 char __user *optval, int optlen) 524 char __user *optval, int optlen)
524{ 525{
525 if (level != SOL_DCCP) 526 if (level != SOL_DCCP)
526 return inet_csk_compat_setsockopt(sk, level, optname, 527 return inet_csk_compat_setsockopt(sk, level, optname,
527 optval, optlen); 528 optval, optlen);
528
529 return do_dccp_setsockopt(sk, level, optname, optval, optlen); 529 return do_dccp_setsockopt(sk, level, optname, optval, optlen);
530} 530}
531
531EXPORT_SYMBOL_GPL(compat_dccp_setsockopt); 532EXPORT_SYMBOL_GPL(compat_dccp_setsockopt);
532#endif 533#endif
533 534
@@ -609,17 +610,19 @@ int dccp_getsockopt(struct sock *sk, int level, int optname,
609 optlen); 610 optlen);
610 return do_dccp_getsockopt(sk, level, optname, optval, optlen); 611 return do_dccp_getsockopt(sk, level, optname, optval, optlen);
611} 612}
613
612EXPORT_SYMBOL_GPL(dccp_getsockopt); 614EXPORT_SYMBOL_GPL(dccp_getsockopt);
613 615
614#ifdef CONFIG_COMPAT 616#ifdef CONFIG_COMPAT
615int compat_dccp_getsockopt(struct sock *sk, int level, int optname, 617int compat_dccp_getsockopt(struct sock *sk, int level, int optname,
616 char __user *optval, int __user *optlen) 618 char __user *optval, int __user *optlen)
617{ 619{
618 if (level != SOL_DCCP) 620 if (level != SOL_DCCP)
619 return inet_csk_compat_getsockopt(sk, level, optname, 621 return inet_csk_compat_getsockopt(sk, level, optname,
620 optval, optlen); 622 optval, optlen);
621 return do_dccp_getsockopt(sk, level, optname, optval, optlen); 623 return do_dccp_getsockopt(sk, level, optname, optval, optlen);
622} 624}
625
623EXPORT_SYMBOL_GPL(compat_dccp_getsockopt); 626EXPORT_SYMBOL_GPL(compat_dccp_getsockopt);
624#endif 627#endif
625 628