diff --git a/README b/README index 51e22cdd..c0d35b30 100644 --- a/README +++ b/README @@ -185,7 +185,7 @@ Options for both config file and command line: --scrypt Use the scrypt algorithm for mining (litecoin only) --sharelog Append share log to file --shares Quit after mining N shares (default: unlimited) ---socks-proxy Set socks4 proxy (host:port) for all pools without a proxy specified +--socks-proxy Set socks proxy (host:port) for all pools without a proxy specified --syslog Use system log for output messages (default: standard error) --temp-cutoff Temperature where a device will be automatically disabled, one value or comma separated list (default: 95) --text-only|-T Disable ncurses formatted screen output diff --git a/cgminer.c b/cgminer.c index 9661915d..892c6cf4 100644 --- a/cgminer.c +++ b/cgminer.c @@ -1249,7 +1249,7 @@ static struct opt_table opt_config_table[] = { "Quit after mining N shares (default: unlimited)"), OPT_WITH_ARG("--socks-proxy", opt_set_charp, NULL, &opt_socks_proxy, - "Set socks4 proxy (host:port)"), + "Set socks proxy (host:port)"), #ifdef HAVE_SYSLOG_H OPT_WITHOUT_ARG("--syslog", opt_set_bool, &use_syslog, diff --git a/util.c b/util.c index 82de573c..550f4ed8 100644 --- a/util.c +++ b/util.c @@ -347,7 +347,7 @@ json_t *json_rpc_call(CURL *curl, const char *url, curl_easy_setopt(curl, CURLOPT_PROXYTYPE, pool->rpc_proxytype); } else if (opt_socks_proxy) { curl_easy_setopt(curl, CURLOPT_PROXY, opt_socks_proxy); - curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4); + curl_easy_setopt(curl, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5); } if (userpass) { curl_easy_setopt(curl, CURLOPT_USERPWD, userpass); @@ -1870,6 +1870,12 @@ static bool setup_stratum_socket(struct pool *pool) hints->ai_socktype = SOCK_STREAM; servinfo = &servinfobase; p = &pbase; + if (!pool->rpc_proxy && opt_socks_proxy) { + pool->rpc_proxy = opt_socks_proxy; + extract_sockaddr(pool->rpc_proxy, &pool->sockaddr_proxy_url, &pool->sockaddr_proxy_port); + pool->rpc_proxytype = CURLPROXY_SOCKS5; + } + if (pool->rpc_proxy) { sockaddr_url = pool->sockaddr_proxy_url; sockaddr_port = pool->sockaddr_proxy_port; @@ -1905,8 +1911,8 @@ static bool setup_stratum_socket(struct pool *pool) break; } if (p == NULL) { - applog(LOG_INFO, "Failed to find a stratum servinfo on %s:%s", - pool->sockaddr_url, pool->stratum_port); + applog(LOG_NOTICE, "Failed to connect to stratum on %s:%s", + sockaddr_url, sockaddr_port); freeaddrinfo(servinfo); return false; }