From 8fa01556f2684bbd6a77275ed8a40d8251665f0c Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Thu, 5 Sep 2013 23:21:42 +1000 Subject: [PATCH] Connect to the proxy URL and port if specified for stratum sockets instead of the pool directly. --- util.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/util.c b/util.c index 83aeb282..0b33715e 100644 --- a/util.c +++ b/util.c @@ -1722,6 +1722,7 @@ bool auth_stratum(struct pool *pool) static bool setup_stratum_socket(struct pool *pool) { struct addrinfo servinfobase, *servinfo, *hints, pbase, *p; + char *sockaddr_url, *sockaddr_port; int sockd; mutex_lock(&pool->stratum_lock); @@ -1737,14 +1738,21 @@ static bool setup_stratum_socket(struct pool *pool) hints->ai_socktype = SOCK_STREAM; servinfo = &servinfobase; p = &pbase; - if (getaddrinfo(pool->sockaddr_url, pool->stratum_port, hints, &servinfo) != 0) { + if (pool->rpc_proxy) { + sockaddr_url = pool->sockaddr_proxy_url; + sockaddr_port = pool->sockaddr_proxy_port; + } else { + sockaddr_url = pool->sockaddr_url; + sockaddr_port = pool->stratum_port; + } + if (getaddrinfo(sockaddr_url, sockaddr_port, hints, &servinfo) != 0) { if (!pool->probed) { applog(LOG_WARNING, "Failed to resolve (?wrong URL) %s:%s", - pool->sockaddr_url, pool->stratum_port); + sockaddr_url, sockaddr_port); pool->probed = true; } else { applog(LOG_INFO, "Failed to getaddrinfo for %s:%s", - pool->sockaddr_url, pool->stratum_port); + sockaddr_url, sockaddr_port); } return false; }