diff options
author | rubidium <rubidium@openttd.org> | 2009-04-08 01:22:57 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2009-04-08 01:22:57 +0000 |
commit | a5a424ce2811a09d784805d8f3049f77852ab958 (patch) | |
tree | 2d9a083d8a38940bb8dfe1e5dda50e31f0c7bcf1 /src/network/network.cpp | |
parent | 20e82c46d3d983311f9d67c15adcb6e5c86ec567 (diff) | |
download | openttd-a5a424ce2811a09d784805d8f3049f77852ab958.tar.xz |
(svn r15978) -Codechange: support parsing [] enclosed IPv6 addresses.
Diffstat (limited to 'src/network/network.cpp')
-rw-r--r-- | src/network/network.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/network/network.cpp b/src/network/network.cpp index c04e3853d..c5f24e666 100644 --- a/src/network/network.cpp +++ b/src/network/network.cpp @@ -374,14 +374,25 @@ static void CheckMinActiveClients() * occupied by connection_string. */ void ParseConnectionString(const char **company, const char **port, char *connection_string) { + bool ipv6 = false; char *p; for (p = connection_string; *p != '\0'; p++) { switch (*p) { + case '[': + ipv6 = true; + break; + + case ']': + ipv6 = false; + break; + case '#': *company = p + 1; *p = '\0'; break; + case ':': + if (ipv6) break; *port = p + 1; *p = '\0'; break; |