|
|
|
|
@ -1456,9 +1456,11 @@ tcp_zero_window_probe(struct tcp_pcb *pcb)
|
|
|
|
|
TCPH_FLAGS_SET(tcphdr, TCP_ACK | TCP_FIN); |
|
|
|
|
} else { |
|
|
|
|
/* Data segment, copy in one byte from the head of the unacked queue */ |
|
|
|
|
struct tcp_hdr *thdr = (struct tcp_hdr *)seg->p->payload; |
|
|
|
|
char *d = ((char *)p->payload + TCP_HLEN); |
|
|
|
|
pbuf_copy_partial(seg->p, d, 1, TCPH_HDRLEN(thdr) * 4); |
|
|
|
|
/* Depending on whether the segment has already been sent (unacked) or not
|
|
|
|
|
(unsent), seg->p->payload points to the IP header or TCP header. |
|
|
|
|
Ensure we copy the first TCP data byte: */ |
|
|
|
|
pbuf_copy_partial(seg->p, d, 1, seg->p->tot_len - seg->len); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#if CHECKSUM_GEN_TCP |
|
|
|
|
|