On Thu, Apr 21, 2005 at 12:41:03AM +0200, Bernhard Schmidt wrote: > JuanJo Ciarlante schrieb: > > >>I've been just trying the OpenVPN IPv6 transport patch you posted ... > > I've finished 2.0 final port of my patch; I've tested under FreeBSD-5.3 > > (compilation and run OK). > > > > Get from: > > http://www.irrigacion.gov.ar/juanjo/openvpn/ > > Great, thanks ... Now it got just another problem :-) > > When you do something with routes (--route for example, or > --redirect-gateway) you get > > Thu Apr 21 00:38:53 2005 OpenVPN 2.0 i386-unknown-freebsd5.3 [SSL] > [PF_INET6] built on Apr 21 2005 > Thu Apr 21 00:38:53 2005 Static Encrypt: Cipher 'BF-CBC' initialized > with 128 bit key > Thu Apr 21 00:38:53 2005 Static Encrypt: Using 160 bit message hash > 'SHA1' for HMAC authentication > Thu Apr 21 00:38:53 2005 Static Decrypt: Cipher 'BF-CBC' initialized > with 128 bit key > Thu Apr 21 00:38:53 2005 Static Decrypt: Using 160 bit message hash > 'SHA1' for HMAC authentication > Thu Apr 21 00:38:53 2005 Assertion failed at socket.c:1495 > Thu Apr 21 00:38:53 2005 Exiting > > same on linux. Any idea? :-)
Yep .. redirect-default-gateway semantics (even if NOT used ) are triggering this, please try attached patch Feedbacck very welcome! Regards -- --Juanjo # Juan Jose Ciarlante (JuanJo) jjo ;at; mendoza.gov.ar # # GnuPG Public Key: gpg --keyserver wwwkeys.eu.pgp.net --recv-key 66727177 # # Key fingerprint: 0D2F 3E5D 8B5C 729E 0560 F453 A3F7 E249 6672 7177 #
? .deps ? .gdb_history ? .socket.c.swp ? Makefile ? autom4te.cache ? config.h ? config.log ? config.status ? occ.d ? openvpn ? out.k ? stamp-h1 ? tspc.log Index: socket.c =================================================================== RCS file: /home/jjo/cvs.juanjo/openvpn/openvpn-2/socket.c,v retrieving revision 1.4.2.1 diff -u -r1.4.2.1 socket.c --- socket.c 19 Apr 2005 18:25:11 -0000 1.4.2.1 +++ socket.c 21 Apr 2005 17:32:58 -0000 @@ -1492,7 +1492,20 @@ { const struct link_socket_addr *lsa = info->lsa; +/* + * This logic supports "redirect-gateway" semantic, which + * makes sense only for PF_INET routes over PF_INET endpoints + * + * Maybe in the future consider PF_INET6 endpoints also ... + * by now just ignore it + * + */ +#if defined ( USE_PF_INET6 ) || defined ( USE_PF_UNIX ) + if(lsa->actual.addr.sa_family != AF_INET) + return 0; +#else ASSERT(lsa->actual.addr.sa_family == AF_INET); +#endif if (addr_defined (&lsa->actual.addr)) return ntohl (lsa->actual.in.sin_addr.s_addr); else if (addr_defined (&lsa->remote.addr)) Index: socket.h =================================================================== RCS file: /home/jjo/cvs.juanjo/openvpn/openvpn-2/socket.h,v retrieving revision 1.4.2.1 diff -u -r1.4.2.1 socket.h --- socket.h 19 Apr 2005 18:25:11 -0000 1.4.2.1 +++ socket.h 21 Apr 2005 17:32:58 -0000 @@ -84,7 +84,9 @@ union sockaddr_ovpn { struct sockaddr addr; struct sockaddr_in in; +#ifdef USE_PF_INET6 struct sockaddr_in6 in6; +#endif #ifdef USE_PF_UNIX struct sockaddr_un un; #endif