1487c9a724e9516494ffe7b9bb407c5c17bdde27 galt Wed Oct 17 17:44:41 2012 -0700 fix for #9390 - tolerating url-encoded urls when detecting file compression type diff --git src/lib/net.c src/lib/net.c index 946b172..518854e 100644 --- src/lib/net.c +++ src/lib/net.c @@ -1677,33 +1677,38 @@ char *newUrl = NULL; int newSd = 0; if (startsWith("http://",url) || startsWith("https://",url)) { if (!netSkipHttpHeaderLinesHandlingRedirect(sd, url, &newSd, &newUrl)) { return NULL; } if (newUrl != NULL) { /* Update sd with newSd, replace it with newUrl, etc. */ sd = newSd; url = newUrl; } } - if (endsWith(url, ".gz") || - endsWith(url, ".Z") || - endsWith(url, ".bz2")) + char *urlDecoded = cloneString(url); + cgiDecode(url, urlDecoded, strlen(url)); + boolean isCompressed = + (endsWith(urlDecoded,".gz") || + endsWith(urlDecoded,".Z") || + endsWith(urlDecoded,".bz2")); + freeMem(urlDecoded); + if (isCompressed) { lf = lineFileDecompressFd(url, TRUE, sd); /* url needed only for compress type determination */ } else { lf = lineFileAttach(url, TRUE, sd); } if (newUrl) freeMem(newUrl); return lf; } } struct lineFile *netLineFileSilentOpen(char *url)