|
|
@@ -2875,7 +2875,7 @@ void url_split(char *proto, int proto_size, |
|
|
char *path, int path_size, |
|
|
char *path, int path_size, |
|
|
const char *url) |
|
|
const char *url) |
|
|
{ |
|
|
{ |
|
|
const char *p, *ls, *at, *col, *brk; |
|
|
|
|
|
|
|
|
const char *p, *ls, *at, *col, *brk, *q; |
|
|
|
|
|
|
|
|
if (port_ptr) *port_ptr = -1; |
|
|
if (port_ptr) *port_ptr = -1; |
|
|
if (proto_size > 0) proto[0] = 0; |
|
|
if (proto_size > 0) proto[0] = 0; |
|
|
@@ -2896,9 +2896,12 @@ void url_split(char *proto, int proto_size, |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/* separate path from hostname */ |
|
|
/* separate path from hostname */ |
|
|
if ((ls = strchr(p, '/'))) |
|
|
|
|
|
av_strlcpy(path, ls, path_size); |
|
|
|
|
|
else |
|
|
|
|
|
|
|
|
if ((ls = strchr(p, '/'))) { |
|
|
|
|
|
if ((q = strchr(ls, '?'))) |
|
|
|
|
|
av_strlcpy(path, ls, FFMIN(path_size, q - ls + 1)); |
|
|
|
|
|
else |
|
|
|
|
|
av_strlcpy(path, ls, path_size); |
|
|
|
|
|
} else if (!(ls = strchr(p, '?'))) |
|
|
ls = &p[strlen(p)]; // XXX |
|
|
ls = &p[strlen(p)]; // XXX |
|
|
|
|
|
|
|
|
/* the rest is hostname, use that to parse auth/port */ |
|
|
/* the rest is hostname, use that to parse auth/port */ |
|
|
|