Browse Source

lightningd: plugins_any_in_state and plugins_all_in_state helpers.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
nifty/pset-pre
Rusty Russell 5 years ago
parent
commit
7cda24509b
  1. 22
      lightningd/plugin.c
  2. 10
      lightningd/plugin.h

22
lightningd/plugin.c

@ -973,6 +973,28 @@ bool plugin_parse_getmanifest_response(const char *buffer,
return true;
}
bool plugins_any_in_state(const struct plugins *plugins, enum plugin_state state)
{
const struct plugin *p;
list_for_each(&plugins->plugins, p, list) {
if (p->plugin_state == state)
return true;
}
return false;
}
bool plugins_all_in_state(const struct plugins *plugins, enum plugin_state state)
{
const struct plugin *p;
list_for_each(&plugins->plugins, p, list) {
if (p->plugin_state != state)
return false;
}
return true;
}
/**
* Callback for the plugin_manifest request.
*/

10
lightningd/plugin.h

@ -208,6 +208,16 @@ struct plugin *find_plugin_for_command(struct lightningd *ld,
*/
void plugins_config(struct plugins *plugins);
/**
* Are any plugins at this state still?
*/
bool plugins_any_in_state(const struct plugins *plugins, enum plugin_state state);
/**
* Are all plugins at this state?
*/
bool plugins_all_in_state(const struct plugins *plugins, enum plugin_state state);
/**
* Read and treat (populate options, methods, ...) the `getmanifest` response.
*/

Loading…
Cancel
Save