remove RB_IPV6

This commit is contained in:
Simon Arlott 2017-08-18 13:03:59 +01:00
parent f21ef0cebc
commit de2934965c
No known key found for this signature in database
GPG key ID: C8975F2043CA5D24
34 changed files with 15 additions and 336 deletions

View file

@ -172,27 +172,6 @@ rb_socklen_t=$rb_cv_socklen_t
AC_ARG_ENABLE(ipv6,AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]),[ipv6=$enableval],[ipv6=yes])
if test x$ipv6 != xyes; then
have_v6="no"
else
have_v6=yes
RB_PROTO_INET6([], [
AC_MSG_NOTICE([Disabling IPv6 support: PF_INET6 not found])
have_v6=no
])
if test "X$have_v6" = "Xyes"; then
RB_TYPE_STRUCT_SOCKADDR_IN6([], [
AC_MSG_NOTICE([Disabling IPv6 support: struct sockaddr_in6 not found])
have_v6=no
])
fi
fi
AC_CHECK_TYPES([struct sockaddr_storage],[
rb_have_sockaddr_storage=yes
],[], [
@ -490,10 +469,6 @@ AC_CONFIG_COMMANDS([include/librb-config.h],
_______EOF
if test "x$rb_have_ipv6" = "xyes"; then
echo "#define RB_IPV6 1" >> $outfile
fi
if test "x$rb_windows_h" = "xyes"; then
echo '#define WIN32_LEAN_AND_MEAN 1' >> $outfile
echo '#include <windows.h>' >> $outfile
@ -664,8 +639,6 @@ fi
rb_sockaddr_storage="no"
fi
rb_have_ipv6="$have_v6"
rb_mv="$MV"
rb_rm="$RM"
@ -691,7 +664,6 @@ echo
echo "Installing into: $prefix"
echo "IPv6 support ................... $have_v6"
echo "Assert debugging ............... $assert"
echo "SSL Type........................ $SSL_TYPE"
echo

View file

@ -176,14 +176,9 @@ char *rb_strerror(int error);
#define GET_SS_LEN(x) (((struct sockaddr *)(x))->sa_len)
#else /* !RB_SOCKADDR_HAS_SA_LEN */
#define SET_SS_LEN(x, y) (((struct sockaddr *)(x))->sa_family = ((struct sockaddr *)(x))->sa_family)
#ifdef RB_IPV6
#define GET_SS_LEN(x) (((struct sockaddr *)(x))->sa_family == AF_INET ? sizeof(struct sockaddr_in) : sizeof(struct sockaddr_in6))
#else
#define GET_SS_LEN(x) (((struct sockaddr *)(x))->sa_family == AF_INET ? sizeof(struct sockaddr_in) : 0)
#endif
#endif
#ifdef RB_IPV6
#define GET_SS_PORT(x) (((struct sockaddr *)(x))->sa_family == AF_INET ? ((struct sockaddr_in *)(x))->sin_port : ((struct sockaddr_in6 *)(x))->sin6_port)
#define SET_SS_PORT(x, y) do { \
if(((struct sockaddr *)(x))->sa_family == AF_INET) { \
@ -192,10 +187,6 @@ char *rb_strerror(int error);
((struct sockaddr_in6 *)(x))->sin6_port = (y); \
} \
} while (0)
#else
#define GET_SS_PORT(x) (((struct sockaddr_in *)(x))->sin_port)
#define SET_SS_PORT(x, y) (((struct sockaddr_in *)(x))->sin_port = y)
#endif
#ifndef INADDRSZ
#define INADDRSZ 4

View file

@ -36,9 +36,7 @@ typedef struct _rb_prefix_t
union
{
struct in_addr sin;
#ifdef RB_IPV6
struct in6_addr sin6;
#endif /* RB_IPV6 */
}
add;
}

View file

@ -69,9 +69,7 @@ int rb_maxconnections = 0;
static PF rb_connect_timeout;
static PF rb_connect_tryconnect;
#ifdef RB_IPV6
static void mangle_mapped_sockaddr(struct sockaddr *in);
#endif
#ifndef HAVE_SOCKETPAIR
static int rb_inet_socketpair(int d, int type, int protocol, rb_platform_fd_t sv[2]);
@ -382,9 +380,7 @@ rb_accept_tryaccept(rb_fde_t *F, void *data)
rb_close(new_F);
}
#ifdef RB_IPV6
mangle_mapped_sockaddr((struct sockaddr *)&st);
#endif
if(F->accept->precb != NULL)
{
@ -708,7 +704,6 @@ rb_socket(int family, int sock_type, int proto, const char *note)
if(rb_unlikely(fd < 0))
return NULL; /* errno will be passed through, yay.. */
#if defined(RB_IPV6) && defined(IPV6_V6ONLY)
/*
* Make sure we can take both IPv4 and IPv6 connections
* on an AF_INET6 socket
@ -724,7 +719,6 @@ rb_socket(int family, int sock_type, int proto, const char *note)
return NULL;
}
}
#endif
F = rb_open(fd, RB_FD_SOCKET, note);
if(F == NULL)
@ -749,7 +743,6 @@ rb_socket(int family, int sock_type, int proto, const char *note)
* If a sockaddr_storage is AF_INET6 but is a mapped IPv4
* socket manged the sockaddr.
*/
#ifdef RB_IPV6
static void
mangle_mapped_sockaddr(struct sockaddr *in)
{
@ -765,7 +758,6 @@ mangle_mapped_sockaddr(struct sockaddr *in)
memcpy(in, &in4, sizeof(struct sockaddr_in));
}
}
#endif
/*
* rb_listen() - listen on a port
@ -1180,9 +1172,7 @@ inetntoa(const char *in)
*/
static const char *inet_ntop4(const unsigned char *src, char *dst, unsigned int size);
#ifdef RB_IPV6
static const char *inet_ntop6(const unsigned char *src, char *dst, unsigned int size);
#endif
/* const char *
* inet_ntop4(src, dst, size)
@ -1209,7 +1199,6 @@ inet_ntop4(const unsigned char *src, char *dst, unsigned int size)
* author:
* Paul Vixie, 1996.
*/
#ifdef RB_IPV6
static const char *
inet_ntop6(const unsigned char *src, char *dst, unsigned int size)
{
@ -1314,7 +1303,6 @@ inet_ntop6(const unsigned char *src, char *dst, unsigned int size)
}
return memcpy(dst, tmp, tp - tmp);
}
#endif
int
rb_inet_pton_sock(const char *src, struct sockaddr *dst)
@ -1326,7 +1314,6 @@ rb_inet_pton_sock(const char *src, struct sockaddr *dst)
SET_SS_LEN(dst, sizeof(struct sockaddr_in));
return 1;
}
#ifdef RB_IPV6
else if(rb_inet_pton(AF_INET6, src, &((struct sockaddr_in6 *)dst)->sin6_addr))
{
SET_SS_FAMILY(dst, AF_INET6);
@ -1334,7 +1321,6 @@ rb_inet_pton_sock(const char *src, struct sockaddr *dst)
SET_SS_LEN(dst, sizeof(struct sockaddr_in6));
return 1;
}
#endif
return 0;
}
@ -1345,11 +1331,9 @@ rb_inet_ntop_sock(struct sockaddr *src, char *dst, unsigned int size)
{
case AF_INET:
return (rb_inet_ntop(AF_INET, &((struct sockaddr_in *)src)->sin_addr, dst, size));
#ifdef RB_IPV6
case AF_INET6:
return (rb_inet_ntop
(AF_INET6, &((struct sockaddr_in6 *)src)->sin6_addr, dst, size));
#endif
default:
return NULL;
}
@ -1370,7 +1354,6 @@ rb_inet_ntop(int af, const void *src, char *dst, unsigned int size)
{
case AF_INET:
return (inet_ntop4(src, dst, size));
#ifdef RB_IPV6
case AF_INET6:
if(IN6_IS_ADDR_V4MAPPED((const struct in6_addr *)src) ||
IN6_IS_ADDR_V4COMPAT((const struct in6_addr *)src))
@ -1379,9 +1362,6 @@ rb_inet_ntop(int af, const void *src, char *dst, unsigned int size)
s6_addr[12], dst, size));
else
return (inet_ntop6(src, dst, size));
#endif
default:
return (NULL);
}
@ -1457,7 +1437,6 @@ inet_pton4(const char *src, unsigned char *dst)
return (1);
}
#ifdef RB_IPV6
/* int
* inet_pton6(src, dst)
* convert presentation level address to network order binary form.
@ -1570,7 +1549,7 @@ inet_pton6(const char *src, unsigned char *dst)
memcpy(dst, tmp, IN6ADDRSZ);
return (1);
}
#endif
int
rb_inet_pton(int af, const char *src, void *dst)
{
@ -1578,7 +1557,6 @@ rb_inet_pton(int af, const char *src, void *dst)
{
case AF_INET:
return (inet_pton4(src, dst));
#ifdef RB_IPV6
case AF_INET6:
/* Somebody might have passed as an IPv4 address this is sick but it works */
if(inet_pton4(src, dst))
@ -1589,7 +1567,6 @@ rb_inet_pton(int af, const char *src, void *dst)
}
else
return (inet_pton6(src, dst));
#endif
default:
return (-1);
}
@ -2257,7 +2234,6 @@ rb_send_fd_buf(rb_fde_t *xF, rb_fde_t **F, int count, void *data, size_t datasiz
#endif /* _WIN32 */
#endif /* defined(HAVE_SENDMSG) && !defined(WIN32) */
#ifdef RB_IPV6
int
rb_ipv4_from_ipv6(const struct sockaddr_in6 *restrict ip6, struct sockaddr_in *restrict ip4)
{
@ -2282,10 +2258,3 @@ rb_ipv4_from_ipv6(const struct sockaddr_in6 *restrict ip6, struct sockaddr_in *r
ip4->sin_port = 0;
return 1;
}
#else
int
rb_ipv4_from_ipv6(const struct sockaddr_in6 *restrict ip6, struct sockaddr_in *restrict ip4)
{
return 0;
}
#endif /* RB_IPV6 */

View file

@ -92,25 +92,17 @@ prefix_toa2(rb_prefix_t *prefix, char *buff, int buf_len)
static char *
prefix_toa(rb_prefix_t *prefix)
{
#ifdef RB_IPV6
static char buf[INET6_ADDRSTRLEN + 6];
#else
static char buf[16 + 6];
#endif
return (prefix_toa2(prefix, buf, sizeof(buf)));
}
#endif
static rb_prefix_t *
New_Prefix2(int family, void *dest, int bitlen, rb_prefix_t *prefix)
{
int dynamic_allocated = 0;
#ifdef RB_IPV6
int default_bitlen = 128;
#else
int default_bitlen = 32;
#endif
#ifdef RB_IPV6
if(family == AF_INET6)
{
default_bitlen = 128;
@ -121,9 +113,7 @@ New_Prefix2(int family, void *dest, int bitlen, rb_prefix_t *prefix)
}
memcpy(&prefix->add.sin6, dest, 16);
}
else
#endif /* RB_IPV6 */
if(family == AF_INET)
else if(family == AF_INET)
{
if(prefix == NULL)
{
@ -161,9 +151,7 @@ ascii2prefix(int family, const char *string)
long bitlen, maxbitlen = 0;
char *cp;
struct in_addr sinaddr;
#ifdef RB_IPV6
struct in6_addr sinaddr6;
#endif /* RB_IPV6 */
int result;
char save[MAXLINE];
@ -174,21 +162,17 @@ ascii2prefix(int family, const char *string)
if(family == 0)
{
family = AF_INET;
#ifdef RB_IPV6
if(strchr(string, ':'))
family = AF_INET6;
#endif /* RB_IPV6 */
}
if(family == AF_INET)
{
maxbitlen = 32;
}
#ifdef RB_IPV6
else if(family == AF_INET6)
{
maxbitlen = 128;
}
#endif /* RB_IPV6 */
if((cp = strchr(string, '/')) != NULL)
{
@ -213,14 +197,12 @@ ascii2prefix(int family, const char *string)
return (NULL);
return (New_Prefix(AF_INET, &sinaddr, bitlen));
}
#ifdef RB_IPV6
else if(family == AF_INET6)
{
if((result = rb_inet_pton(AF_INET6, string, &sinaddr6)) <= 0)
return (NULL);
return (New_Prefix(AF_INET6, &sinaddr6, bitlen));
}
#endif /* RB_IPV6 */
else
return (NULL);
}
@ -916,11 +898,9 @@ make_and_lookup_ip(rb_patricia_tree_t *tree, struct sockaddr *in, int bitlen)
rb_prefix_t *prefix;
rb_patricia_node_t *node;
void *ipptr = NULL;
#ifdef RB_IPV6
if(in->sa_family == AF_INET6)
ipptr = &((struct sockaddr_in6 *)in)->sin6_addr;
else
#endif
ipptr = &((struct sockaddr_in *)in)->sin_addr;
prefix = New_Prefix(in->sa_family, ipptr, bitlen);
@ -948,13 +928,11 @@ make_and_lookup(rb_patricia_tree_t *tree, const char *string)
node = rb_patricia_lookup(tree, prefix);
}
else
#ifdef RB_IPV6
if((prefix = ascii2prefix(AF_INET6, string)) != NULL)
{
node = rb_patricia_lookup(tree, prefix);
}
else
#endif
return NULL;
#ifdef PATRICIA_DEBUG
printf("make_and_lookup: %s/%d\n", prefix_toa(prefix), prefix->bitlen);
@ -975,14 +953,12 @@ try_search_exact(rb_patricia_tree_t *tree, char *string)
Deref_Prefix(prefix);
return (node);
}
#ifdef RB_IPV6
else if((prefix = ascii2prefix(AF_INET6, string)) != NULL)
{
node = rb_patricia_search_exact(tree, prefix);
Deref_Prefix(prefix);
return (node);
}
#endif
else
return NULL;
}
@ -1005,11 +981,7 @@ rb_match_ip(rb_patricia_tree_t *tree, struct sockaddr *ip)
void *ipptr;
unsigned int len;
int family;
#ifndef RB_IPV6
len = 32;
family = AF_INET;
ipptr = &((struct sockaddr_in *)ip)->sin_addr;
#else
if(ip->sa_family == AF_INET6)
{
len = 128;
@ -1022,7 +994,6 @@ rb_match_ip(rb_patricia_tree_t *tree, struct sockaddr *ip)
family = AF_INET;
ipptr = &((struct sockaddr_in *)ip)->sin_addr;
}
#endif
if((prefix = New_Prefix(family, ipptr, len)) != NULL)
{
@ -1040,13 +1011,7 @@ rb_match_ip_exact(rb_patricia_tree_t *tree, struct sockaddr *ip, unsigned int le
rb_patricia_node_t *node;
void *ipptr;
int family;
#ifndef RB_IPV6
if(len > 128)
len = 128;
family = AF_INET;
ipptr = &((struct sockaddr_in *)ip)->sin_addr;
#else
if(ip->sa_family == AF_INET6)
{
if(len > 128)
@ -1061,7 +1026,6 @@ rb_match_ip_exact(rb_patricia_tree_t *tree, struct sockaddr *ip, unsigned int le
family = AF_INET;
ipptr = &((struct sockaddr_in *)ip)->sin_addr;
}
#endif
if((prefix = New_Prefix(family, ipptr, len)) != NULL)
{
@ -1086,14 +1050,12 @@ rb_match_string(rb_patricia_tree_t *tree, const char *string)
Deref_Prefix(prefix);
}
else
#ifdef RB_IPV6
if((prefix = ascii2prefix(AF_INET6, string)) != NULL)
{
node = rb_patricia_search_best(tree, prefix);
Deref_Prefix(prefix);
}
else
#endif
return NULL;
return node;
}
@ -1109,14 +1071,12 @@ rb_match_exact_string(rb_patricia_tree_t *tree, const char *string)
Deref_Prefix(prefix);
}
else
#ifdef RB_IPV6
if((prefix = ascii2prefix(AF_INET6, string)) != NULL)
{
node = rb_patricia_search_exact(tree, prefix);
Deref_Prefix(prefix);
}
else
#endif
return NULL;
return node;
}