wether there is a bug to parse ipv6 url or not?
garry.lgr
nginx-forum at nginx.us
Thu Feb 17 11:01:57 MSK 2011
I'm reading the nginx0.9.1 source code.
now I find a bug when I read the "ngx_parse_inet6_url" function at 914
line in ngx_inet.c.
the code don't correctly get the length of port when parsing the url.
for example:
the ipv6 url is : "[::FFFF:129.144.52.38]:8080/index.html"
the code: plz see the red color part
host = u->url.data + 1;
last = u->url.data + u->url.len;
p = ngx_strlchr(host, last, ']');
if (p == NULL) {
u->err = "invalid host";
return NGX_ERROR;
}
if (last - p) {
port = p + 1;
uri = ngx_strlchr(port, last, '/');
if (uri) {
if (u->listen || !u->uri_part) {
u->err = "invalid host";
return NGX_ERROR;
}
u->uri.len = last - uri;
u->uri.data = uri;
}
if (*port == ':') {
port++;
[color=#FF0033]len = last - port; //here......... last is
the end of url ,but not the position of 8080 [/color]
......
"
Posted at Nginx Forum: http://forum.nginx.org/read.php?2,176073,176073#msg-176073
More information about the nginx
mailing list