]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
Fixed bug introduced in 2.1-beta3 where management
authorjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>
Sun, 16 Oct 2005 01:46:24 +0000 (01:46 +0000)
committerjames <james@e7ae566f-a301-0410-adde-c780ea21d3b5>
Sun, 16 Oct 2005 01:46:24 +0000 (01:46 +0000)
socket bind would fail.
Pre-2.1-beta4

git-svn-id: http://svn.openvpn.net/projects/openvpn/branches/BETA21/openvpn@635 e7ae566f-a301-0410-adde-c780ea21d3b5

ChangeLog
configure.ac
manage.c
socket.c
socket.h

index abed740abe669bee6a1db00569d83e2f0ecdeb11..ac71185b3c30c79bb1b08564157e7015cff36d0c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,11 @@ Copyright (C) 2002-2005 OpenVPN Solutions LLC <info@openvpn.net>
 
 $Id$
 
+2005.10.xx -- Version 2.1-beta4
+
+* Fixed bug introduced in 2.1-beta3 where management
+  socket bind would fail.
+       
 2005.10.16 -- Version 2.1-beta3
 
 * Added PKCS#11 support (Alon Bar-Lev).
index 6b01f37638c14e788f95c744e1d6067b99e1dc88..9befab28ad19a7a6fa8740d8196758dc87fe55aa 100644 (file)
@@ -25,7 +25,7 @@ dnl Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.50)
 
-AC_INIT([OpenVPN], [2.1_beta3], [openvpn-users@lists.sourceforge.net], [openvpn])
+AC_INIT([OpenVPN], [2.1_beta4], [openvpn-users@lists.sourceforge.net], [openvpn])
 AM_CONFIG_HEADER(config.h)
 AC_CONFIG_SRCDIR(syshead.h)
 
index ddded807d74447993e82387e83da199590b4d42c..7be67fd00035a30a3c7f1c933336a1e32d3fefa2 100644 (file)
--- a/manage.c
+++ b/manage.c
@@ -840,9 +840,7 @@ man_listen (struct management *man)
       /*
        * Bind socket
        */
-      if (bind (man->connection.sd_top, (struct sockaddr *) &man->settings.local, sizeof (man->settings.local)))
-       msg (M_SOCKERR, "MANAGEMENT: Cannot bind TCP socket on %s",
-            print_sockaddr (&man->settings.local, &gc));
+      socket_bind (man->connection.sd_top, &man->settings.local, "MANAGEMENT");
 
       /*
        * Listen for connection
index 75ae615f0112ea02cc1de36895d1da8c88827913..dd98f7c592ab286d8bb7115023e088c5ed9b29eb 100644 (file)
--- a/socket.c
+++ b/socket.c
@@ -685,16 +685,18 @@ socket_listen_accept (socket_descriptor_t sd,
   return new_sd;
 }
 
-static void
+void
 socket_bind (socket_descriptor_t sd,
-             struct openvpn_sockaddr *local)
+             struct openvpn_sockaddr *local,
+            const char *prefix)
 {
   struct gc_arena gc = gc_new ();
 
   if (bind (sd, (struct sockaddr *) &local->sa, sizeof (local->sa)))
     {
       const int errnum = openvpn_errno_socket ();
-      msg (M_FATAL, "TCP/UDP: Socket bind failed on local address %s: %s",
+      msg (M_FATAL, "%s: Socket bind failed on local address %s: %s",
+          prefix,
            print_sockaddr (local, &gc),
            strerror_ts (errnum, &gc));
     }
@@ -746,7 +748,7 @@ socket_connect (socket_descriptor_t *sd,
 
       *sd = create_socket_tcp ();
       if (bind_local)
-        socket_bind (*sd, local);
+        socket_bind (*sd, local, "TCP Client");
       update_remote (remote_dynamic, remote, remote_changed);
     }
 
@@ -818,10 +820,10 @@ resolve_bind_local (struct link_socket *sock)
     {
 #ifdef ENABLE_SOCKS
       if (sock->socks_proxy && sock->info.proto == PROTO_UDPv4)
-          socket_bind (sock->ctrl_sd, &sock->info.lsa->local);
+          socket_bind (sock->ctrl_sd, &sock->info.lsa->local, "SOCKS");
       else
 #endif
-          socket_bind (sock->sd, &sock->info.lsa->local);
+          socket_bind (sock->sd, &sock->info.lsa->local, "TCP/UDP");
     }
   gc_free (&gc);
 }
index 5b7980aa8396d59e574eb286bd2b64e698098a94..d6681e3597c5bcaa9428160bb940cda0e7576a7a 100644 (file)
--- a/socket.h
+++ b/socket.h
@@ -80,14 +80,14 @@ typedef uint16_t packet_size_type;
 /* OpenVPN sockaddr struct */
 struct openvpn_sockaddr
 {
-  int dummy; /* JYFIXME */
+  int dummy; /* JYFIXME -- add offset to force a bug if sa not explicitly dereferenced */
   struct sockaddr_in sa;
 };
 
 /* actual address of remote, based on source address of received packets */
 struct link_socket_actual
 {
-  int dummy; /* JYFIXME */
+  int dummy; /* JYFIXME -- add offset to force a bug if dest not explicitly dereferenced */
   struct openvpn_sockaddr dest;
 #if ENABLE_IP_PKTINFO
   struct in_pktinfo pi;
@@ -266,6 +266,10 @@ int socket_finalize (
 
 struct link_socket *link_socket_new (void);
 
+void socket_bind (socket_descriptor_t sd,
+                 struct openvpn_sockaddr *local,
+                 const char *prefix);
+
 /*
  * Initialize link_socket object.
  */