urlparser: Fixes in URIPARSER
This commit is contained in:
parent
f85a8fc4aa
commit
a0fb77d83a
1 changed files with 11 additions and 5 deletions
16
src/url.c
16
src/url.c
|
@ -91,6 +91,7 @@ urlparse ( const char *str, url_t *url )
|
|||
if (x.first) {\
|
||||
size_t len = x.afterLast - x.first;\
|
||||
strncpy(y, x.first, len);\
|
||||
y[len] = '\0';\
|
||||
} else {\
|
||||
y[0] = '\0';\
|
||||
}
|
||||
|
@ -107,7 +108,10 @@ urlparse ( const char *str, url_t *url )
|
|||
path = uri.pathHead;
|
||||
while (path) {
|
||||
uri_copy_static(buf, path->text);
|
||||
url->path = realloc(url->path, strlen(url->path) + strlen(buf) + 2);
|
||||
if (url->path)
|
||||
url->path = realloc(url->path, strlen(url->path) + strlen(buf) + 2);
|
||||
else
|
||||
url->path = calloc(1, strlen(buf) + 2);
|
||||
strcat(url->path, "/");
|
||||
strcat(url->path, buf);
|
||||
path = path->next;
|
||||
|
@ -115,10 +119,12 @@ urlparse ( const char *str, url_t *url )
|
|||
// TODO: query/fragment
|
||||
|
||||
/* Split user/pass */
|
||||
s = strstr(url->user, ":");
|
||||
if (s) {
|
||||
strcpy(url->pass, s+1);
|
||||
*s = 0;
|
||||
if (url->user) {
|
||||
s = strstr(url->user, ":");
|
||||
if (s) {
|
||||
strcpy(url->pass, s+1);
|
||||
*s = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Cleanup */
|
||||
|
|
Loading…
Add table
Reference in a new issue