Browse Source

Merge commit '0399b43' into bfgminer-3.2.x

Luke Dashjr 12 years ago
parent
commit
a049bb48e8
1 changed files with 18 additions and 6 deletions
  1. 18 6
      util.c

+ 18 - 6
util.c

@@ -1844,18 +1844,30 @@ static bool parse_diff(struct pool *pool, json_t *val)
 
 
 static bool parse_reconnect(struct pool *pool, json_t *val)
 static bool parse_reconnect(struct pool *pool, json_t *val)
 {
 {
-	const char *url, *port;
+	const char *url;
 	char address[256];
 	char address[256];
+	json_t *port_json;
 
 
 	url = __json_array_string(val, 0);
 	url = __json_array_string(val, 0);
 	if (!url)
 	if (!url)
 		url = pool->sockaddr_url;
 		url = pool->sockaddr_url;
 
 
-	port = __json_array_string(val, 1);
-	if (!port)
-		port = pool->stratum_port;
-
-	snprintf(address, sizeof(address), "%s:%s", url, port);
+	port_json = json_array_get(val, 1);
+	if (json_is_number(port_json))
+	{
+		const unsigned port = json_number_value(port_json);
+		snprintf(address, sizeof(address), "%s:%u", url, port);
+	}
+	else
+	{
+		const char *port;
+		if (json_is_string(port_json))
+			port = json_string_value(port_json);
+		else
+			port = pool->stratum_port;
+		
+		snprintf(address, sizeof(address), "%s:%s", url, port);
+	}
 
 
 	if (!extract_sockaddr(pool, address))
 	if (!extract_sockaddr(pool, address))
 		return false;
 		return false;