Here is a patch to the Squid SSL accelerator headed up by Benno Rice.
This allows me to pass either http://... or https://... to any 
redirect programs allowing me to modify the URL accordingly.
I have tested this with a Zope server.
Thanks,
Leif Van Horn
Kaivo, Inc.
--- src/url.c.orig	Wed Dec 20 16:51:58 2000
+++ src/url.c	Wed Dec 20 17:23:46 2000
@@ -550,12 +550,17 @@
             rc = 1;
         break;
     case PROTO_HTTPS:
+#ifdef USE_SSL
+	rc = 1;
+        break;
+#else
         /*
          * Squid can't originate an SSL connection, so it should
          * never receive an "https:" URL.  It should always be
          * CONNECT instead.
          */
         rc = 0;
+#endif
     default:
         break;
     }
--- src/client_side.c.orig	Wed Dec 20 12:22:39 2000
+++ src/client_side.c	Wed Dec 20 17:28:40 2000
@@ -2398,6 +2398,7 @@
         if (opt_accel_uses_host && (t = mime_get_header(req_hdr, "Host"))) {
             int vport = (int) Config.Accel.port;
             char *q;
+            char *protocol_name = "http";
             /* If a Host: header was specified, use it to build the URL 
              * instead of the one in the Config file. */
             /*
@@ -2415,8 +2416,15 @@
             url_sz = strlen(url) + 32 + Config.appendDomainLen +
                 strlen(t);
             http->uri = xcalloc(url_sz, 1);
-	    snprintf(http->uri, url_sz, "http://%s:%d%s",
-		t, vport, url);
+            
+#ifdef USE_SSL
+            if (Config.Sockaddr.https->s.sin_port == http->conn->me.sin_port) {
+                protocol_name = "https";
+                vport = ntohs(http->conn->me.sin_port);
+            }
+#endif
+	    snprintf(http->uri, url_sz, "%s://%s:%d%s",
+		protocol_name, t, vport, url);
         } else if (vhost_mode) {
             int vport;
             /* Put the local socket IP address as the hostname */
Received on Thu Jan 04 2001 - 09:13:10 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:13:09 MST