From be1b9eb4cfbd3bc65a70a9fdf5000e67d6136a30 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Tue, 20 Jun 2017 15:27:03 +0930 Subject: [PATCH] lightningd/htlc_wire: routines to marshal/unmarshal enum htlc_state. Signed-off-by: Rusty Russell --- lightningd/htlc_wire.c | 23 ++++++++++++++++++----- lightningd/htlc_wire.h | 5 ++++- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/lightningd/htlc_wire.c b/lightningd/htlc_wire.c index 270c8e0a6..ac0f51819 100644 --- a/lightningd/htlc_wire.c +++ b/lightningd/htlc_wire.c @@ -26,9 +26,14 @@ void towire_failed_htlc(u8 **pptr, const struct failed_htlc *failed) towire_u8_array(pptr, failed->failreason, tal_count(failed->failreason)); } +void towire_htlc_state(u8 **pptr, const enum htlc_state *hstate) +{ + towire_u8(pptr, *hstate); +} + void towire_changed_htlc(u8 **pptr, const struct changed_htlc *changed) { - towire_u8(pptr, changed->newstate); + towire_htlc_state(pptr, &changed->newstate); towire_u64(pptr, changed->id); } @@ -61,12 +66,20 @@ void fromwire_failed_htlc(const tal_t *ctx, const u8 **cursor, size_t *max, fromwire_u8_array(cursor, max, failed->failreason, failreason_len); } +void fromwire_htlc_state(const u8 **cursor, size_t *max, + enum htlc_state *hstate) +{ + *hstate = fromwire_u8(cursor, max); + if (*hstate >= HTLC_STATE_INVALID) { + *hstate = HTLC_STATE_INVALID; + fromwire_fail(cursor, max); + } +} + void fromwire_changed_htlc(const u8 **cursor, size_t *max, struct changed_htlc *changed) { - changed->newstate = fromwire_u8(cursor, max); + fromwire_htlc_state(cursor, max, &changed->newstate); changed->id = fromwire_u64(cursor, max); - - if (changed->newstate >= HTLC_STATE_INVALID) - fromwire_fail(cursor, max); } + diff --git a/lightningd/htlc_wire.h b/lightningd/htlc_wire.h index dd5661990..2e7975c02 100644 --- a/lightningd/htlc_wire.h +++ b/lightningd/htlc_wire.h @@ -30,10 +30,12 @@ struct changed_htlc { u64 id; }; + void towire_added_htlc(u8 **pptr, const struct added_htlc *added); void towire_fulfilled_htlc(u8 **pptr, const struct fulfilled_htlc *fulfilled); void towire_failed_htlc(u8 **pptr, const struct failed_htlc *failed); void towire_changed_htlc(u8 **pptr, const struct changed_htlc *changed); +void towire_htlc_state(u8 **pptr, const enum htlc_state *hstate); void fromwire_added_htlc(const u8 **cursor, size_t *max, struct added_htlc *added); void fromwire_fulfilled_htlc(const u8 **cursor, size_t *max, @@ -42,5 +44,6 @@ void fromwire_failed_htlc(const tal_t *ctx, const u8 **cursor, size_t *max, struct failed_htlc *failed); void fromwire_changed_htlc(const u8 **cursor, size_t *max, struct changed_htlc *changed); - +void fromwire_htlc_state(const u8 **cursor, size_t *max, + enum htlc_state *hstate); #endif /* LIGHTNING_LIGHTNINGD_HTLC_WIRE_H */