try to connect before remove header handler to return a compliant 500 error to browse...
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.com>
Thu, 26 Jul 2012 17:13:00 +0000 (19:13 +0200)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.com>
Thu, 26 Jul 2012 17:13:00 +0000 (19:13 +0200)
mod_proxy_fdpass.c

index 34ee2fe..9dbd0a9 100644 (file)
@@ -346,6 +346,22 @@ static int proxy_fdpass_handler(request_rec *r, proxy_worker *worker,
     ap_filter_t *f;
     ap_filter_rec_t *fg;
 
+    if (strncasecmp(url, "fd://", 5) == 0) {
+        url += 5;
+    }
+    else {
+        return DECLINED;
+    }
+
+    rv = get_socket_from_path(r, r->pool, url, &sock);
+
+    if (rv != APR_SUCCESS) {
+        ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
+                      "proxy: FD: Failed to connect to '%s' %d xxx",
+                      url, rv);
+        return HTTP_INTERNAL_SERVER_ERROR;
+    }
+
     fg = ap_get_output_filter_handle("HTTP_HEADER");
 
 
@@ -381,22 +397,6 @@ static int proxy_fdpass_handler(request_rec *r, proxy_worker *worker,
         close(mop_fd);
 
     }
-    if (strncasecmp(url, "fd://", 5) == 0) {
-        url += 5;
-    }
-    else {
-        return DECLINED;
-    }
-
-    rv = get_socket_from_path(r, r->pool, url, &sock);
-
-    if (rv != APR_SUCCESS) {
-        ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
-                      "proxy: FD: Failed to connect to '%s' %d xxx",
-                      url, rv);
-        return HTTP_INTERNAL_SERVER_ERROR;
-    }
-
     /* create a couple of sockets and pass one to the client for headers and so on */
     if (socketpair(AF_UNIX, SOCK_STREAM, 0, ctrlrawsock)) {
         ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,