diff options
-rw-r--r-- | include/linux/dccp.h | 2 | ||||
-rw-r--r-- | net/dccp/ipv4.c | 6 | ||||
-rw-r--r-- | net/dccp/ipv6.c | 1 | ||||
-rw-r--r-- | net/ipv4/inet_connection_sock.c | 3 |
4 files changed, 10 insertions, 2 deletions
diff --git a/include/linux/dccp.h b/include/linux/dccp.h index eaf95a023af4..d16294e2a118 100644 --- a/include/linux/dccp.h +++ b/include/linux/dccp.h | |||
@@ -549,6 +549,8 @@ static inline const char *dccp_role(const struct sock *sk) | |||
549 | return NULL; | 549 | return NULL; |
550 | } | 550 | } |
551 | 551 | ||
552 | extern void dccp_syn_ack_timeout(struct sock *sk, struct request_sock *req); | ||
553 | |||
552 | #endif /* __KERNEL__ */ | 554 | #endif /* __KERNEL__ */ |
553 | 555 | ||
554 | #endif /* _LINUX_DCCP_H */ | 556 | #endif /* _LINUX_DCCP_H */ |
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c index caf6e1734b62..07f5579ca756 100644 --- a/net/dccp/ipv4.c +++ b/net/dccp/ipv4.c | |||
@@ -574,6 +574,11 @@ static void dccp_v4_reqsk_destructor(struct request_sock *req) | |||
574 | kfree(inet_rsk(req)->opt); | 574 | kfree(inet_rsk(req)->opt); |
575 | } | 575 | } |
576 | 576 | ||
577 | void dccp_syn_ack_timeout(struct sock *sk, struct request_sock *req) | ||
578 | { | ||
579 | } | ||
580 | EXPORT_SYMBOL(dccp_syn_ack_timeout); | ||
581 | |||
577 | static struct request_sock_ops dccp_request_sock_ops __read_mostly = { | 582 | static struct request_sock_ops dccp_request_sock_ops __read_mostly = { |
578 | .family = PF_INET, | 583 | .family = PF_INET, |
579 | .obj_size = sizeof(struct dccp_request_sock), | 584 | .obj_size = sizeof(struct dccp_request_sock), |
@@ -581,6 +586,7 @@ static struct request_sock_ops dccp_request_sock_ops __read_mostly = { | |||
581 | .send_ack = dccp_reqsk_send_ack, | 586 | .send_ack = dccp_reqsk_send_ack, |
582 | .destructor = dccp_v4_reqsk_destructor, | 587 | .destructor = dccp_v4_reqsk_destructor, |
583 | .send_reset = dccp_v4_ctl_send_reset, | 588 | .send_reset = dccp_v4_ctl_send_reset, |
589 | .syn_ack_timeout = dccp_syn_ack_timeout, | ||
584 | }; | 590 | }; |
585 | 591 | ||
586 | int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb) | 592 | int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb) |
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c index 4dc588f520e0..e923ac95bb04 100644 --- a/net/dccp/ipv6.c +++ b/net/dccp/ipv6.c | |||
@@ -343,6 +343,7 @@ static struct request_sock_ops dccp6_request_sock_ops = { | |||
343 | .send_ack = dccp_reqsk_send_ack, | 343 | .send_ack = dccp_reqsk_send_ack, |
344 | .destructor = dccp_v6_reqsk_destructor, | 344 | .destructor = dccp_v6_reqsk_destructor, |
345 | .send_reset = dccp_v6_ctl_send_reset, | 345 | .send_reset = dccp_v6_ctl_send_reset, |
346 | .syn_ack_timeout = dccp_syn_ack_timeout, | ||
346 | }; | 347 | }; |
347 | 348 | ||
348 | static struct sock *dccp_v6_hnd_req(struct sock *sk,struct sk_buff *skb) | 349 | static struct sock *dccp_v6_hnd_req(struct sock *sk,struct sk_buff *skb) |
diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c index c12396f2785f..d19f32aca6ca 100644 --- a/net/ipv4/inet_connection_sock.c +++ b/net/ipv4/inet_connection_sock.c | |||
@@ -555,8 +555,7 @@ void inet_csk_reqsk_queue_prune(struct sock *parent, | |||
555 | syn_ack_recalc(req, thresh, max_retries, | 555 | syn_ack_recalc(req, thresh, max_retries, |
556 | queue->rskq_defer_accept, | 556 | queue->rskq_defer_accept, |
557 | &expire, &resend); | 557 | &expire, &resend); |
558 | if (req->rsk_ops->syn_ack_timeout) | 558 | req->rsk_ops->syn_ack_timeout(parent, req); |
559 | req->rsk_ops->syn_ack_timeout(parent, req); | ||
560 | if (!expire && | 559 | if (!expire && |
561 | (!resend || | 560 | (!resend || |
562 | !req->rsk_ops->rtx_syn_ack(parent, req, NULL) || | 561 | !req->rsk_ops->rtx_syn_ack(parent, req, NULL) || |