92715263ac5030111c48f70212e96c599d349872
galt
  Wed May 25 14:58:54 2011 -0700
fixing cgiEncoding of user and password in redirected urls
diff --git src/lib/net.c src/lib/net.c
index 7dd98fc..fb01a99 100644
--- src/lib/net.c
+++ src/lib/net.c
@@ -481,35 +481,39 @@
     }
 
 /* What's left is the host. */
 safecpy(parsed->host, sizeof(parsed->host), s);
 }
 
 char *urlFromNetParsedUrl(struct netParsedUrl *npu)
 /* Build URL from netParsedUrl structure */
 {
 struct dyString *dy = newDyString(512);
 
 dyStringAppend(dy, npu->protocol);
 dyStringAppend(dy, "://");
 if (npu->user[0] != 0)
     {
-    dyStringAppend(dy, npu->user);
+    char *encUser = cgiEncode(npu->user);
+    dyStringAppend(dy, encUser);
+    freeMem(encUser);
     if (npu->password[0] != 0)
 	{
 	dyStringAppend(dy, ":");
-	dyStringAppend(dy, npu->password);
+	char *encPassword = cgiEncode(npu->password);
+	dyStringAppend(dy, encPassword);
+	freeMem(encPassword);
 	}
     dyStringAppend(dy, "@");
     }
 dyStringAppend(dy, npu->host);
 /* do not include port if it is the default */
 if (!(
  (sameString(npu->protocol, "ftp"  ) && sameString("21", npu->port)) ||
  (sameString(npu->protocol, "http" ) && sameString("80", npu->port)) ||
  (sameString(npu->protocol, "https") && sameString("443",npu->port))
     ))
     {
     dyStringAppend(dy, ":");
     dyStringAppend(dy, npu->port);
     }
 dyStringAppend(dy, npu->file);