Browse Source
We use ipaddr everywhere now, so we can remove this. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>ppa-0.6.1
8 changed files with 26 additions and 168 deletions
@ -1,90 +0,0 @@ |
|||
#include "bitcoin/pullpush.h" |
|||
#include "netaddr.h" |
|||
#include <arpa/inet.h> |
|||
#include <assert.h> |
|||
#include <ccan/cast/cast.h> |
|||
#include <ccan/endian/endian.h> |
|||
#include <ccan/short_types/short_types.h> |
|||
#include <ccan/str/hex/hex.h> |
|||
#include <ccan/tal/str/str.h> |
|||
#include <common/type_to_string.h> |
|||
#include <common/utils.h> |
|||
#include <netdb.h> |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
|
|||
void netaddr_to_addrinfo(struct addrinfo *ai, const struct netaddr *a) |
|||
{ |
|||
ai->ai_flags = 0; |
|||
ai->ai_family = a->saddr.s.sa_family; |
|||
ai->ai_socktype = a->type; |
|||
ai->ai_protocol = a->protocol; |
|||
ai->ai_addrlen = a->addrlen; |
|||
ai->ai_addr = cast_const(struct sockaddr *, &a->saddr.s); |
|||
ai->ai_canonname = NULL; |
|||
ai->ai_next = NULL; |
|||
} |
|||
|
|||
char *netaddr_name(const tal_t *ctx, const struct netaddr *a) |
|||
{ |
|||
char name[INET6_ADDRSTRLEN]; |
|||
const void *sockaddr; |
|||
uint16_t port; |
|||
|
|||
switch (a->saddr.s.sa_family) { |
|||
case AF_INET: |
|||
sockaddr = &a->saddr.ipv4.sin_addr; |
|||
port = ntohs(a->saddr.ipv4.sin_port); |
|||
break; |
|||
case AF_INET6: |
|||
sockaddr = &a->saddr.ipv6.sin6_addr; |
|||
port = ntohs(a->saddr.ipv6.sin6_port); |
|||
break; |
|||
default: |
|||
return tal_fmt(ctx, "Unknown protocol %u", a->saddr.s.sa_family); |
|||
} |
|||
|
|||
if (!inet_ntop(a->saddr.s.sa_family, sockaddr, name, sizeof(name))) |
|||
sprintf(name, "Unprintable-%u-address", a->saddr.s.sa_family); |
|||
|
|||
return tal_fmt(ctx, "%s:%u", name, port); |
|||
} |
|||
|
|||
char *netaddr_to_hex(const tal_t *ctx, const struct netaddr *a) |
|||
{ |
|||
u8 *blob = tal_arr(ctx, u8, 0); |
|||
char *hex; |
|||
|
|||
push_le32(a->type, push, &blob); |
|||
push_le32(a->protocol, push, &blob); |
|||
push_le32(a->addrlen, push, &blob); |
|||
assert(a->addrlen <= sizeof(a->saddr)); |
|||
push(&a->saddr, a->addrlen, &blob); |
|||
|
|||
hex = tal_hex(ctx, blob); |
|||
tal_free(blob); |
|||
return hex; |
|||
} |
|||
|
|||
bool netaddr_from_blob(const void *linear, size_t len, struct netaddr *a) |
|||
{ |
|||
const u8 *p = linear; |
|||
|
|||
a->type = pull_le32(&p, &len); |
|||
a->protocol = pull_le32(&p, &len); |
|||
a->addrlen = pull_le32(&p, &len); |
|||
if (a->addrlen > sizeof(a->saddr)) |
|||
return false; |
|||
pull(&p, &len, &a->saddr, a->addrlen); |
|||
return p != NULL && len == 0; |
|||
} |
|||
|
|||
bool netaddr_from_fd(int fd, int type, int protocol, struct netaddr *a) |
|||
{ |
|||
a->type = type; |
|||
a->protocol = protocol; |
|||
a->addrlen = sizeof(a->saddr); |
|||
return getpeername(fd, &a->saddr.s, &a->addrlen) == 0; |
|||
} |
|||
|
|||
REGISTER_TYPE_TO_STRING(netaddr, netaddr_name); |
@ -1,35 +0,0 @@ |
|||
/* FIXME: We should deprecate this in favor of BOLT7 address descriptor */ |
|||
#ifndef LIGHTNING_LIGHTNINGD_NETADDR_H |
|||
#define LIGHTNING_LIGHTNINGD_NETADDR_H |
|||
#include "config.h" |
|||
#include <ccan/tal/tal.h> |
|||
#include <netinet/in.h> |
|||
#include <netinet/ip.h> |
|||
#include <sys/socket.h> |
|||
|
|||
struct addrinfo; |
|||
|
|||
/* This can be extended to support other protocols in future. */ |
|||
struct netaddr { |
|||
int type; /* See socket(2): SOCK_STREAM currently */ |
|||
int protocol; /* See socket(2): 0 currently */ |
|||
socklen_t addrlen; |
|||
union { |
|||
struct sockaddr s; |
|||
struct sockaddr_in ipv4; |
|||
struct sockaddr_in6 ipv6; |
|||
} saddr; |
|||
}; |
|||
|
|||
/* Get the name for this netaddr. */ |
|||
char *netaddr_name(const tal_t *ctx, const struct netaddr *a); |
|||
|
|||
/* Create a addrinfo (as wanted by io_connect) for this address. */ |
|||
void netaddr_to_addrinfo(struct addrinfo *ai, const struct netaddr *a); |
|||
|
|||
bool netaddr_from_fd(int fd, int type, int protocol, struct netaddr *a); |
|||
|
|||
bool netaddr_from_blob(const void *linear, size_t len, struct netaddr *a); |
|||
char *netaddr_to_hex(const tal_t *ctx, const struct netaddr *a); |
|||
|
|||
#endif /* LIGHTNING_LIGHTNINGD_NETADDR_H */ |
Loading…
Reference in new issue