X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fserv_smtpqueue.c;h=65cde8f15354eff3c15ed6e2066ab9bce9b4389e;hb=e7e9c3a84aa02b47864f22b5edf4f9c412ac82f9;hp=87fbc3865ab29ac48e912601d32db77dd921c72c;hpb=db19b9d718096f0f62b6c999759a043c1ecb535f;p=citadel.git diff --git a/citadel/modules/smtp/serv_smtpqueue.c b/citadel/modules/smtp/serv_smtpqueue.c index 87fbc3865..65cde8f15 100644 --- a/citadel/modules/smtp/serv_smtpqueue.c +++ b/citadel/modules/smtp/serv_smtpqueue.c @@ -136,16 +136,6 @@ void RemoveQItem(OneQueItem *MyQItem) DeleteHashPos(&It); } -void FreeURL(ParsedURL** Url) -{ - if (*Url != NULL) { - FreeStrBuf(&(*Url)->URL); - if ((*Url)->Next != NULL) - FreeURL(&(*Url)->Next); - free(*Url); - *Url = NULL; - } -} void FreeMailQEntry(void *qv) { @@ -599,78 +589,6 @@ void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt) -int ParseURL(ParsedURL **Url, StrBuf *UrlStr, short DefaultPort) -{ - const char *pch, *pEndHost, *pPort, *pCredEnd, *pUserEnd; - ParsedURL *url = (ParsedURL *)malloc(sizeof(ParsedURL)); - memset(url, 0, sizeof(ParsedURL)); - - url->af = AF_INET; - url->Port = DefaultPort; - /* - * http://username:passvoid@[ipv6]:port/url - */ - url->URL = NewStrBufDup(UrlStr); - url->Host = pch = ChrPtr(url->URL); - url->LocalPart = strchr(pch, '/'); - if (url->LocalPart != NULL) { - if ((*(url->LocalPart + 1) == '/') && - (*(url->LocalPart + 2) == ':')) { /* TODO: find default port for this protocol... */ - url->Host = url->LocalPart + 3; - url->LocalPart = strchr(url->Host, '/'); - } - } - if (url->LocalPart == NULL) { - url->LocalPart = pch + StrLength(url->URL); - } - - pCredEnd = strchr(pch, '@'); - if (pCredEnd >= url->LocalPart) - pCredEnd = NULL; - if (pCredEnd != NULL) - { - url->User = url->Host; - url->Host = pCredEnd + 1; - pUserEnd = strchr(url->User, ':'); - - if (pUserEnd > pCredEnd) - pUserEnd = pCredEnd; - else { - url->Pass = pUserEnd + 1; - } - StrBufPeek(url->URL, pUserEnd, 0, '\0'); - StrBufPeek(url->URL, pCredEnd, 0, '\0'); - } - - pPort = NULL; - if (*url->Host == '[') { - url->Host ++; - pEndHost = strchr(url->Host, ']'); - if (pEndHost == NULL) { - FreeStrBuf(&url->URL); - free(url); - return 0; /* invalid syntax, no ipv6 */ - } - StrBufPeek(url->URL, pEndHost, 0, '\0'); - if (*(pEndHost + 1) == ':'){ - StrBufPeek(url->URL, pEndHost + 1, 0, '\0'); - pPort = pEndHost + 2; - } - url->af = AF_INET6; - } - else { - pPort = strchr(url->Host, ':'); - if (pPort != NULL) { - StrBufPeek(url->URL, pPort, 0, '\0'); - pPort ++; - } - } - if (pPort != NULL) - url->Port = atol(pPort); - url->IsIP = inet_pton(url->af, url->Host, &url->Addr); - *Url = url; - return 1; -} /* {