Fix the "WARNING: 'proto' is used inconsistently, local='proto UDP', 
remote='proto UDPv6'." message.

Note that the on wire strings are now always TCPv4 and UDPv4 to be compatible 
to pre2.3

Signed-off-by: Arne Schwabe <a...@rfc2549.org>
---
 src/openvpn/socket.c |   22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c
index 505cf3b..2adfe8a 100644
--- a/src/openvpn/socket.c
+++ b/src/openvpn/socket.c
@@ -2560,6 +2560,10 @@ addr_family_name (int af)
  *
  * This is used for options compatibility
  * checking.
+ *
+ * IPv6 and IPv4 protocols are comptabile but OpenVPN
+ * has always sent UDPv4, TCPv4 over the wire. Keep these 
+ * strings for backward compatbility
  */
 int
 proto_remote (int proto, bool remote)
@@ -2569,10 +2573,20 @@ proto_remote (int proto, bool remote)
     {
       switch (proto)
       {
-       case PROTO_TCPv4_SERVER: return PROTO_TCPv4_CLIENT;
-       case PROTO_TCPv4_CLIENT: return PROTO_TCPv4_SERVER;
-       case PROTO_TCPv6_SERVER: return PROTO_TCPv6_CLIENT;
-       case PROTO_TCPv6_CLIENT: return PROTO_TCPv6_SERVER;
+      case PROTO_TCPv4_SERVER: return PROTO_TCPv4_CLIENT;
+      case PROTO_TCPv4_CLIENT: return PROTO_TCPv4_SERVER;
+      case PROTO_TCPv6_SERVER: return PROTO_TCPv4_CLIENT;
+      case PROTO_TCPv6_CLIENT: return PROTO_TCPv4_SERVER;
+      case PROTO_UDPv6: return PROTO_UDPv4;
+      }
+    }
+  else
+    {
+      switch (proto)
+      {
+      case PROTO_TCPv6_SERVER: return PROTO_TCPv4_SERVER;
+      case PROTO_TCPv6_CLIENT: return PROTO_TCPv4_CLIENT;
+      case PROTO_UDPv6: return PROTO_UDPv4;
       }
     }
   return proto;
-- 
1.7.9.5


Reply via email to