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)