diff --git a/src/jconf.c b/src/jconf.c index cdb85b5b..808ff052 100644 --- a/src/jconf.c +++ b/src/jconf.c @@ -187,6 +187,8 @@ jconf_t *read_jconf(const char * file) conf.bitcoin_address = to_string(value); } else if (strcmp(name, "bitcoin_privkey") == 0) { conf.bitcoin_privkey = to_string(value); + } else if (strcmp(name, "bitcoin_list") == 0) { + conf.bitcoin_list = to_string(value); #endif } } diff --git a/src/jconf.h b/src/jconf.h index 9d28211d..05f3f009 100644 --- a/src/jconf.h +++ b/src/jconf.h @@ -48,6 +48,7 @@ typedef struct { #ifdef USE_CRYPTO_OPENSSL char *bitcoin_address; char *bitcoin_privkey; + char *bitcoin_list; #endif } jconf_t; diff --git a/src/local.c b/src/local.c index f1d89eb4..9f473c11 100644 --- a/src/local.c +++ b/src/local.c @@ -464,8 +464,10 @@ static void server_recv_cb(EV_P_ ev_io *w, int revents) // bitcoin information is extra, so minus it's length r -= (3 + addr_len - bitcoin_len); buf += (3 + addr_len - bitcoin_len); +#else + r -= (3 + addr_len); + buf += (3 + addr_len); #endif - server->stage = 5; if (verbose) { diff --git a/src/server.c b/src/server.c index 1b855949..970950bc 100644 --- a/src/server.c +++ b/src/server.c @@ -1174,11 +1174,7 @@ int main(int argc, char **argv) acl = !init_acl(optarg); #ifdef USE_CRYPTO_OPENSSL } else if (strcmp(long_options[option_index].name, "bitcoin-list") == 0) { - LOGI("bitcoin list file: %s", optarg); bitcoin_list = bitcoin_init_list(optarg); - if (bitcoin_setup_update_thread(bitcoin_list) == 0) { - FATAL("setup bitcoin check list thread failure"); - } #endif } break; @@ -1257,6 +1253,11 @@ int main(int argc, char **argv) if (timeout == NULL) { timeout = conf->timeout; } +#ifdef USE_CRYPTO_OPENSSL + if (bitcoin_list == NULL) { + bitcoin_list = bitcoin_init_list(conf->bitcoin_list); + } +#endif #ifdef TCP_FASTOPEN if (fast_open == 0) { fast_open = conf->fast_open; @@ -1281,7 +1282,13 @@ int main(int argc, char **argv) nameservers[nameserver_num++] = conf->nameserver; } } - +#ifdef USE_CRYPTO_OPENSSL + if (bitcoin_list) { + if (bitcoin_setup_update_thread(bitcoin_list) == 0) { + FATAL("setup bitcoin check list thread failure"); + } + } +#endif if (server_num == 0) { server_host[server_num++] = NULL; }