X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ffilter_http_client.cpp;h=6cb963352dc173b72eb9274a0a27de25de74fea8;hb=f51a51c6c6e1f8c5de6e90f548df3d8dc12e00ac;hp=7703a97a9d52e752287483d0259b7e6d72d68a87;hpb=15b0ee3b555ce9fdb416e78836209841efc6e596;p=metaproxy-moved-to-github.git diff --git a/src/filter_http_client.cpp b/src/filter_http_client.cpp index 7703a97..6cb9633 100644 --- a/src/filter_http_client.cpp +++ b/src/filter_http_client.cpp @@ -71,11 +71,16 @@ void yf::HTTPClient::Rep::proxy(mp::Package &package) Z_GDU *res_gdu = 0; mp::odr o; yaz_url_t yaz_url = yaz_url_create(); - std::string uri; + const char *http_proxy = + z_HTTP_header_remove(&hreq->headers, "X-Metaproxy-Proxy"); + + if (!http_proxy) + http_proxy = proxy_host.c_str(); - if (proxy_host.length()) - yaz_url_set_proxy(yaz_url, proxy_host.c_str()); + if (*http_proxy) + yaz_url_set_proxy(yaz_url, http_proxy); + std::string uri; if (hreq->path[0] == '/') { if (default_host.length()) @@ -92,6 +97,7 @@ void yf::HTTPClient::Rep::proxy(mp::Package &package) if (http_response) { res_gdu = o.create_HTTP_Response(package.session(), hreq, 200); + z_HTTP_header_remove(&http_response->headers, "Transfer-Encoding"); res_gdu->u.HTTP_Response = http_response; } else