From 30c0381d71d333a99f6c83ff9d03ef4a0857f423 Mon Sep 17 00:00:00 2001 From: Guus Sliepen Date: Mon, 7 Jul 2003 11:11:33 +0000 Subject: [PATCH] Provide all missing IPv6 definitions in lib/ipv6.h. --- configure.in | 4 ++-- lib/utils.h | 1 + src/net.h | 14 +++----------- src/route.c | 16 +--------------- 4 files changed, 7 insertions(+), 28 deletions(-) diff --git a/configure.in b/configure.in index ddff092..41c1aaf 100644 --- a/configure.in +++ b/configure.in @@ -1,6 +1,6 @@ dnl Process this file with autoconf to produce a configure script. -dnl $Id: configure.in,v 1.13.2.64 2003/07/06 22:11:31 guus Exp $ +dnl $Id: configure.in,v 1.13.2.65 2003/07/07 11:11:33 guus Exp $ AC_PREREQ(2.53) AC_INIT(src/tincd.c) @@ -101,7 +101,7 @@ AC_TYPE_SIZE_T AC_HEADER_TIME AC_STRUCT_TM -AC_CHECK_TYPES([socklen_t, struct addrinfo, struct sockaddr_in6], , , +AC_CHECK_TYPES([socklen_t, struct addrinfo, struct in6_addr, struct sockaddr_in6], , , [#include #include #include diff --git a/lib/utils.h b/lib/utils.h index ec93e8c..6f3b18f 100644 --- a/lib/utils.h +++ b/lib/utils.h @@ -25,6 +25,7 @@ #include "fake-getaddrinfo.h" #include "fake-getnameinfo.h" +#include "ipv6.h" #define min(a,b) (((a)<(b))?(a):(b)) diff --git a/src/net.h b/src/net.h index 4851649..2a1e79e 100644 --- a/src/net.h +++ b/src/net.h @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: net.h,v 1.9.4.60 2003/07/06 23:16:28 guus Exp $ + $Id: net.h,v 1.9.4.61 2003/07/07 11:11:33 guus Exp $ */ #ifndef __TINC_NET_H__ @@ -56,11 +56,6 @@ typedef struct ipv4_t { uint8_t x[4]; } ipv4_t; -typedef struct ip_mask_t { - ipv4_t address; - ipv4_t mask; -} ip_mask_t; - typedef struct ipv6_t { uint16_t x[8]; } ipv6_t; @@ -70,19 +65,16 @@ typedef short length_t; typedef union { struct sockaddr sa; struct sockaddr_in in; -#ifdef HAVE_STRUCT_SOCKADDR_IN6 struct sockaddr_in6 in6; +#ifdef HAVE_STRUCT_SOCKADDR_STORAGE + struct sockaddr_storage storage; #endif } sockaddr_t; #ifdef SA_LEN #define SALEN(s) SA_LEN(&s) #else -#ifdef HAVE_STRUCT_SOCKADDR_IN6 #define SALEN(s) (s.sa_family==AF_INET?sizeof(struct sockaddr_in):sizeof(struct sockaddr_in6)) -#else -#define SALEN(s) (sizeof sockaddr_in) -#endif #endif typedef struct vpn_packet_t { diff --git a/src/route.c b/src/route.c index 1cdf964..89271ba 100644 --- a/src/route.c +++ b/src/route.c @@ -17,7 +17,7 @@ along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - $Id: route.c,v 1.1.2.55 2003/07/06 23:16:29 guus Exp $ + $Id: route.c,v 1.1.2.56 2003/07/07 11:11:33 guus Exp $ */ #include "config.h" @@ -286,8 +286,6 @@ static node_t *route_ipv4(vpn_packet_t *packet) return subnet->owner; } -#ifdef HAVE_NETINET_IP6_H - /* RFC 2463 */ static void route_ipv6_unreachable(vpn_packet_t *packet, uint8_t code) @@ -356,8 +354,6 @@ static void route_ipv6_unreachable(vpn_packet_t *packet, uint8_t code) write_packet(packet); } -#endif - static node_t *route_ipv6(vpn_packet_t *packet) { subnet_t *subnet; @@ -376,23 +372,17 @@ static node_t *route_ipv6(vpn_packet_t *packet) ntohs(*(uint16_t *) & packet->data[48]), ntohs(*(uint16_t *) & packet->data[50]), ntohs(*(uint16_t *) & packet->data[52])); -#ifdef HAVE_NETINET_IP6_H route_ipv6_unreachable(packet, ICMP6_DST_UNREACH_ADDR); -#endif return NULL; } -#ifdef HAVE_NETINET_IP6_H if(!subnet->owner->status.reachable) route_ipv6_unreachable(packet, ICMP6_DST_UNREACH_NOROUTE); -#endif return subnet->owner; } -#ifdef HAVE_NETINET_IP6_H - /* RFC 2461 */ static void route_neighborsol(vpn_packet_t *packet) @@ -504,8 +494,6 @@ static void route_neighborsol(vpn_packet_t *packet) write_packet(packet); } -#endif - /* RFC 826 */ static void route_arp(vpn_packet_t *packet) @@ -584,12 +572,10 @@ void route_outgoing(vpn_packet_t *packet) break; case 0x86DD: -#ifdef HAVE_NETINET_IP6_H if(packet->data[20] == IPPROTO_ICMPV6 && packet->data[54] == ND_NEIGHBOR_SOLICIT) { route_neighborsol(packet); return; } -#endif n = route_ipv6(packet); break; -- 2.25.1