diff --git a/webclient.c b/webclient.c index ce02ef9..c9c88c2 100644 --- a/webclient.c +++ b/webclient.c @@ -23,7 +23,7 @@ #else #include #include -#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; }