Tim Rühsen <[email protected]> writes: > This patch fixes Authentication for turkish locales in case that the server > uses promised case-insensitivity for the authentication scheme (e.g. for > 'Basic' or 'Digest'). RFC 2617 and it's successor RFC 7235 both say: > > > RFC 7235 2.1. Challenge and Response > > ... > It uses a case-insensitive token as a means to identify the authentication > scheme, > ... > > So I amended testenv/server/http/http_server.py to accept any case for > 'Basic' > and 'Digest' as well as sending 'BasIc' and 'DIgest'. > > Running the test suite with this change with LC_ALL set to 'tr_TR.utf8' > (turkish locale), three tests fail. > > The fix is to use a pure ASCII version of strcasecmp()/strncasecmp() and not > the locale dependant versions from the standard C library. > > Gnulib has ASCII versions of these functions (c_strcasecmp/c_strncasecmp). > Using these at two places of src/http.c fixes the problem. > > There are many other places in Wget where we should use these functions. > (See my email from 24.9.2014 13:08:21). > I am not sure (in fact I doubt) that we can blindly replace strcasecmp and > strncasecmp. So I try to make test cases to prove replacing is correct. > > What do you think ?
I think the patch looks fine, and when other cases show up, we can replace the failing part with the c_ function from gnulib, as you said we can't blindly replace all occurrences. Feel free to push it :-) Regards, Giuseppe
