httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Waldemar Klein <waldemar.kle...@googlemail.com>
Subject How to register additional operators or functions for use in expressions?
Date Mon, 26 Mar 2012 22:42:43 GMT
Hi all,

looking at http://httpd.apache.org/docs/2.4/expr.html, i found things like
"Modules may register additional unary operators." or
"Modules may register additional functions."
but not the slightest hint how to actually do this, also googling for
some time didn't get me anything useful either.

To be more precise, i am _not_ looking to write functions to extend
the API and use in other modules (which is what all the Google
searches for "apache module functions" find). What i am looking for is
extending functions or operators for the expression parser to use in
httpd.conf. Also, i am not looking for a general description how to
write modules, I already wrote, compiled and ran simple modules (like
the usual "helloworld" handler). I am just looking for the specifics
on how to register functions/operators and maybe what else is needed
(probably something similar to the check "is it for me?" in a content
handler).


Some background if anyone is interested:
I am trying to write a function or (unary or binary) operator (either
would work for me) to check a URL against a list read from a file,
which i can use in an <If ..> block. I am not worried about writing
the actual doing in the module, like reading the file or matching the
URL, not because i am that good but the task is quite simple and there
is good documentation around :). Anyhow i don't know how to get
started with registring this function, and if any other checks have to
be done (see above).

I already tried this with a small list directly in a <If " ...
regexmatch here ...">, but i am afraid if this list gets really large
(thinking in the range of millions of URLs) there will be either a
limit to it where it doesn't work, or at least get very slow.

If anyone knows a simple method to do this with existing features, i
would be glad to hear about it, but i doubt it's possible. I know
there is a function "file" that reads a file, and there are functions
-strmatch -in etc., but they are not quite enough to actually match a
rather complex URL pattern (for example i would have something like
"www1.example.com" in my list, "server.www1.example.com" should match
this, but not "www2.example.com/index.html#www1.example.com").


I'm not 100% sure this is the right place to ask, it might also be a
request for the documentation mailinglist, since i wouldn't have asked
if there was at least some documentation about it.

Mime
View raw message