MCPcopy Create free account
hub / github.com/ElementsProject/lightning / fromwire_wireaddr

Function fromwire_wireaddr

common/wireaddr.c:30–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28}
29
30enum fromwireaddr_ret fromwire_wireaddr(const u8 **cursor, size_t *max, struct wireaddr *addr)
31{
32 addr->type = fromwire_u8(cursor, max);
33 if (*cursor == NULL)
34 return FROMWIREADDR_MALFORMED;
35
36 switch (addr->type) {
37 case ADDR_TYPE_IPV4:
38 addr->addrlen = 4;
39 break;
40 case ADDR_TYPE_IPV6:
41 addr->addrlen = 16;
42 break;
43 case ADDR_TYPE_TOR_V2_REMOVED:
44 addr->addrlen = TOR_V2_ADDRLEN;
45 break;
46 case ADDR_TYPE_TOR_V3:
47 addr->addrlen = TOR_V3_ADDRLEN;
48 break;
49 case ADDR_TYPE_DNS:
50 addr->addrlen = fromwire_u8(cursor, max);
51 memset(&addr->addr, 0, sizeof(addr->addr));
52 break;
53 default:
54 return FROMWIREADDR_UNKNOWN;
55 }
56 fromwire(cursor, max, addr->addr, addr->addrlen);
57 addr->port = fromwire_u16(cursor, max);
58
59 if (*cursor == NULL)
60 return FROMWIREADDR_MALFORMED;
61 /* BOLT #7:
62 * - if `port` is equal to 0:
63 * - SHOULD ignore `ipv6_addr` OR `ipv4_addr` OR `hostname`.
64 */
65 /* FIXME: This seems universal? */
66 if (addr->port == 0)
67 return FROMWIREADDR_IGNORE;
68 return FROMWIREADDR_OK;
69}
70
71void towire_wireaddr(u8 **pptr, const struct wireaddr *addr)
72{

Callers 8

peer_init_receivedFunction · 0.85
runFunction · 0.85
fromwire_wireaddr_arrayFunction · 0.85
mainFunction · 0.85
db_col_wireaddrFunction · 0.85
printwire_wireaddrFunction · 0.85
printwire_addressesFunction · 0.85

Calls 3

fromwire_u8Function · 0.50
fromwireFunction · 0.50
fromwire_u16Function · 0.50

Tested by 1

mainFunction · 0.68