u8_t closing;
u8_t fin_wait2;
u8_t last_ack;
+ u8_t fin_wait1;
u8_t listen;
u8_t bound;
u8_t total;
tcp_pcb_num->last_ack ++;
} else if (pcb->state == CLOSING) {
tcp_pcb_num->closing ++;
+ } else if (pcb->state == FIN_WAIT_1){
+ tcp_pcb_num->fin_wait1 ++;
}
}
} else if (tcp_pcb_num.closing > 0){
tcp_kill_state(CLOSING);
} else if (tcp_pcb_num.fin_wait2 > 0){
- tcp_kill_state(FIN_WAIT_2);//TODO check whether we have issue here?????
+ tcp_kill_state(FIN_WAIT_2);
+ } else if (tcp_pcb_num.fin_wait1 > 0){
+ tcp_kill_state(FIN_WAIT_1);
} else {
tcp_kill_prio(prio);
}
tcp_pcb_num_cal(&tcp_pcb_num);
if (tcp_pcb_num.total >= MEMP_NUM_TCP_PCB){
- LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: no available tcp pcb %d %d %d %d %d %d %d\n",
+ LWIP_DEBUGF(TCP_DEBUG, ("tcp_alloc: no available tcp pcb %d %d %d %d %d %d %d %d\n",
tcp_pcb_num.total, tcp_pcb_num.time_wait, tcp_pcb_num.last_ack, tcp_pcb_num.closing,
- tcp_pcb_num.fin_wait2, tcp_pcb_num.listen, tcp_pcb_num.bound));
+ tcp_pcb_num.fin_wait2, tcp_pcb_num.fin_wait1, tcp_pcb_num.listen, tcp_pcb_num.bound));
return NULL;
}
#include "lwip/mem.h"
#define memp_init()
-#define memp_malloc(type) mem_malloc(memp_pools[type]->size); ESP_CNT_MEM_MALLOC_INC(type)
-#define memp_free(type, mem) mem_free(mem); ESP_CNT_MEM_FREE_INC(type)
+#if ESP_CNT_DEBUG
+static inline void* memp_malloc(int type)
+{
+ ESP_CNT_MEM_MALLOC_INC(type);
+ return mem_malloc(memp_pools[type]->size);
+}
+
+static inline void memp_free(int type, void *mem)
+{
+ ESP_CNT_MEM_FREE_INC(type);
+ mem_free(mem);
+}
+
+//#define memp_malloc(type) mem_malloc(memp_pools[type]->size); ESP_CNT_MEM_MALLOC_INC(type)
+//#define memp_free(type, mem) mem_free(mem); ESP_CNT_MEM_FREE_INC(type)
+#else
+#define memp_malloc(type) mem_malloc(memp_pools[type]->size)
+#define memp_free(type, mem) mem_free(mem)
+#endif
#define LWIP_MEMPOOL_DECLARE(name,num,size,desc) \
const struct memp_desc memp_ ## name = { \