]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
* ipv6-0.4.15b: rebase over openvpn-testing-master
authorJuanJo Ciarlante <juanjosec@gmail.com>
Fri, 25 Mar 2011 13:51:33 +0000 (14:51 +0100)
committerJuanJo Ciarlante <juanjosec@gmail.com>
Sun, 27 Mar 2011 21:40:33 +0000 (23:40 +0200)
README.ipv6
options.c
socket.c

index 5d17b91878a5f510378b4e33e73a98ffa06b1363..4295f85440f14d037ec5f23e06aa4e68690a7f47 100644 (file)
@@ -1,4 +1,4 @@
-[ Last updated: 16-Nov-2009. ]
+[ Last updated: 25-Mar-2011. ]
 
 OpenVPN-2.1 over UDP6/TCP6 README for ipv6-0.4.x patch releases:
 ( --udp6 and --tcp6-{client,server} )
@@ -18,7 +18,7 @@ OpenVPN-2.1 over UDP6/TCP6 README for ipv6-0.4.x patch releases:
 
 * Status:
   o OK:
-    - upd6,tcp6: GNU/Linux, win32, openbsd-4.6
+    - upd6,tcp6: GNU/Linux, win32, openbsd-4.7, freebsd-8.1
     - udp4->upd6,tcp4->tcp6 (ipv4/6 mapped): GNU/Linux
       (gives a warning on local!=remote proto matching)
   o NOT:
index 83017b81432df8f3bcce4689dfc658e5e93595b2..ff65ca29059dc2a8ed47f41a5ba39c5135ed836c 100644 (file)
--- a/options.c
+++ b/options.c
@@ -79,6 +79,7 @@ const char title_string[] =
 #endif
 #ifdef ENABLE_EUREPHIA
   " [eurephia]"
+#endif
 #ifdef ENABLE_IP_PKTINFO
   " [MH]"
 #endif
index 7efdf3a90ff879063b6fd66032b94b12065cdb6f..7cd6276914d768c77d5614e66d545d7a109b7c9b 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -52,12 +52,13 @@ const int proto_overhead[] = { /* indexed by PROTO_x */
  * Convert sockflags/getaddr_flags into getaddr_flags
  */
 static unsigned int
-sf2gaf(unsigned int getaddr_flags,
+sf2gaf(const unsigned int getaddr_flags,
        const unsigned int sockflags)
 {
-  getaddr_flags |= (sockflags & SF_GETADDRINFO_DGRAM) ? GETADDR_DGRAM : 0;
-  getaddr_flags |= (sockflags & SF_HOST_RANDOMIZE) ? GETADDR_RANDOMIZE : 0;
-  return getaddr_flags;
+  if (sockflags & SF_HOST_RANDOMIZE)
+    return getaddr_flags | GETADDR_RANDOMIZE;
+  else
+    return getaddr_flags;
 }
 
 /*
@@ -2440,11 +2441,11 @@ print_sockaddr_ex (const struct openvpn_sockaddr *addr,
        {
          const int port= ntohs (addr->addr.in4.sin_port);
          buf_puts (&out, "[AF_INET]");
-         mutex_lock_static (L_INET_NTOA);
-         buf_puts (&out, (addr_is_defined ? inet_ntoa (addr->addr.in4.sin_addr) : "[undef]"));
-         mutex_unlock_static (L_INET_NTOA);
 
-         if (((flags & PS_SHOW_PORT) || (addr_is_defined && (flags & PS_SHOW_PORT_IF_DEFINED)))
+         if (!(flags & PS_DONT_SHOW_ADDR))
+           buf_printf (&out, "%s", (addr_defined (addr) ? inet_ntoa (addr->addr.in4.sin_addr) : "[undef]"));
+
+         if (((flags & PS_SHOW_PORT) || (addr_defined (addr) && (flags & PS_SHOW_PORT_IF_DEFINED)))
              && port)
            {
              if (separator)
@@ -2590,9 +2591,7 @@ setenv_sockaddr (struct env_set *es, const char *name_prefix, const struct openv
       else
        openvpn_snprintf (name_buf, sizeof (name_buf), "%s", name_prefix);
 
-      mutex_lock_static (L_INET_NTOA);
       setenv_str (es, name_buf, inet_ntoa (addr->addr.in4.sin_addr));
-      mutex_unlock_static (L_INET_NTOA);
 
       if ((flags & SA_IP_PORT) && addr->addr.in4.sin_port)
        {
@@ -2607,8 +2606,11 @@ setenv_sockaddr (struct env_set *es, const char *name_prefix, const struct openv
                  buf, sizeof(buf), NULL, 0, NI_NUMERICHOST);
       setenv_str (es, name_buf, buf);
 
-      openvpn_snprintf (name_buf, sizeof (name_buf), "%s_port", name_prefix);
-      setenv_int (es, name_buf, ntohs (addr->addr.in6.sin6_port));
+      if ((flags & SA_IP_PORT) && addr->addr.in6.sin6_port)
+       {
+         openvpn_snprintf (name_buf, sizeof (name_buf), "%s_port", name_prefix);
+         setenv_int (es, name_buf, ntohs (addr->addr.in6.sin6_port));
+       }
       break;
     }
 #endif