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