mirror of
https://github.com/aljazceru/lightning.git
synced 2025-12-19 15:14:23 +01:00
connectd: add own err codes instead of generic -1
Make it possible for connectd to send an error code to lightningd in addition to the error message. Introduce two new error codes, replacing the catch-all -1. This change, together with https://github.com/ElementsProject/lightning/pull/3395 will implement https://github.com/ElementsProject/lightning/issues/3366 Changelog-Changed: The `connect` command now returns its own error codes instead of a generic -1.
This commit is contained in:
committed by
Christian Decker
parent
3cf91b23b9
commit
fc75d8a9e6
@@ -16,6 +16,7 @@
|
||||
#include <errno.h>
|
||||
#include <hsmd/capabilities.h>
|
||||
#include <hsmd/gen_hsm_wire.h>
|
||||
#include <inttypes.h>
|
||||
#include <lightningd/channel.h>
|
||||
#include <lightningd/connect_control.h>
|
||||
#include <lightningd/hsm_control.h>
|
||||
@@ -231,21 +232,23 @@ void delay_then_reconnect(struct channel *channel, u32 seconds_delay,
|
||||
static void connect_failed(struct lightningd *ld, const u8 *msg)
|
||||
{
|
||||
struct node_id id;
|
||||
char *err;
|
||||
u32 errcode;
|
||||
char *errmsg;
|
||||
struct connect *c;
|
||||
u32 seconds_to_delay;
|
||||
struct wireaddr_internal *addrhint;
|
||||
struct channel *channel;
|
||||
|
||||
if (!fromwire_connectctl_connect_failed(tmpctx, msg, &id, &err,
|
||||
&seconds_to_delay, &addrhint))
|
||||
if (!fromwire_connectctl_connect_failed(tmpctx, msg, &id, &errcode, &errmsg,
|
||||
&seconds_to_delay, &addrhint) ||
|
||||
errcode > INT_MAX)
|
||||
fatal("Connect gave bad CONNECTCTL_CONNECT_FAILED message %s",
|
||||
tal_hex(msg, msg));
|
||||
|
||||
/* We can have multiple connect commands: fail them all */
|
||||
while ((c = find_connect(ld, &id)) != NULL) {
|
||||
/* They delete themselves from list */
|
||||
was_pending(command_fail(c->cmd, LIGHTNINGD, "%s", err));
|
||||
was_pending(command_fail(c->cmd, (int)errcode, "%s", errmsg));
|
||||
}
|
||||
|
||||
/* If we have an active channel, then reconnect. */
|
||||
|
||||
Reference in New Issue
Block a user