diff --git a/common/wireaddr.c b/common/wireaddr.c index ce4bea332..9d529bacb 100644 --- a/common/wireaddr.c +++ b/common/wireaddr.c @@ -28,6 +28,10 @@ bool fromwire_wireaddr(const u8 **cursor, size_t *max, struct wireaddr *addr) void towire_wireaddr(u8 **pptr, const struct wireaddr *addr) { + if (!addr || addr->type == ADDR_TYPE_PADDING) { + towire_u8(pptr, ADDR_TYPE_PADDING); + return; + } towire_u8(pptr, addr->type); towire(pptr, addr->addr, addr->addrlen); towire_u16(pptr, addr->port); diff --git a/common/wireaddr.h b/common/wireaddr.h index ae196b9cc..ab51b3c98 100644 --- a/common/wireaddr.h +++ b/common/wireaddr.h @@ -36,6 +36,7 @@ struct wireaddr { u16 port; }; +/* Inserts a single ADDR_TYPE_PADDING if addr is NULL */ void towire_wireaddr(u8 **pptr, const struct wireaddr *addr); bool fromwire_wireaddr(const u8 **cursor, size_t *max, struct wireaddr *addr); #endif /* LIGHTNING_COMMON_WIREADDR_H */