[IP_SOCKGLUE]: Remove most of the tcp specific calls
As DCCP needs to be called in the same spots. Now we have a member in inet_sock (is_icsk), set at sock creation time from struct inet_protosw->flags (if INET_PROTOSW_ICSK is set, like for TCP and DCCP) to see if a struct sock instance is a inet_connection_sock for places like the ones in ip_sockglue.c (v4 and v6) where we previously were looking if sk_type was SOCK_STREAM, that is insufficient because we now use the same code for DCCP, that has sk_type SOCK_DCCP. Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
2271281362
commit
d83d8461f9
@@ -134,12 +134,13 @@ static int dccp_transmit_skb(struct sock *sk, struct sk_buff *skb)
|
||||
|
||||
unsigned int dccp_sync_mss(struct sock *sk, u32 pmtu)
|
||||
{
|
||||
struct inet_connection_sock *icsk = inet_csk(sk);
|
||||
struct dccp_sock *dp = dccp_sk(sk);
|
||||
int mss_now = (pmtu - inet_csk(sk)->icsk_af_ops->net_header_len -
|
||||
int mss_now = (pmtu - icsk->icsk_af_ops->net_header_len -
|
||||
sizeof(struct dccp_hdr) - sizeof(struct dccp_hdr_ext));
|
||||
|
||||
/* Now subtract optional transport overhead */
|
||||
mss_now -= dp->dccps_ext_header_len;
|
||||
mss_now -= icsk->icsk_ext_hdr_len;
|
||||
|
||||
/*
|
||||
* FIXME: this should come from the CCID infrastructure, where, say,
|
||||
@@ -152,7 +153,7 @@ unsigned int dccp_sync_mss(struct sock *sk, u32 pmtu)
|
||||
mss_now -= ((5 + 6 + 10 + 6 + 6 + 6 + 3) / 4) * 4;
|
||||
|
||||
/* And store cached results */
|
||||
dp->dccps_pmtu_cookie = pmtu;
|
||||
icsk->icsk_pmtu_cookie = pmtu;
|
||||
dp->dccps_mss_cache = mss_now;
|
||||
|
||||
return mss_now;
|
||||
|
||||
Reference in New Issue
Block a user