Browse Source

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

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
ppa-prep
Rusty Russell 4 years ago
committed by neil saitug
parent
commit
62c52fe868
  1. 21
      plugins/libplugin.c
  2. 2
      plugins/libplugin.h
  3. 5
      tests/plugins/test_libplugin.c

21
plugins/libplugin.c

@ -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) {

2
plugins/libplugin.h

@ -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 */

5
tests/plugins/test_libplugin.c

@ -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
}
};

Loading…
Cancel
Save