lightningd: deprecate weird listening options.

These are only likely to confuse users, by silently changing behavior.

Changelog-Deprecated: Config: bind-addr=xxx.onion and addr=xxx.onion, use announce=xxx.onion (which was always equivalent).
Changelog-Deprecated: Config: addr=/socketpath, use listen=/socketpath (which was always equivalent).
This commit is contained in:
Rusty Russell
2023-05-30 13:58:18 +09:30
parent 21958879cf
commit 7b843e8e58
2 changed files with 11 additions and 12 deletions

View File

@@ -277,9 +277,12 @@ static char *opt_add_addr_withtype(const char *arg,
/* Can't happen any more */ /* Can't happen any more */
abort(); abort();
case ADDR_TYPE_TOR_V3: case ADDR_TYPE_TOR_V3:
/* I'm not sure why we allow this abuse, but we fix it up. */
switch (ala) { switch (ala) {
case ADDR_LISTEN: case ADDR_LISTEN:
if (!deprecated_apis)
return tal_fmt(NULL,
"Don't use --bind-addr=%s, use --announce-addr=%s",
arg, arg);
log_unusual(ld->log, log_unusual(ld->log,
"You used `--bind-addr=%s` option with an .onion address," "You used `--bind-addr=%s` option with an .onion address,"
" You are lucky in this node live some wizards and" " You are lucky in this node live some wizards and"
@@ -288,6 +291,10 @@ static char *opt_add_addr_withtype(const char *arg,
/* And we ignore it */ /* And we ignore it */
return NULL; return NULL;
case ADDR_LISTEN_AND_ANNOUNCE: case ADDR_LISTEN_AND_ANNOUNCE:
if (!deprecated_apis)
return tal_fmt(NULL,
"Don't use --addr=%s, use --announce-addr=%s",
arg, arg);
log_unusual(ld->log, log_unusual(ld->log,
"You used `--addr=%s` option with an .onion address," "You used `--addr=%s` option with an .onion address,"
" You are lucky in this node live some wizards and" " You are lucky in this node live some wizards and"
@@ -324,12 +331,14 @@ static char *opt_add_addr_withtype(const char *arg,
} }
break; break;
case ADDR_INTERNAL_SOCKNAME: case ADDR_INTERNAL_SOCKNAME:
/* We turn --addr into --bind-addr */
switch (ala) { switch (ala) {
case ADDR_ANNOUNCE: case ADDR_ANNOUNCE:
return tal_fmt(NULL, return tal_fmt(NULL,
"Cannot announce sockets, try --bind-addr=%s", arg); "Cannot announce sockets, try --bind-addr=%s", arg);
case ADDR_LISTEN_AND_ANNOUNCE: case ADDR_LISTEN_AND_ANNOUNCE:
if (!deprecated_apis)
return tal_fmt(NULL, "Don't use --addr=%s, use --bind-addr=%s",
arg, arg);
ala = ADDR_LISTEN; ala = ADDR_LISTEN;
/* Fall thru */ /* Fall thru */
case ADDR_LISTEN: case ADDR_LISTEN:

View File

@@ -721,16 +721,6 @@ def test_address(node_factory):
ret = l2.rpc.connect(l1.info['id'], l1.daemon.opts['bind-addr']) ret = l2.rpc.connect(l1.info['id'], l1.daemon.opts['bind-addr'])
assert ret['address'] == {'type': 'local socket', 'socket': l1.daemon.opts['bind-addr']} assert ret['address'] == {'type': 'local socket', 'socket': l1.daemon.opts['bind-addr']}
# 'addr' with local socket works too.
l1.stop()
del l1.daemon.opts['bind-addr']
l1.daemon.opts['addr'] = os.path.join(l1.daemon.lightning_dir, TEST_NETWORK, "sock")
# start expects a port, so we open-code here.
l1.daemon.start()
l2 = node_factory.get_node()
l2.rpc.connect(l1.info['id'], l1.daemon.opts['addr'])
def test_listconfigs(node_factory, bitcoind, chainparams): def test_listconfigs(node_factory, bitcoind, chainparams):
# Make extremely long entry, check it works # Make extremely long entry, check it works