Просмотр исходного кода

change: network,全部适配器都支持check_ack函数, 不再需要全局函数net_lwip_check_all_ack,移除引用

Wendal Chen 6 месяцев назад
Родитель
Сommit
b0c40d5717

+ 2 - 2
components/network/adapter/luat_network_adapter.c

@@ -883,8 +883,8 @@ static int network_state_on_line(network_ctrl_t *ctrl, OS_EVENT *event, network_
 						if (prv_adapter_table[ctrl->adapter_index].opt->check_ack) {
 							return prv_adapter_table[ctrl->adapter_index].opt->check_ack(ctrl->adapter_index, ctrl->socket_id);
 						}
-						// TODO 待全部bsp都增加check_ack函数后, 就不再需要下面的调用了
-						return net_lwip_check_all_ack(ctrl->socket_id);
+						NET_DBG("BUG!! neek to check ack, but adapter don't has check_ack function");
+						return 0;
 					}
 					else
 					{

+ 1 - 1
components/network/adapter_lwip2/net_lwip2.c

@@ -1613,7 +1613,7 @@ static int net_lwip2_check_ack(uint8_t adapter_index, int socket_id) {
 	return 0;
 }
 
-#if !defined(CHIP_EC718) && !defined(CHIP_EC618) && !defined(CHIP_EC716)
+#if !defined(CHIP_EC718) && !defined(CHIP_EC618) && !defined(CHIP_EC716) && !defined(CONFIG_SOC_8910)
 int net_lwip_check_all_ack(int socket_id)
 {
 	return net_lwip2_check_ack(0, socket_id);

+ 27 - 0
components/network/lwip_with_sdk/net_lwip.c

@@ -2046,6 +2046,32 @@ static void net_lwip_socket_set_callback(CBFuncEx_t cb_fun, void *param, void *u
 	prvlwip.user_data[index] = param;
 }
 
+static int net_lwip_check_ack(int socket_id)
+{
+	if (!llist_empty(&prvlwip.socket[socket_id].wait_ack_head))
+	{
+		NET_DBG("socekt %d not all ack", socket_id);
+		prvlwip.socket_busy |= (1 << socket_id);
+		return -1;
+	}
+	if (!llist_empty(&prvlwip.socket[socket_id].tx_head))
+	{
+		NET_DBG("socekt %d not all send", socket_id);
+		prvlwip.socket_busy |= (1 << socket_id);
+		return -1;
+	}
+	if (prvlwip.socket[socket_id].pcb.tcp->snd_buf != TCP_SND_BUF)
+	{
+		NET_DBG("socket %d send buf %ubytes, need %u",socket_id, prvlwip.socket[socket_id].pcb.tcp->snd_buf, TCP_SND_BUF);
+		prvlwip.socket_busy |= (1 << socket_id);
+	}
+	else
+	{
+		prvlwip.socket_busy &= ~(1 << socket_id);
+	}
+	return 0;
+}
+
 static network_adapter_info prv_net_lwip_adapter =
 {
 		.check_ready = net_lwip_check_ready,
@@ -2071,6 +2097,7 @@ static network_adapter_info prv_net_lwip_adapter =
 		.get_local_ip_info = net_lwip_get_local_ip_info,
 		.get_full_ip_info = net_lwip_get_full_ip_info,
 		.socket_set_callback = net_lwip_socket_set_callback,
+		.check_ack = net_lwip_check_ack,
 		.name = "lwip",
 		.max_socket_num = MAX_SOCK_NUM,
 		.no_accept = 1,