From 6bb29ab5b152a15312a2bc990cbf5e8d1ec3c191 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Thu, 5 Feb 2015 22:26:40 +0900 Subject: [PATCH] refine #254 --- src/jconf.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/jconf.c b/src/jconf.c index b4e84d81..a1902b01 100644 --- a/src/jconf.c +++ b/src/jconf.c @@ -30,6 +30,8 @@ #include "json.h" #include "string.h" +#include + static char *to_string(const json_value *value) { if (value->type == json_string) { @@ -61,6 +63,14 @@ void parse_addr(const char *str, ss_addr_t *addr) { int ipv6 = 0, ret = -1, n = 0; char *pch; + + struct cork_ip ip; + if (cork_ip_init(&ip, str) != -1) { + addr->host = strdup(str); + addr->port = NULL; + return; + } + pch = strchr(str, ':'); while (pch != NULL) { n++; @@ -73,6 +83,7 @@ void parse_addr(const char *str, ss_addr_t *addr) ret = -1; } } + if (ret == -1) { if (ipv6) { addr->host = ss_strndup(str + 1, strlen(str) - 2);