diff --git a/webclient.c b/webclient.c index f2861e1..d199661 100644 --- a/webclient.c +++ b/webclient.c @@ -163,7 +163,6 @@ static int webclient_resolve_address(struct webclient_session *session, struct a int rc = WEBCLIENT_OK; char *ptr; char port_str[6] = "80"; /* default port of 80(http) */ - char port_tls_str[6] = "443"; /* default port of 443(https) */ const char *host_addr = 0; int url_len, host_addr_len = 0; @@ -177,6 +176,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a } else if(strncmp(url, "https://", 8) == 0) { + strncpy(port_str, "443", 4); host_addr = url + 8; } else @@ -240,7 +240,7 @@ static int webclient_resolve_address(struct webclient_session *session, struct a { int port_tls_len = ptr - port_tls_ptr - 1; - strncpy(port_tls_str, port_tls_ptr + 1, port_tls_len); + strncpy(port_str, port_tls_ptr + 1, port_tls_len); port_str[port_tls_len] = '\0'; host_addr_len = port_tls_ptr - host_addr; @@ -310,8 +310,8 @@ static int webclient_resolve_address(struct webclient_session *session, struct a #ifdef WEBCLIENT_USING_TLS if(session->tls_session) { - session->tls_session->port = rt_strdup(port_tls_str); - ret = getaddrinfo(session->tls_session->host, port_tls_str, &hint, res); + session->tls_session->port = rt_strdup(port_str); + ret = getaddrinfo(session->tls_session->host, port_str, &hint, res); if (ret != 0) { rt_kprintf("getaddrinfo err: %d '%s'\n", ret, session->host); @@ -1105,9 +1105,10 @@ int webclient_close(struct webclient_session *session) #ifdef WEBCLIENT_USING_TLS if(session->tls_session) mbedtls_client_close(session->tls_session); -#endif +#else if (session->socket >= 0) - closesocket(session->socket); + closesocket(session->socket); +#endif if(session->transfer_encoding) web_free(session->transfer_encoding); if(session->content_type)