]> git.rm.cloudns.org Git - xonotic/darkplaces.git/commitdiff
fix misparsing of portless IPv6 addresses
authordivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 6 Oct 2010 09:48:53 +0000 (09:48 +0000)
committerdivverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Wed, 6 Oct 2010 09:48:53 +0000 (09:48 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10514 d7cf8633-e32d-0410-b094-e92efae38249

lhnet.c

diff --git a/lhnet.c b/lhnet.c
index 75cd5c64df261d1db8f374859256cab775c06154..bb1e0085aaf0240af6555f4565d1213e3240f88d 100644 (file)
--- a/lhnet.c
+++ b/lhnet.c
@@ -389,8 +389,12 @@ int LHNETADDRESS_FromString(lhnetaddress_t *vaddress, const char *string, int de
        address->addresstype = LHNETADDRESSTYPE_NONE;
        port = 0;
        colon = strrchr(string, ':');
-       if (colon)
+       if (colon && (colon == strchr(string, ':') || (string[0] == '[' && colon - string > 0 && colon[-1] == ']'))I)
+       //           EITHER: colon is the ONLY colon  OR: colon comes after [...] delimited IPv6 address
+       //           fixes misparsing of IPv6 addresses without port
+       {
                port = atoi(colon + 1);
+       }
        else
                colon = string + strlen(string);
        if (port == 0)