Hi, I had a chance to test pr 5562 and would like to confirm that on OpenBSD current the issue is still present.
OpenBSD 4.8-current (GENERIC) #510: Sat Dec 4 12:03:30 MST 2010 dera...@i386.openbsd.org:/usr/src/sys/arch/i386/compile/GENERIC After applying attached patch (taken from url in pr 5562) issue is resolved. See reference urls for more detailed explanation. Would be possible to get this patch commited? References 1. http://marc.info/?t=120168048500001&r=1&w=2 2. http://cvs.openbsd.org/cgi-bin/query-pr-wrapper?full=yes&numbers=5562 3. http://www.bzero.se/patches/isakmpd-multi-nat-peers-patch.diff -- best regards q# Index: sa.c =================================================================== RCS file: /cvs/src/sbin/isakmpd/sa.c,v retrieving revision 1.110 diff -u -r1.110 sa.c --- sa.c 24 Nov 2006 13:52:14 -0000 1.110 +++ sa.c 17 Aug 2007 14:31:04 -0000 @@ -199,7 +199,18 @@ return 0; sa->transport->vtbl->get_dst(sa->transport, &dst); - return (net_addrcmp(dst, addr->addr) == 0); + if (net_addrcmp(dst, addr->addr) != 0) + return 0; + + /* same family, length and address, check port if inet/inet6 */ + switch (dst->sa_family) { + case AF_INET: + return ((struct sockaddr_in *)dst)->sin_port == ((struct sockaddr_in *)addr->addr)->sin_port; + case AF_INET6: + return ((struct sockaddr_in6 *)dst)->sin6_port == ((struct sockaddr_in6 *)addr->addr)->sin6_port; + } + + return 1; } struct dst_isakmpspi_arg {