[zorp] Zorp and Traffic Control
Balazs Scheidler
zorp@lists.balabit.hu
Tue, 27 May 2003 19:25:44 +0200
On Tue, May 27, 2003 at 12:30:36PM -0400, Philippe Lucas wrote:
> >you'd need a release from the development version which allows you to
> >stack
> >proxies within HTTP. This means that another proxy module receives the
> >data
> >portion of each HTTP request. What do you want to change in the HTTP body?
> >
> >It is currently not possible with plain 2.0. I'll schedule a release
> >if you
> >are interested.
>
>
>
> I'm actually interested in compressing the HTTP data flow. Could you send
> me the development version so that I can start working on it?
> When did you plan on releasing the new version?
This would be possible by developing a GZIP proxy, which is currently not
available. The GZIP proxy would receive the data flow from the HTTP proxy,
compress it, and the only thing left would be to add a Content-Encoding
field from the HTTP proxy.
Something like this:
class GzipHttpProxy(HttpProxy):
class EncodeGzipProxy(GzipProxy):
def config(self):
GzipProxy.config(self)
self.client_need_gzip = FALSE
self.server_need_gzip = TRUE
def config(self):
HttpProxy.config(self)
self.response_headers["Content-Encoding"] = (HTTP_HDR_INSERT, "gzip")
self.stack_proxy = EncodeGzipProxy
Implementing a gzip proxy is not difficult, simply reading all input and
compressing/decompressing it on the fly would not be too difficult.
(maybe a z_stream_gzip class would suffice and then a simple Plug proxy
could perform this task)
--
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1