Mercurial > hg > openttd
changeset 5704:b8856bcf218b draft
(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)
author | Darkvater <Darkvater@openttd.org> |
---|---|
date | Tue, 16 Jan 2007 23:01:06 +0000 |
parents | 716f4d83f960 |
children | 033f61ef4134 |
files | src/network/network.cpp |
diffstat | 1 files changed, 15 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -525,24 +525,25 @@ 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; } } }