#include "config.h" #include #include #include #include #include #include #include #include #include #include #include #include const char *is_peer_warning(const tal_t *ctx, const u8 *msg) { if (fromwire_peektype(msg) != WIRE_WARNING) return NULL; /* connectd demuxes, so we only see it if channel_id is ours. */ return sanitize_error(ctx, msg, NULL); } const char *is_peer_error(const tal_t *ctx, const u8 *msg) { if (fromwire_peektype(msg) != WIRE_ERROR) return NULL; /* connectd demuxes, so we only see it if channel_id is ours. */ return sanitize_error(ctx, msg, NULL); } bool handle_peer_error_or_warning(struct per_peer_state *pps, const u8 *msg TAKES) { const char *err; err = is_peer_error(tmpctx, msg); if (err) peer_failed_received_errmsg(pps, err, false); /* Simply log incoming warnings */ err = is_peer_warning(tmpctx, msg); if (err) { if (taken(msg)) tal_free(msg); status_info("Received %s", err); return true; } return false; }