Skip to content

Commit 6c94460

Browse files
authored
Fix segmentation fault in kws_connect_ex
1 parent 9d83282 commit 6c94460

File tree

1 file changed

+3
-15
lines changed

1 file changed

+3
-15
lines changed

src/kws.c

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1664,7 +1664,6 @@ KS_DECLARE(ks_status_t) kws_connect_ex(kws_t **kwsP, ks_json_t *params, kws_flag
16641664
const char *ip = "127.0.0.1";
16651665
ks_port_t port = 443;
16661666
// char buf[50] = "";
1667-
struct hostent *he;
16681667
const char *url = ks_json_get_object_string(params, "url", NULL);
16691668
// const char *headers = ks_json_get_object_string(params, "headers", NULL);
16701669
const char *host = NULL;
@@ -1673,6 +1672,7 @@ KS_DECLARE(ks_status_t) kws_connect_ex(kws_t **kwsP, ks_json_t *params, kws_flag
16731672
char *p = NULL;
16741673
const char *client_data = NULL;
16751674
int destroy_ssl_ctx = 0;
1675+
ks_status_t status;
16761676

16771677
if (!url) {
16781678
ks_json_t *tmp;
@@ -1732,20 +1732,8 @@ KS_DECLARE(ks_status_t) kws_connect_ex(kws_t **kwsP, ks_json_t *params, kws_flag
17321732

17331733
if (!host || !path) return KS_STATUS_FAIL;
17341734

1735-
he = gethostbyname(host);
1736-
1737-
if (!he) {
1738-
ip = host;
1739-
1740-
if (strchr(ip, ':')) {
1741-
family = AF_INET6;
1742-
}
1743-
1744-
ks_addr_set(&addr, ip, port, family);
1745-
} else {
1746-
ks_addr_set_raw(&addr, he->h_addr, port, ((struct sockaddr_in *)he->h_addr)->sin_family);
1747-
// ip = ks_addr_get_host(&addr1);
1748-
}
1735+
status = ks_addr_getbyname(host, port, AF_UNSPEC, &addr);
1736+
if (status != KS_STATUS_SUCCESS) return status;
17491737

17501738
cl_sock = ks_socket_connect_ex(SOCK_STREAM, IPPROTO_TCP, &addr, timeout_ms);
17511739

0 commit comments

Comments
 (0)