On 06.05.2009 21:33, Rainer Jung wrote:
> While working on additional windows commandline options I noticed, that
> there is no consistent checking for validity of the "-k" arguments.
> 
> Those arguments are handled by the rewrite args hook, and some MPMs seem
> to care somehow about invalid or duplicate "-k" arguments (e.g. Unix
> outputs a somewhat wrong error message about -k being unknown), windows
> seems to start the service when an unknown command is given.
> 
> I would like to output a better error message for unknown or duplicate
> commands (easy) and then call usage(). At the moment usage() is static
> in main.c and there is not a single header file directly in the server/
> directory.
> 
> So I would like to add a private header file in the server directory, at
> the moment only containing usage() and switch usage() from static to
> AP_DECLARE. Would that be right? I guess we have no reason to include it
> in the public include files contained in includes/.
> 
> Another possibility would be to let the rewrite args hook return a
> value, stop processing as soon as one module doesn't return OK and call
> the usage whenever rewrite args for a module do not return OK. I think
> that's a bit fragile, because in the long run, more return values might
> show up and cases, where usage() is not the right way to react, so
> making usage() available in the mpm-specific module argument handling
> seems to be the better way.
> 
> Of course the usage message at the moment doesn't really reflect the MPM
> architecture. The commandline specialities are reflected by ifdefs in
> the usage, but that's another topic. For the above needed hardening of
> parsing the -k flags, the usage message as it exists today is enough.
> 
> Comments?

While experimenting with that: on Windows mpm_winnt.c can't use
something in main.c, only vice versa. So usage() would have to be moved
from main.c into any other file included in libhttpd (or a new one).
Still the question is: is this the right way to go? If so, should I add
a small new file with usage(), since the names of the existing ones do
not really make a good fit?

Regards,

Rainer

Reply via email to