diff --git a/yuarel.c b/yuarel.c index a5f313f..46d7fe0 100644 --- a/yuarel.c +++ b/yuarel.c @@ -194,7 +194,14 @@ yuarel_parse(struct yuarel *url, char *u) } /* (Port) */ - u = strchr(url->host, ':'); + if (*url->host == '[') { + u = strchr(url->host, ']'); + *u = '\0'; + u = strchr(u, ':'); + url->host++; + } else { + u = strchr(url->host, ':'); + } if (NULL != u && (NULL == url->path || u < url->path)) { *(u++) = '\0'; if ('\0' == *u) {