[zorp-hu] Header insert

Balazs Scheidler bazsi at balabit.hu
2007. Okt. 2., K, 08:53:07 CEST


On Tue, 2007-10-02 at 00:45 +0200, Farkas Dániel wrote:
> Udv Mindenkinek!
> 
> Azzal kuzdok, hogy a zorp a headerbe beletegye minden lekeresnel az
> X_HOST elemet a kliens IP cimevel, de csak egyes lekereseknel teszi meg.
> 
> Azteztem amit csak tudtam, talaltam, de nem leltem megoldast.
> 
> Ha tudtok megoldast, kerem osszatok meg velem!
> 
> Koszonom!
> 
> 
> policy-http.py vonatkozo resze:
> 
> class IntraHttp(HttpProxy):
>           def config(self):
>                     HttpProxy.config(self)
>                     self.transparent_mode = TRUE
>                     self.permit_proxy_requests = TRUE
>                     self.permit_server_requests = TRUE
>                     self.permit_null_response=TRUE
>                     self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL)
>                     self.request["HEAD"] = (HTTP_REQ_POLICY, self.filterURL)
>                     self.request_headers["Host"] = (HTTP_HDR_POLICY, self.filterHost)
>                     self.error_silent = FALSE # TRUE volt
> 
>           def filterURL(self, method, url, version):
>                     self.request_headers["X_HOST"] = (HTTP_HDR_INSERT, self.session.client_address.ip_s)
>                     log("http.info", 3, "%s: GET: %s" % (self.session.session_id, url))
>                     return HTTP_REQ_ACCEPT

a request_headers tombot a proxy nem akkor dolgozza fel, amikor te
beteszel egy elemet, hanem olyankor, amikor a fejlecfeldolgozashoz
eler. 

Policy callbackbol a request_headers nem modosithato, illetve
modosithato, de az tortenik, amit te is latsz: az elso keres nem, a
keep-alive-ban erkezo tovabbiak mar tartalmazni fogjak a fejlecet.

A megoldas a setRequestHeader() fuggveny hasznalata, amit valahogy igy
kell meghivni:

  self.setRequestHeader("X_HOST", self.session.client_address.ip_s)

-- 
Bazsi



További információk a(z) zorp-hu levelezőlistáról