Browse Source

【修复】开启TLS 支持后 Socket 无法释放问题。

Signed-off-by: chenyong <1521761801@qq.com>
chenyong 7 years ago
parent
commit
7cd6eb5d28
1 changed files with 13 additions and 4 deletions
  1. 13 4
      webclient.c

+ 13 - 4
webclient.c

@@ -23,7 +23,7 @@
 #else
 #include <lwip/netdb.h>
 #include <lwip/sockets.h>
-#endif /* RT_USING_DFS_NET */
+#endif /* SAL_USING_POSIX */
 
 #include "webclient_internal.h"
 
@@ -1107,11 +1107,18 @@ int webclient_close(struct webclient_session *session)
     
 #ifdef WEBCLIENT_USING_TLS
     if(session->tls_session)
+    {
         mbedtls_client_close(session->tls_session);
+    }
+    else
+    {
+        if (session->socket >= 0)
+            closesocket(session->socket); 
+    }
 #else
     if (session->socket >= 0)
-        closesocket(session->socket);  
-#endif  
+        closesocket(session->socket); 
+#endif
     if(session->transfer_encoding)
         web_free(session->transfer_encoding);    
     if(session->content_type)
@@ -1125,8 +1132,10 @@ int webclient_close(struct webclient_session *session)
     if(session->location)
         web_free(session->location);
     if(session)
+    {
         web_free(session);
-
+        session = RT_NULL;
+    }
     return 0;
 }