summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarkvater <darkvater@openttd.org>2007-01-16 23:01:06 +0000
committerDarkvater <darkvater@openttd.org>2007-01-16 23:01:06 +0000
commit1f3ea708c3014d7d881577d27b254c80c8201f54 (patch)
tree700c3ad448c00a1362caf7d0b2195d5ec5c874fe
parent96b19ca23e95b7b2a05adca53774254f42a76504 (diff)
downloadopenttd-1f3ea708c3014d7d881577d27b254c80c8201f54.tar.xz
(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)
-rw-r--r--src/network/network.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/network/network.cpp b/src/network/network.cpp
index 124409e3d..0211aebd2 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;
}
}
}