headers output managment moved to the dedicated server
authorMatteo Nastasi (mop) <nastasi@alternativeoutput.com>
Wed, 11 Jul 2012 06:05:43 +0000 (08:05 +0200)
committerMatteo Nastasi (mop) <nastasi@alternativeoutput.com>
Wed, 11 Jul 2012 06:05:43 +0000 (08:05 +0200)
mod_proxy_fdpass.c

index 0e2ba33..7a12ba0 100644 (file)
@@ -343,6 +343,33 @@ static int proxy_fdpass_handler(request_rec *r, proxy_worker *worker,
     apr_size_t wrlen;
     const char *post_data = NULL;
 
+    ap_filter_t *f;
+    ap_filter_rec_t *fg;
+
+    fg = ap_get_output_filter_handle("HTTP_HEADER");
+
+
+    ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+                  "proxy: FD: filter fg: %lx  func %lx", fg, ap_http_header_filter);
+
+
+    for (f = r->output_filters ; f != NULL ; f = f->next) {
+        ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+                      "proxy: FD: filter loop: %lx", f->frec);
+        if (f->frec == fg) {
+            ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+                          "proxy: FD: filter found, remove it");
+            ap_remove_output_filter(f);
+            break;
+        }
+    }
+
+#if 0
+    ap_custom_response(r, 0, "sappo: robiola zero");
+    ap_custom_response(r, 200, "sappo: robiola");
+    apr_table_clear(r->headers_out);
+#endif
+
     if ((headers_out = calloc(CTRL_BUFF_MAX_SZ, 1)) != NULL) {
         sprintf(headers_out, "The-Request:%s\n", r->the_request);
         apr_table_do(headers_builder, headers_out, r->headers_in, NULL);
@@ -481,8 +508,7 @@ static int standard_flush(request_rec *r)
 
     r->connection->keepalive = AP_CONN_CLOSE;
     /* MOP NOTE: set here the content type */
-    // ap_set_content_type(r, apr_pstrdup(p, "text/plain"));
-
+    // ap_set_content_type(r, apr_pstrdup(p, NO_CONTENT_TYPE));
     bb = apr_brigade_create(r->pool, r->connection->bucket_alloc);
     e = apr_bucket_flush_create(r->connection->bucket_alloc);
     
@@ -506,9 +532,23 @@ static const proxy_fdpass_flush builtin_flush =
     NULL
 };
 
+#if 0
+static int proxy_fdpass_post_request(proxy_worker *worker,
+                                       proxy_balancer *balancer,
+                                       request_rec *r,
+                                       proxy_server_conf *conf)
+{
+    apr_table_clear(r->headers_out);
+    ap_log_rerror(APLOG_MARK, APLOG_ERR, 0, r,
+                  "proxy: FD: POST");
+
+}
+#endif
+
 static void ap_proxy_fdpass_register_hooks(apr_pool_t *p)
 {
     ap_register_provider(p, PROXY_FDPASS_FLUSHER, "flush", "0", &builtin_flush);
+    //    proxy_hook_post_request(proxy_fdpass_post_request, NULL, NULL, APR_HOOK_FIRST);
     proxy_hook_scheme_handler(proxy_fdpass_handler, NULL, NULL, APR_HOOK_FIRST);
     proxy_hook_canon_handler(proxy_fdpass_canon, NULL, NULL, APR_HOOK_FIRST);
 }