On 05/06/2009 10:13 PM, Rainer Jung wrote:
> 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?

How about the existing util.c?

Regards

RĂ¼diger

Reply via email to