|
|
@@ -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)
|
|
|
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)
|
|
|
|
|
|
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;
|