[code-review] MKDoc::Control_List

Jean-Michel Hiver <[email protected]> Wed, 10 Dec 2003 11:27:15 +0000
Newsgroups gmane.comp.lang.perl.code-review-ladder
Message-ID <[email protected]>
--qlTNgmc+xy1dBmNv
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi List,

I'm currently writing a module to cache scripts running under
Apache::Registry requests.

What I stumbled upon is the complexity of the rules which you might want
to define for caching policy. For example you might want to cache
something for 10 minutes unless REMOTE_USER is bruno or PATH_INFO starts
with /nocache/.

In order to manage my policies I wrote a simple module which is inspired
from squid ACL config files but I tried to make it much more generic so
that it can express any combination of rules.

Possible applications:

* Access Control
* Cache Control
* Email Rules
* Santa Claus Toy Factory (See the docs :))

Comments highly appreciated!
Cheers,
-- 
Building a better web - http://www.mkdoc.com/
---------------------------------------------
Jean-Michel Hiver
[email protected]  - +44 (0)114 255 8097
Homepage: http://www.webmatrix.net/

--qlTNgmc+xy1dBmNv
Content-Type: application/x-tar-gz
Content-Disposition: attachment; filename="MKDoc-Control_List-0.1.tar.gz"
Content-Transfer-Encoding: base64

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
AAA=

--qlTNgmc+xy1dBmNv--