fixed the fix for bug #35945 (SYN packet should provide the recv MSS not the send MSS) if TCP_CALCULATE_EFF_SEND_MSS==0

This commit is contained in:
goldsimon 2012-03-28 11:06:52 +02:00
parent e5d54f5344
commit 1dff9aea62

View File

@ -1071,7 +1071,13 @@ tcp_output_segment(struct tcp_seg *seg, struct tcp_pcb *pcb)
packets, so ignore it here */ packets, so ignore it here */
opts = (u32_t *)(void *)(seg->tcphdr + 1); opts = (u32_t *)(void *)(seg->tcphdr + 1);
if (seg->flags & TF_SEG_OPTS_MSS) { if (seg->flags & TF_SEG_OPTS_MSS) {
*opts = TCP_BUILD_MSS_OPTION(tcp_eff_send_mss(TCP_MSS, &pcb->local_ip, &pcb->remote_ip, PCB_ISIPV6(pcb))); u16_t mss;
#if TCP_CALCULATE_EFF_SEND_MSS
mss = tcp_eff_send_mss(TCP_MSS, &pcb->local_ip, &pcb->remote_ip, PCB_ISIPV6(pcb));
#else /* TCP_CALCULATE_EFF_SEND_MSS */
mss = TCP_MSS;
#endif /* TCP_CALCULATE_EFF_SEND_MSS */
*opts = TCP_BUILD_MSS_OPTION(mss);
opts += 1; opts += 1;
} }
#if LWIP_TCP_TIMESTAMPS #if LWIP_TCP_TIMESTAMPS