|
|
|
@ -1072,13 +1072,13 @@ double tdiff(struct timeval *end, struct timeval *start)
@@ -1072,13 +1072,13 @@ double tdiff(struct timeval *end, struct timeval *start)
|
|
|
|
|
return end->tv_sec - start->tv_sec + (end->tv_usec - start->tv_usec) / 1000000.0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool extract_sockaddr(struct pool *pool, char *url) |
|
|
|
|
bool extract_sockaddr(char *url, char **sockaddr_url, char **sockaddr_port) |
|
|
|
|
{ |
|
|
|
|
char *url_begin, *url_end, *ipv6_begin, *ipv6_end, *port_start = NULL; |
|
|
|
|
char url_address[256], port[6]; |
|
|
|
|
int url_len, port_len = 0; |
|
|
|
|
|
|
|
|
|
pool->sockaddr_url = url; |
|
|
|
|
*sockaddr_url = url; |
|
|
|
|
url_begin = strstr(url, "//"); |
|
|
|
|
if (!url_begin) |
|
|
|
|
url_begin = url; |
|
|
|
@ -1111,8 +1111,8 @@ bool extract_sockaddr(struct pool *pool, char *url)
@@ -1111,8 +1111,8 @@ bool extract_sockaddr(struct pool *pool, char *url)
|
|
|
|
|
else |
|
|
|
|
strcpy(port, "80"); |
|
|
|
|
|
|
|
|
|
pool->stratum_port = strdup(port); |
|
|
|
|
pool->sockaddr_url = strdup(url_address); |
|
|
|
|
*sockaddr_port = strdup(port); |
|
|
|
|
*sockaddr_url = strdup(url_address); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
@ -1557,7 +1557,7 @@ static bool parse_reconnect(struct pool *pool, json_t *val)
@@ -1557,7 +1557,7 @@ static bool parse_reconnect(struct pool *pool, json_t *val)
|
|
|
|
|
|
|
|
|
|
sprintf(address, "%s:%s", url, port); |
|
|
|
|
|
|
|
|
|
if (!extract_sockaddr(pool, address)) |
|
|
|
|
if (!extract_sockaddr(address, &pool->sockaddr_url, &pool->stratum_port)) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
pool->stratum_url = pool->sockaddr_url; |
|
|
|
|