Procházet zdrojové kódy

add:ftp添加一些错误日志
fix:socket关闭但是数据没处理完导致下载失败问题

Dozingfiretruck před 7 měsíci
rodič
revize
3e2a5fbc82
1 změnil soubory, kde provedl 7 přidání a 3 odebrání
  1. 7 3
      components/network/libftp/luat_ftp_client.c

+ 7 - 3
components/network/libftp/luat_ftp_client.c

@@ -395,6 +395,7 @@ static int pasv_recv(void)
 	uint8_t rx_finish = 0;
 	ret = luat_ftp_cmd_recv(&g_s_ftp,g_s_ftp.network->cmd_recv_data,&g_s_ftp.network->cmd_recv_len,FTP_SOCKET_TIMEOUT);
 	if (ret){
+		LLOGE("pasv_recv %s error:%d", g_s_ftp.network->cmd_recv_data, ret);
 		return -1;
 	}
 	LLOGD("%.*s", g_s_ftp.network->cmd_recv_len, g_s_ftp.network->cmd_recv_data);
@@ -413,10 +414,11 @@ static int pasv_recv(void)
 			rx_finish = 1;
 		}
 	}
-	while(!rx_finish && (g_s_ftp.network->data_netc_online || g_s_ftp.result_buffer.Pos))	//data通道未断开或者已经接收到数据了
+	// LLOGD("rx_finish:%d data_netc_online:%d Pos:%d ", rx_finish, g_s_ftp.network->data_netc_online, g_s_ftp.result_buffer.Pos);
+	while(!rx_finish)	//data通道未断开或者已经接收到数据了
 	{
 		ret = luat_ftp_cmd_recv(&g_s_ftp,g_s_ftp.network->cmd_recv_data,&g_s_ftp.network->cmd_recv_len,FTP_SOCKET_TIMEOUT);
-		if (ret < 0){
+		if (ret){
 			LLOGD("rx error!%d", ret);
 			return -1;
 		} else if (!ret) {
@@ -436,7 +438,8 @@ static int pasv_recv(void)
 	//等服务器关闭接收通道
 	if (g_s_ftp.network->data_netc_online) {
 		ret = luat_ftp_cmd_recv(&g_s_ftp,g_s_ftp.network->cmd_recv_data,&g_s_ftp.network->cmd_recv_len,1000);
-		if (ret < 0) {
+		if (ret) {
+			LLOGE("pasv_recv %s error:%d", g_s_ftp.network->cmd_recv_data, ret);
 			return -1;
 		}
 	}
@@ -641,6 +644,7 @@ static void ftp_task(void *param){
 		}
 		continue;
 operation_failed:
+		LLOGE("ftp operation failed");
 		if (g_s_ftp.fd){
 			luat_fs_fclose(g_s_ftp.fd);
 			g_s_ftp.fd = NULL;