Browse Source
Added a struct that represents a single entry in a `getnodes` reply, so that we can append one after the other and parse them again on the other side.ppa-0.6.1
Christian Decker
8 years ago
3 changed files with 43 additions and 0 deletions
@ -0,0 +1,27 @@ |
|||
#include <lightningd/gossip_msg.h> |
|||
#include <wire/wire.h> |
|||
|
|||
void fromwire_gossip_getnodes_entry(const u8 **pptr, size_t *max, struct gossip_getnodes_entry *entry) |
|||
{ |
|||
u8 hostnamelen; |
|||
fromwire_pubkey(pptr, max, &entry->nodeid); |
|||
hostnamelen = fromwire_u8(pptr, max); |
|||
entry->hostname = tal_arr(entry, char, hostnamelen); |
|||
fromwire_u8_array(pptr, max, (u8*)entry->hostname, hostnamelen); |
|||
entry->port = fromwire_u16(pptr, max); |
|||
} |
|||
void towire_gossip_getnodes_entry(u8 **pptr, const struct gossip_getnodes_entry *entry) |
|||
{ |
|||
u8 hostnamelen; |
|||
towire_pubkey(pptr, &entry->nodeid); |
|||
if (entry->hostname) { |
|||
hostnamelen = strlen(entry->hostname); |
|||
towire_u8(pptr, hostnamelen); |
|||
towire_u8_array(pptr, (u8*)entry->hostname, hostnamelen); |
|||
}else { |
|||
/* If we don't have a hostname just write an empty string */ |
|||
hostnamelen = 0; |
|||
towire_u8(pptr, hostnamelen); |
|||
} |
|||
towire_u16(pptr, entry->port); |
|||
} |
@ -0,0 +1,15 @@ |
|||
#ifndef LIGHTNING_LIGHTNINGD_GOSSIP_MSG_H |
|||
#define LIGHTNING_LIGHTNINGD_GOSSIP_MSG_H |
|||
#include "config.h" |
|||
#include <bitcoin/pubkey.h> |
|||
|
|||
struct gossip_getnodes_entry { |
|||
struct pubkey nodeid; |
|||
char *hostname; |
|||
u16 port; |
|||
}; |
|||
|
|||
void fromwire_gossip_getnodes_entry(const u8 **pptr, size_t *max, struct gossip_getnodes_entry *entry); |
|||
void towire_gossip_getnodes_entry(u8 **pptr, const struct gossip_getnodes_entry *entry); |
|||
|
|||
#endif /* LIGHTNING_LIGHTGNINGD_GOSSIP_MSG_H */ |
Loading…
Reference in new issue