httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Chuck Murcko <>
Subject Re: Proxy abstraction
Date Sun, 22 Sep 1996 23:25:54 GMT
Well, I finally found it. Sorry about the reply delay.

Actually, I am doing just this right now. Much of the canonicalization will
disappear soon, as it is deprecated in HTTP/1.1, and I've had problems
with it being too strict for real world form data sets.

I'm putting the whole mod_proxy into src/modules/proxy, and splitting
it up for modularity and maintainability. Each protocol handler gets a file,
whatever canon stuff survives gets a file, gc gets a file, and the main proxy
module gets a file. A header glues things together.

As for protocol/canon abstraction, I was planning to stay with the general
function call order David originally used, until we see what's up about
threading, which is currently scheduled for 2.0. Nothing elegant.

It would be a good time now to fold in your changes, if you like, since
I've essentially got the proxy apart on the floor.

The notion of a handler vector sounds very neat. Very much worth doing.
It will help when adding new protocol support, and shouldn't pose a problem
when threads come along. The vector can change as necessary.

I'm also aiming to get background gc into this release, as well as a (large)
number of bugfixes. Probably not for first beta, but certainly by release.

My real job can wait for a few weeks. 8^) It already ate my summer.

Dirk.vanGulik liltingly intones:
> Chuck,
> About mod_proxy.c. What plans do you have for fetcher abstraction ? I have put in
> support for some 'local' methods (urn, z3950 and 'urc'). But would like to do this
> in a 'cleaner' way. Currently I've made a mod_proxy.h and added a handler to for
> the fetch and for the canon. 
> Would it be an idea to use the same vector structure as apache uses for the modules,
> and just loop through that ? With entries for
>  *  init		initialize service
>  *  rq			initialize proxy RQ
>  *  canon:          	convert the URL stored in the filename to the
>  *                  	canonical form.
>  *  translate_name	set filename to proxy:<URL>
>  *  handler        	handle actual requests to http, ftp, urn, z3950, ..
>  *  cache		caching support, if needed.
>  *  close 		down proxy RQ, clean up ?
>  *  log			log proxy rq
>  *  exit		when the service dies.
> It seems this is an easy thing to do; and we could just move the fetchers into
> individual files into a 'handler' directory. And make the usefull canon support functions
> into a mod_proxy.h
> This could also abstract the proxying and caching a little bit.
> Tha for the excelent work ! was really easy to get into !
> Dw.

Chuck Murcko	N2K Inc.	Wayne PA
And now, on a lighter note:
History is curious stuff
	You'd think by now we had enough
Yet the fact remains I fear
	They make more of it every year.

View raw message