Sfoglia il codice sorgente

fix: 同步主库lwip适配修改,预防lwip tcp重复free的问题, https://gitee.com/openLuat/LuatOS/commit/d0a2289f6ecfc36110995d02933827674d9a814e

Wendal Chen 3 anni fa
parent
commit
bd00731199

+ 8 - 1
app/network/luat_network_lwip_tcpip_cb.c

@@ -356,10 +356,16 @@ static err_t net_lwip_tcp_err_cb(void *arg, err_t err)
 {
 	int socket_id = ((uint32_t)arg) & 0x0000ffff;
 	uint8_t adapter_index = ((uint32_t)arg) >> 16;
+	if (prvlwip.socket[socket_id].is_tcp)
+	{
+		if (prvlwip.socket[socket_id].pcb.tcp)
+		{
+			prvlwip.socket[socket_id].pcb.tcp = NULL;
+		}
+	}
 	if (!prvlwip.socket[socket_id].state && !prvlwip.socket[socket_id].remote_close)
 	{
 		NET_DBG("adapter %d socket %d not closing, but error %d", adapter_index, socket_id, err);
-		prvlwip.socket[socket_id].pcb.ip = NULL;
 		net_lwip_tcp_error(adapter_index, socket_id);
 	}
 	return 0;
@@ -539,6 +545,7 @@ static void net_lwip_close_tcp(int socket_id)
 	{
 		tcp_abort(prvlwip.socket[socket_id].pcb.tcp);
 	}
+	prvlwip.socket[socket_id].pcb.tcp = NULL;
 }
 
 static void net_lwip_task(void *param)

+ 1 - 1
app/port/luat_malloc_air101.c

@@ -19,7 +19,7 @@ void* __wrap_zalloc(size_t size);
 void* __wrap_realloc(void*ptr, size_t len);
 
 #ifdef LUAT_USE_WLAN
-#define LUAT_HEAP_MIN_SIZE (100*1024)
+#define LUAT_HEAP_MIN_SIZE (96*1024)
 #undef LUAT_HEAP_SIZE
 #define LUAT_HEAP_SIZE LUAT_HEAP_MIN_SIZE
 #else

+ 1 - 1
platform/sys/wm_main.c

@@ -344,7 +344,7 @@ void task_start (void *data)
     tls_get_tx_gain(&tx_gain_group[0]);
     TLS_DBGPRT_INFO("tx gain ");
     TLS_DBGPRT_DUMP((char *)(&tx_gain_group[0]), 27);
-    if (tls_wifi_mem_cfg(WIFI_MEM_START_ADDR, 7, 3)) /*wifi tx&rx mem customized interface*/
+    if (tls_wifi_mem_cfg(WIFI_MEM_START_ADDR, 7, 4)) /*wifi tx&rx mem customized interface*/
     {
         TLS_DBGPRT_INFO("wl mem initial failured\n");
     }