From 1f3ea708c3014d7d881577d27b254c80c8201f54 Mon Sep 17 00:00:00 2001 From: Darkvater Date: Tue, 16 Jan 2007 23:01:06 +0000 Subject: [PATCH] (svn r8168) -Regression (r6783): ParseConnectionstring didn't use the port parameter if a player was also specified. (both IP#Player:Port and IP:Port#Player btw) --- src/network/network.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/network/network.cpp b/src/network/network.cpp index 124409e3da..0211aebd2d 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -525,24 +525,25 @@ unsigned long NetworkResolveHost(const char *hostname) return ip; } -// Converts a string to ip/port/player -// Format: IP#player:port -// -// connection_string will be re-terminated to seperate out the hostname, and player and port will -// be set to the player and port strings given by the user, inside the memory area originally -// occupied by connection_string. +/** Converts a string to ip/port/player + * Format: IP#player:port + * + * connection_string will be re-terminated to seperate out the hostname, and player and port will + * be set to the player and port strings given by the user, inside the memory area originally + * occupied by connection_string. */ void ParseConnectionString(const char **player, const char **port, char *connection_string) { char *p; for (p = connection_string; *p != '\0'; p++) { - if (*p == '#') { - *p = '\0'; - *player = ++p; - while (IsValidChar(*p, CS_NUMERAL)) p++; - if (*p == '\0') break; - } else if (*p == ':') { - *port = p + 1; - *p = '\0'; + switch (*p) { + case '#': + *player = p + 1; + *p = '\0'; + break; + case ':': + *port = p + 1; + *p = '\0'; + break; } } }