From a5f2d8b6886d9ce55ba2c5feebee1a2af9039c7d Mon Sep 17 00:00:00 2001 From: Silas Parker Date: Tue, 21 Feb 2017 07:27:07 +0800 Subject: [PATCH] url-parser: handle ipv6 [] addresses --- lib/libwebsockets.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c index 71351db6..19133414 100755 --- a/lib/libwebsockets.c +++ b/lib/libwebsockets.c @@ -1513,8 +1513,19 @@ lws_parse_uri(char *p, const char **prot, const char **ads, int *port, else if (!strcmp(*prot, "https") || !strcmp(*prot, "wss")) *port = 443; - while (*p && *p != ':' && *p != '/') - p++; + if (*p == '[') + { + ++(*ads); + while (*p && *p != ']') + p++; + if (*p) + *p++ = '\0'; + } + else + { + while (*p && *p != ':' && *p != '/') + p++; + } if (*p == ':') { *p++ = '\0'; *port = atoi(p);