commando: don't look at messages *at all* unless they've created a rune.

This means we can leave commando on by default, without an explicit config flag.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2022-07-16 22:48:27 +09:30
parent 419cb60b1b
commit ae4856df70
2 changed files with 12 additions and 1 deletions

View file

@ -263,7 +263,8 @@ static void handle_incmd(struct node_id *peer,
{
struct commando *incmd;
/* FIXME: don't do *anything* unless they've set up a rune. */
if (!rune_counter)
return;
incmd = find_commando(incoming_commands, peer, NULL);
/* Don't let them buffer multiple commands: discard old. */

View file

@ -13,6 +13,7 @@ from utils import (
)
import ast
import concurrent.futures
import json
import os
import pytest
@ -2549,6 +2550,15 @@ def test_plugin_shutdown(node_factory):
def test_commando(node_factory, executor):
l1, l2 = node_factory.line_graph(2, fundchannel=False)
# Nothing works until we've issued a rune.
fut = executor.submit(l2.rpc.call, method='commando',
payload={'peer_id': l1.info['id'],
'method': 'listpeers'})
with pytest.raises(concurrent.futures.TimeoutError):
fut.result(10)
l1.rpc.commando_rune()
# This works
res = l2.rpc.call(method='commando',
payload={'peer_id': l1.info['id'],