mirror of
https://github.com/ElementsProject/lightning.git
synced 2024-11-20 02:27:51 +01:00
4110376e87
There's no real reason to avoid commands for the next commit; this has the benefit that we can remove the infrastructure to queue commands. The only exceptions are the commit command and the opening phase. We still only allow one commit at a time, but that's mainly run off a timer which can try again later. For the JSONRPC API used for testing, we can simply fail the commit if one is in progress. For opening we add an explicit peer_open_complete() call in place of using the command infrastructure. Commands are now outside the state machine altogether: we simply have it return the new state instead of the command status. The JSONRPC functions can also now run commands directly. This removes the idea of "peercond" as well: you can simply examine the states to determine whether an input is valid. There are fine-grained helpers for this now, too. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
35 lines
754 B
C
35 lines
754 B
C
#include "names.h"
|
|
/* Indented for 'check-source' because it has to be included after names.h */
|
|
#include "gen_state_names.h"
|
|
#include "gen_pkt_names.h"
|
|
|
|
const char *state_name(enum state s)
|
|
{
|
|
size_t i;
|
|
|
|
for (i = 0; enum_state_names[i].name; i++)
|
|
if (enum_state_names[i].v == s)
|
|
return enum_state_names[i].name;
|
|
return "unknown";
|
|
}
|
|
|
|
const char *input_name(enum state_input in)
|
|
{
|
|
size_t i;
|
|
|
|
for (i = 0; enum_state_input_names[i].name; i++)
|
|
if (enum_state_input_names[i].v == in)
|
|
return enum_state_input_names[i].name;
|
|
return "unknown";
|
|
}
|
|
|
|
const char *pkt_name(Pkt__PktCase pkt)
|
|
{
|
|
size_t i;
|
|
|
|
for (i = 0; enum_PktCase_names[i].name; i++)
|
|
if (enum_PktCase_names[i].v == pkt)
|
|
return enum_PktCase_names[i].name;
|
|
return "unknown";
|
|
}
|