mirror of
https://github.com/ElementsProject/lightning.git
synced 2025-02-22 14:42:40 +01:00
connectd: add annotation and fix up formatting on connectd/netaddress.c
This is stolen from the bitcoind source, so we use their style (no tabs, 4-wide spaces). Clean it up and add the emacs magic to maintain it in future. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
parent
089ecfe418
commit
23d4e53246
1 changed files with 18 additions and 17 deletions
|
@ -1,3 +1,4 @@
|
|||
/* -*- c-basic-offset: 4; indent-tabs-mode: nil; -*- */
|
||||
#include <arpa/inet.h>
|
||||
#include <assert.h>
|
||||
#include <common/status.h>
|
||||
|
@ -112,8 +113,8 @@ static bool IsRFC6598(const struct wireaddr *addr)
|
|||
static bool IsRFC5737(const struct wireaddr *addr)
|
||||
{
|
||||
return IsIPv4(addr) && ((GetByte(addr, 3) == 192 && GetByte(addr, 2) == 0 && GetByte(addr, 1) == 2) ||
|
||||
(GetByte(addr, 3) == 198 && GetByte(addr, 2) == 51 && GetByte(addr, 1) == 100) ||
|
||||
(GetByte(addr, 3) == 203 && GetByte(addr, 2) == 0 && GetByte(addr, 1) == 113));
|
||||
(GetByte(addr, 3) == 198 && GetByte(addr, 2) == 51 && GetByte(addr, 1) == 100) ||
|
||||
(GetByte(addr, 3) == 203 && GetByte(addr, 2) == 0 && GetByte(addr, 1) == 113));
|
||||
}
|
||||
|
||||
static bool IsRFC3849(const struct wireaddr *addr)
|
||||
|
@ -139,21 +140,21 @@ static bool IsRFC4843(const struct wireaddr *addr)
|
|||
|
||||
static bool IsTor(const struct wireaddr *addr)
|
||||
{
|
||||
return addr->type == ADDR_TYPE_TOR_V2 || addr->type == ADDR_TYPE_TOR_V3;
|
||||
return addr->type == ADDR_TYPE_TOR_V2 || addr->type == ADDR_TYPE_TOR_V3;
|
||||
}
|
||||
|
||||
static bool IsLocal(const struct wireaddr *addr)
|
||||
{
|
||||
// IPv4 loopback
|
||||
if (IsIPv4(addr) && (GetByte(addr, 3) == 127 || GetByte(addr, 3) == 0))
|
||||
return true;
|
||||
if (IsIPv4(addr) && (GetByte(addr, 3) == 127 || GetByte(addr, 3) == 0))
|
||||
return true;
|
||||
|
||||
// IPv6 loopback (::1/128)
|
||||
static const unsigned char pchLocal[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1};
|
||||
if (IsIPv6(addr) && RawEq(addr, pchLocal, sizeof(pchLocal)))
|
||||
return true;
|
||||
// IPv6 loopback (::1/128)
|
||||
static const unsigned char pchLocal[16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1};
|
||||
if (IsIPv6(addr) && RawEq(addr, pchLocal, sizeof(pchLocal)))
|
||||
return true;
|
||||
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
static bool IsInternal(const struct wireaddr *addr)
|
||||
|
@ -205,20 +206,20 @@ static bool get_local_sockname(int af, void *saddr, socklen_t saddrlen)
|
|||
int fd = socket(af, SOCK_DGRAM, 0);
|
||||
if (fd < 0) {
|
||||
status_debug("Failed to create %u socket: %s",
|
||||
af, strerror(errno));
|
||||
af, strerror(errno));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (connect(fd, saddr, saddrlen) != 0) {
|
||||
status_debug("Failed to connect %u socket: %s",
|
||||
af, strerror(errno));
|
||||
af, strerror(errno));
|
||||
close(fd);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (getsockname(fd, saddr, &saddrlen) != 0) {
|
||||
status_debug("Failed to get %u socket name: %s",
|
||||
af, strerror(errno));
|
||||
af, strerror(errno));
|
||||
close(fd);
|
||||
return false;
|
||||
}
|
||||
|
@ -236,9 +237,9 @@ bool guess_address(struct wireaddr *addr)
|
|||
case ADDR_TYPE_IPV4: {
|
||||
struct sockaddr_in sin;
|
||||
memset(&sin, 0, sizeof(sin));
|
||||
sin.sin_port = htons(53);
|
||||
sin.sin_port = htons(53);
|
||||
/* 8.8.8.8 */
|
||||
sin.sin_addr.s_addr = 0x08080808;
|
||||
sin.sin_addr.s_addr = 0x08080808;
|
||||
sin.sin_family = AF_INET;
|
||||
ret = get_local_sockname(AF_INET, &sin, sizeof(sin));
|
||||
addr->addrlen = sizeof(sin.sin_addr);
|
||||
|
@ -250,7 +251,7 @@ bool guess_address(struct wireaddr *addr)
|
|||
memset(&sin6, 0, sizeof(sin6));
|
||||
/* 2001:4860:4860::8888 */
|
||||
static const unsigned char pchGoogle[16]
|
||||
= {0x20,0x01,0x48,0x60,0x48,0x60,0,0,0,0,0,0,8,8,8,8};
|
||||
= {0x20,0x01,0x48,0x60,0x48,0x60,0,0,0,0,0,0,8,8,8,8};
|
||||
memset(&sin6, 0, sizeof(sin6));
|
||||
sin6.sin6_port = htons(53);
|
||||
sin6.sin6_family = AF_INET6;
|
||||
|
@ -271,6 +272,6 @@ bool guess_address(struct wireaddr *addr)
|
|||
bool address_routable(const struct wireaddr *wireaddr, bool allow_localhost)
|
||||
{
|
||||
if (allow_localhost && IsLocal(wireaddr))
|
||||
return true;
|
||||
return true;
|
||||
return IsRoutable(wireaddr);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue