summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2013-11-25 13:31:13 +0100
committerGert Doering <gert@greenie.muc.de>2013-11-26 15:34:59 +0100
commit34136dd8533510f68a012ba9e6bcd8cf5d1ce80e (patch)
treee70ad2c3e9238cc4021f6475ded4316d0eabbdf4
parent48f1d41a80b1f2aa9e47b38f645dc880bd7090a4 (diff)
downloadopenvpn-34136dd8533510f68a012ba9e6bcd8cf5d1ce80e.tar.gz
openvpn-34136dd8533510f68a012ba9e6bcd8cf5d1ce80e.tar.xz
openvpn-34136dd8533510f68a012ba9e6bcd8cf5d1ce80e.zip
Change proto_remote() function to return a constant string
Instead of using the implicit protocol string that is returned by the proto/af to names function return a constant string. The strings have become part of the wire protocl and we do not want them to change if the printing of proto/af changes. Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1385382680-5912-2-git-send-email-arne@rfc2549.org> URL: http://article.gmane.org/gmane.network.openvpn.devel/8055 Signed-off-by: Gert Doering <gert@greenie.muc.de>
-rw-r--r--src/openvpn/options.c2
-rw-r--r--src/openvpn/socket.c22
-rw-r--r--src/openvpn/socket.h2
3 files changed, 14 insertions, 12 deletions
diff --git a/src/openvpn/options.c b/src/openvpn/options.c
index 2543ca5..809bfa0 100644
--- a/src/openvpn/options.c
+++ b/src/openvpn/options.c
@@ -2905,7 +2905,7 @@ options_string (const struct options *o,
buf_printf (&out, ",dev-type %s", dev_type_string (o->dev, o->dev_type));
buf_printf (&out, ",link-mtu %d", EXPANDED_SIZE (frame));
buf_printf (&out, ",tun-mtu %d", PAYLOAD_SIZE (frame));
- buf_printf (&out, ",proto %s", proto2ascii (proto_remote (o->ce.proto, remote),o->ce.af, true));
+ buf_printf (&out, ",proto %s", proto_remote (o->ce.proto, remote));
/* send tun_ipv6 only in peer2peer mode - in client/server mode, it
* is usually pushed by the server, triggering a non-helpful warning
diff --git a/src/openvpn/socket.c b/src/openvpn/socket.c
index f0e0914..1117e30 100644
--- a/src/openvpn/socket.c
+++ b/src/openvpn/socket.c
@@ -2599,19 +2599,21 @@ addr_family_name (int af)
* has always sent UDPv4, TCPv4 over the wire. Keep these
* strings for backward compatbility
*/
-int
+const char*
proto_remote (int proto, bool remote)
{
ASSERT (proto >= 0 && proto < PROTO_N);
- if (remote)
- {
- switch (proto)
- {
- case PROTO_TCP_SERVER: return PROTO_TCP_CLIENT;
- case PROTO_TCP_CLIENT: return PROTO_TCP_SERVER;
- }
- }
- return proto;
+ if (proto == PROTO_UDP)
+ return "UDPv4";
+
+ if ( (remote && proto == PROTO_TCP_CLIENT) ||
+ (!remote && proto == PROTO_TCP_SERVER))
+ return "TCPv4_SERVER";
+ if ( (remote && proto == PROTO_TCP_SERVER) ||
+ (!remote && proto == PROTO_TCP_CLIENT))
+ return "TCPv4_CLIENT";
+
+ ASSERT (0);
}
/*
diff --git a/src/openvpn/socket.h b/src/openvpn/socket.h
index 223c70d..a41a3d9 100644
--- a/src/openvpn/socket.h
+++ b/src/openvpn/socket.h
@@ -532,7 +532,7 @@ int ascii2proto (const char* proto_name);
sa_family_t ascii2af (const char* proto_name);
const char *proto2ascii (int proto, sa_family_t af, bool display_form);
const char *proto2ascii_all (struct gc_arena *gc);
-int proto_remote (int proto, bool remote);
+const char *proto_remote (int proto, bool remote);
const char *addr_family_name(int af);
/*