plugins: fix shutdown notification to contain object.

We fixed the others.  There are no fields, but this keeps it consistent.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Changelog-Added: JSON-RPC: `shutdown` notification contains `shutdown` object (notification consistency)
This commit is contained in:
Rusty Russell 2023-07-11 07:55:22 +09:30
parent 4d507065f3
commit ad592d8b0d
3 changed files with 10 additions and 1 deletions

View File

@ -929,6 +929,12 @@ logging or notifications. New rpc calls will fail with error code -5 and (plugin
responses will be ignored. Because lightningd can crash or be killed, a plugin cannot
rely on the shutdown notification always been send.
```json
{
"shutdown": {
}
}
```
## Hooks

View File

@ -700,6 +700,9 @@ bool notify_plugin_shutdown(struct lightningd *ld, struct plugin *p)
struct jsonrpc_notification *n =
jsonrpc_notification_start(NULL, "shutdown");
/* Even shutdown should follow the same "object inside notification" pattern */
json_object_start(n->stream, "shutdown");
json_object_end(n->stream);
jsonrpc_notification_end(n);
return plugin_single_notify(p, take(n));
}

View File

@ -4266,7 +4266,7 @@ def test_all_subscription(node_factory, directory):
"balance_snapshot: {'balance_snapshot': {'node_id': ",
"connect: {'connect': {'id': ",
"channel_state_changed: {'channel_state_changed': {'peer_id': ",
"shutdown: {}"):
"shutdown: {'shutdown': {}"):
assert l1.daemon.is_in_log(f".*plugin-all_notifications.py: notification {notstr}.*")
for notstr in ('block_added: ',