Right now, it appears that the backend https client is not correctly
initialized.  Code inspection, based on my mod_ftp experience, is that
we aren't handshaking before sending our request.  It's necessary for
the HTTPS client to do a 'pull' before pushing out the response to
handshake SSL/TLS, IIUC.

If it works at all, it's news to me :)

The attached patch should be correct to sync this up to mod_ftp and my
proposed mod_echo behavior.  Comments?

Index: modules/proxy/mod_proxy_http.c
===================================================================
--- modules/proxy/mod_proxy_http.c	(revision 387406)
+++ modules/proxy/mod_proxy_http.c	(working copy)
@@ -1702,6 +1702,20 @@
         if ((status = ap_proxy_connection_create(proxy_function, backend,
                                                  c, r->server)) != OK)
             goto cleanup;
+ 
+        if (backend->is_ssl) {
+            apr_bucket_brigade *bb;
+            bb = apr_brigade_create(c->pool, c->bucket_alloc);
+            status = ap_get_brigade(c->input_filters, bb, AP_MODE_INIT,
+                                    APR_BLOCK_READ, 0);
+            apr_brigade_destroy(bb);
+
+            if (status != APR_SUCCESS) {
+                ap_log_error(APLOG_MARK, APLOG_ERR, status, r->server,
+                         "Failed to initialize the proxy ssl data stream");
+                goto cleanup;
+            }
+        }
     }
 
     /* Step Four: Send the Request */

Reply via email to