diff --git a/gossipd/gossip.c b/gossipd/gossip.c index 350240a70..541b4bd5d 100644 --- a/gossipd/gossip.c +++ b/gossipd/gossip.c @@ -147,8 +147,8 @@ struct daemon { /* Automatically reconnect. */ bool reconnect; - struct addrinfo *tor_proxyaddr; - bool use_tor_proxy_always; + struct addrinfo *proxyaddr; + bool use_proxy_always; }; /* Peers we're trying to reach. */ @@ -1739,7 +1739,7 @@ static struct io_plan *gossip_init(struct daemon_conn *master, struct bitcoin_blkid chain_hash; u32 update_channel_interval; bool dev_allow_localhost; - struct wireaddr *tor_proxyaddr; + struct wireaddr *proxyaddr; if (!fromwire_gossipctl_init( daemon, msg, &daemon->broadcast_interval, &chain_hash, @@ -1747,7 +1747,7 @@ static struct io_plan *gossip_init(struct daemon_conn *master, &daemon->localfeatures, &daemon->proposed_wireaddr, &daemon->proposed_listen_announce, daemon->rgb, daemon->alias, &update_channel_interval, &daemon->reconnect, - &tor_proxyaddr, &daemon->use_tor_proxy_always, + &proxyaddr, &daemon->use_proxy_always, &dev_allow_localhost)) { master_badmsg(WIRE_GOSSIPCTL_INIT, msg); } @@ -1757,13 +1757,12 @@ static struct io_plan *gossip_init(struct daemon_conn *master, dev_allow_localhost); /* Resolve Tor proxy address if any */ - if (tor_proxyaddr) { - status_trace("Tor proxyaddr : %s", - fmt_wireaddr(tmpctx, tor_proxyaddr)); - daemon->tor_proxyaddr = wireaddr_to_addrinfo(daemon, - tor_proxyaddr); + if (proxyaddr) { + status_trace("Proxy address: %s", + fmt_wireaddr(tmpctx, proxyaddr)); + daemon->proxyaddr = wireaddr_to_addrinfo(daemon, proxyaddr); } else - daemon->tor_proxyaddr = NULL; + daemon->proxyaddr = NULL; /* Load stored gossip messages */ gossip_store_load(daemon->rstate, daemon->rstate->store); @@ -1918,9 +1917,9 @@ static struct io_plan *conn_init(struct io_conn *conn, struct reaching *reach) return io_close(conn); } - if (!use_tor && reach->daemon->tor_proxyaddr) { + if (!use_tor && reach->daemon->proxyaddr) { /* We dont use tor proxy if we only have ip */ - if (reach->daemon->use_tor_proxy_always + if (reach->daemon->use_proxy_always || do_we_use_tor_addr(reach->daemon->announcable)) use_tor = true; } @@ -1929,7 +1928,7 @@ static struct io_plan *conn_init(struct io_conn *conn, struct reaching *reach) io_set_finish(conn, connect_failed, reach); if (use_tor) { assert(reach->addr.itype == ADDR_INTERNAL_WIREADDR); - return io_tor_connect(conn, reach->daemon->tor_proxyaddr, + return io_tor_connect(conn, reach->daemon->proxyaddr, &reach->addr.u.wireaddr, reach); } return io_connect(conn, ai, connection_out, reach); @@ -2065,7 +2064,7 @@ static void try_reach_peer(struct daemon *daemon, const struct pubkey *id, switch (a->addr.u.wireaddr.type) { case ADDR_TYPE_TOR_V2: case ADDR_TYPE_TOR_V3: - if (!daemon->tor_proxyaddr) + if (!daemon->proxyaddr) break; /* fall thru */ case ADDR_TYPE_IPV4: diff --git a/lightningd/gossip_control.c b/lightningd/gossip_control.c index c5ab606b0..1f20d95b9 100644 --- a/lightningd/gossip_control.c +++ b/lightningd/gossip_control.c @@ -226,7 +226,7 @@ void gossip_init(struct lightningd *ld) get_offered_local_features(tmpctx), wireaddrs, listen_announce, ld->rgb, ld->alias, ld->config.channel_update_interval, ld->reconnect, - ld->tor_proxyaddr, ld->use_tor_proxy_always, + ld->proxyaddr, ld->use_proxy_always, allow_localhost); subd_send_msg(ld->gossip, msg); } diff --git a/lightningd/lightningd.c b/lightningd/lightningd.c index 22fcace8a..2d8cbfb36 100644 --- a/lightningd/lightningd.c +++ b/lightningd/lightningd.c @@ -84,10 +84,10 @@ static struct lightningd *new_lightningd(const tal_t *ctx) ld->pidfile = NULL; ld->ini_autocleaninvoice_cycle = 0; ld->ini_autocleaninvoice_expiredby = 86400; + ld->proxyaddr = NULL; + ld->use_proxy_always = false; ld->tor_service_password = NULL; - ld->tor_proxyaddr = NULL; ld->tor_serviceaddr = NULL; - ld->use_tor_proxy_always = false; return ld; } diff --git a/lightningd/lightningd.h b/lightningd/lightningd.h index 98ccc8365..cc5a6408b 100644 --- a/lightningd/lightningd.h +++ b/lightningd/lightningd.h @@ -203,10 +203,10 @@ struct lightningd { #endif /* DEVELOPER */ /* tor support */ - struct wireaddr *tor_proxyaddr; + struct wireaddr *proxyaddr; + bool use_proxy_always; struct wireaddr *tor_serviceaddr; char *tor_service_password; - bool use_tor_proxy_always; }; const struct chainparams *get_chainparams(const struct lightningd *ld); diff --git a/lightningd/options.c b/lightningd/options.c index fb99217d8..2877a7247 100644 --- a/lightningd/options.c +++ b/lightningd/options.c @@ -295,14 +295,14 @@ static char *opt_set_offline(struct lightningd *ld) return NULL; } -static char *opt_add_torproxy_addr(const char *arg, struct lightningd *ld) +static char *opt_add_proxy_addr(const char *arg, struct lightningd *ld) { - tal_free(ld->tor_proxyaddr); + tal_free(ld->proxyaddr); /* We use a tal_arr here, so we can marshal it to gossipd */ - ld->tor_proxyaddr = tal_arr(ld, struct wireaddr, 1); + ld->proxyaddr = tal_arr(ld, struct wireaddr, 1); - if (!parse_wireaddr(arg, ld->tor_proxyaddr, 9050, NULL)) { + if (!parse_wireaddr(arg, ld->proxyaddr, 9050, NULL)) { return tal_fmt(NULL, "Unable to parse Tor proxy address '%s'", arg); } @@ -423,7 +423,7 @@ static void config_register_opts(struct lightningd *ld) opt_set_u64, opt_show_u64, &ld->ini_autocleaninvoice_cycle, "If expired invoice autoclean enabled, invoices that have expired for at least this given seconds are cleaned"); - opt_register_arg("--proxy", opt_add_torproxy_addr, NULL, + opt_register_arg("--proxy", opt_add_proxy_addr, NULL, ld,"Set a socks v5 proxy IP address and port"); opt_register_arg("--tor-service",opt_add_tor_service_addr, NULL, ld,"Set a tor service api IP address and port"); @@ -432,8 +432,8 @@ static void config_register_opts(struct lightningd *ld) "Set a Tor hidden service password"); opt_register_arg("--tor-auto-listen", opt_set_bool_arg, opt_show_bool, &ld->config.tor_enable_auto_hidden_service , "Generate and use a temp auto hidden-service and show the onion address"); - opt_register_arg("--always-use-tor-proxy", opt_set_bool_arg, opt_show_bool, - &ld->use_tor_proxy_always , "Use the Tor proxy always"); + opt_register_arg("--always-use-proxy", opt_set_bool_arg, opt_show_bool, + &ld->use_proxy_always, "Use the proxy always"); } #if DEVELOPER @@ -598,8 +598,8 @@ static void check_config(struct lightningd *ld) if (ld->config.tor_enable_auto_hidden_service && !ld->tor_serviceaddr) fatal("--tor-auto-listen needs --tor-service"); - if (ld->use_tor_proxy_always && !ld->tor_proxyaddr) - fatal("--always-use-tor-proxy needs --proxy"); + if (ld->use_proxy_always && !ld->proxyaddr) + fatal("--always-use-proxy needs --proxy"); } static void setup_default_config(struct lightningd *ld) @@ -985,9 +985,9 @@ static void add_config(struct lightningd *ld, ld->proposed_listen_announce, ADDR_ANNOUNCE); return; - } else if (opt->cb_arg == (void *)opt_add_torproxy_addr) { - if (ld->tor_proxyaddr) - answer = fmt_wireaddr(name0, ld->tor_proxyaddr); + } else if (opt->cb_arg == (void *)opt_add_proxy_addr) { + if (ld->proxyaddr) + answer = fmt_wireaddr(name0, ld->proxyaddr); } else if (opt->cb_arg == (void *)opt_add_tor_service_addr) { if (ld->tor_serviceaddr) answer = fmt_wireaddr(name0,