From 45e142af552e87db53fa15433ead1b6cf6dcaa82 Mon Sep 17 00:00:00 2001 From: goldsimon Date: Wed, 28 Mar 2012 11:06:52 +0200 Subject: [PATCH] fixed the fix for bug #35945 (SYN packet should provide the recv MSS not the send MSS) if TCP_CALCULATE_EFF_SEND_MSS==0 --- src/core/tcp_out.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/core/tcp_out.c b/src/core/tcp_out.c index ff0648ac..81d1f272 100644 --- a/src/core/tcp_out.c +++ b/src/core/tcp_out.c @@ -1066,7 +1066,13 @@ tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb) packets, so ignore it here */ opts = (u32_t *)(void *)(seg->tcphdr + 1); if (seg->flags & TF_SEG_OPTS_MSS) { - *opts = TCP_BUILD_MSS_OPTION(tcp_eff_send_mss(TCP_MSS, &pcb->remote_ip)); + u16_t mss; +#if TCP_CALCULATE_EFF_SEND_MSS + mss = tcp_eff_send_mss(TCP_MSS, &pcb->remote_ip); +#else /* TCP_CALCULATE_EFF_SEND_MSS */ + mss = TCP_MSS; +#endif /* TCP_CALCULATE_EFF_SEND_MSS */ + *opts = TCP_BUILD_MSS_OPTION(mss); opts += 1; } #if LWIP_TCP_TIMESTAMPS