|
|
|
|
@ -745,8 +745,9 @@ tcp_enqueue_flags(struct tcp_pcb *pcb, u8_t flags)
|
|
|
|
|
LWIP_ASSERT("tcp_enqueue_flags: need either TCP_SYN or TCP_FIN in flags (programmer violates API)", |
|
|
|
|
(flags & (TCP_SYN | TCP_FIN)) != 0); |
|
|
|
|
|
|
|
|
|
/* check for configured max queuelen and possible overflow */ |
|
|
|
|
if ((pcb->snd_queuelen >= TCP_SND_QUEUELEN) || (pcb->snd_queuelen > TCP_SNDQUEUELEN_OVERFLOW)) { |
|
|
|
|
/* check for configured max queuelen and possible overflow (FIN flag should always come through!) */ |
|
|
|
|
if (((pcb->snd_queuelen >= TCP_SND_QUEUELEN) || (pcb->snd_queuelen > TCP_SNDQUEUELEN_OVERFLOW)) && |
|
|
|
|
((flags & TCP_FIN) == 0)) { |
|
|
|
|
LWIP_DEBUGF(TCP_OUTPUT_DEBUG | 3, ("tcp_enqueue_flags: too long queue %"U16_F" (max %"U16_F")\n", |
|
|
|
|
pcb->snd_queuelen, TCP_SND_QUEUELEN)); |
|
|
|
|
TCP_STATS_INC(tcp.memerr); |
|
|
|
|
|