libplugin: add support for before and after deps on hooks.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell 2020-10-30 11:43:42 +10:30 committed by neil saitug
parent e16ed0e207
commit 62c52fe868
3 changed files with 26 additions and 2 deletions

View File

@ -628,8 +628,25 @@ handle_getmanifest(struct command *getmanifest_cmd,
json_array_end(params);
json_array_start(params, "hooks");
for (size_t i = 0; i < p->num_hook_subs; i++)
json_add_string(params, NULL, p->hook_subs[i].name);
for (size_t i = 0; i < p->num_hook_subs; i++) {
json_object_start(params, NULL);
json_add_string(params, "name", p->hook_subs[i].name);
if (p->hook_subs[i].before) {
json_array_start(params, "before");
for (size_t j = 0; p->hook_subs[i].before[j]; j++)
json_add_string(params, NULL,
p->hook_subs[i].before[j]);
json_array_end(params);
}
if (p->hook_subs[i].after) {
json_array_start(params, "after");
for (size_t j = 0; p->hook_subs[i].after[j]; j++)
json_add_string(params, NULL,
p->hook_subs[i].after[j]);
json_array_end(params);
}
json_object_end(params);
}
json_array_end(params);
if (p->our_features != NULL) {

View File

@ -93,6 +93,8 @@ struct plugin_hook {
struct command_result *(*handle)(struct command *cmd,
const char *buf,
const jsmntok_t *params);
/* If non-NULL, these are NULL-terminated arrays of deps */
const char **before, **after;
};
/* Return the feature set of the current lightning node */

View File

@ -118,9 +118,14 @@ static const struct plugin_command commands[] = { {
}
};
static const char *before[] = { "dummy", NULL };
static const char *after[] = { "dummy", NULL };
static const struct plugin_hook hooks[] = { {
"peer_connected",
json_peer_connected,
before,
after
}
};