Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c72e1183 authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

inet: makes syn_ack_timeout mandatory



There are two struct request_sock_ops providers, tcp and dccp.

inet_csk_reqsk_queue_prune() can avoid testing syn_ack_timeout being
NULL if we make it non NULL like syn_ack_timeout

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Cc: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Cc: dccp@vger.kernel.org
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent fd4f2cea
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -549,6 +549,8 @@ static inline const char *dccp_role(const struct sock *sk)
	return NULL;
}

extern void dccp_syn_ack_timeout(struct sock *sk, struct request_sock *req);

#endif /* __KERNEL__ */

#endif /* _LINUX_DCCP_H */
+6 −0
Original line number Diff line number Diff line
@@ -574,6 +574,11 @@ static void dccp_v4_reqsk_destructor(struct request_sock *req)
	kfree(inet_rsk(req)->opt);
}

void dccp_syn_ack_timeout(struct sock *sk, struct request_sock *req)
{
}
EXPORT_SYMBOL(dccp_syn_ack_timeout);

static struct request_sock_ops dccp_request_sock_ops __read_mostly = {
	.family		= PF_INET,
	.obj_size	= sizeof(struct dccp_request_sock),
@@ -581,6 +586,7 @@ static struct request_sock_ops dccp_request_sock_ops __read_mostly = {
	.send_ack	= dccp_reqsk_send_ack,
	.destructor	= dccp_v4_reqsk_destructor,
	.send_reset	= dccp_v4_ctl_send_reset,
	.syn_ack_timeout = dccp_syn_ack_timeout,
};

int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
+1 −0
Original line number Diff line number Diff line
@@ -343,6 +343,7 @@ static struct request_sock_ops dccp6_request_sock_ops = {
	.send_ack	= dccp_reqsk_send_ack,
	.destructor	= dccp_v6_reqsk_destructor,
	.send_reset	= dccp_v6_ctl_send_reset,
	.syn_ack_timeout = dccp_syn_ack_timeout,
};

static struct sock *dccp_v6_hnd_req(struct sock *sk,struct sk_buff *skb)
+1 −2
Original line number Diff line number Diff line
@@ -555,7 +555,6 @@ void inet_csk_reqsk_queue_prune(struct sock *parent,
				syn_ack_recalc(req, thresh, max_retries,
					       queue->rskq_defer_accept,
					       &expire, &resend);
				if (req->rsk_ops->syn_ack_timeout)
				req->rsk_ops->syn_ack_timeout(parent, req);
				if (!expire &&
				    (!resend ||