X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=libcitadel%2Flib%2Furlhandling.c;h=4cca8a1f5481362c807853cd1893d93add597fb1;hb=0aa4cc9ec67f2b4d3c802c65655091e1abc06857;hp=f350ea7d403fb41c9570c7df5157009bd28f44fa;hpb=7d57536c03742fe2ffb3bd8c96d81242dd762f42;p=citadel.git diff --git a/libcitadel/lib/urlhandling.c b/libcitadel/lib/urlhandling.c index f350ea7d4..4cca8a1f5 100644 --- a/libcitadel/lib/urlhandling.c +++ b/libcitadel/lib/urlhandling.c @@ -26,6 +26,8 @@ void FreeURL(ParsedURL** Url) FreeStrBuf(&(*Url)->URL); FreeStrBuf(&(*Url)->UrlWithoutCred); FreeStrBuf(&(*Url)->CurlCreds); + FreeStrBuf(&(*Url)->UsrName); + FreeStrBuf(&(*Url)->Password); if ((*Url)->Next != NULL) FreeURL(&(*Url)->Next); free(*Url); @@ -131,6 +133,19 @@ int ParseURL(ParsedURL **Url, StrBuf *UrlStr, unsigned short DefaultPort) ((struct sockaddr_in *)&(url->Addr))->sin_family = AF_INET; } } + + if (url->User != NULL) { + url->UsrName = NewStrBufPlain(url->User, pUserEnd - url->User); + StrBufUnescape(url->UsrName, 0); + url->User = ChrPtr(url->UsrName); + } + + if (url->Pass != NULL) { + url->Password = NewStrBufPlain(url->Pass, pCredEnd - url->Pass); + StrBufUnescape(url->Password, 0); + url->Pass = ChrPtr(url->Password); + } + if (*Url != NULL) url->Next = *Url; *Url = url;