httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: WebDAV and ap_os_canonical_filename()
Date Tue, 14 Mar 2000 19:49:07 GMT
On Tue, 14 Mar 2000, Bill Stoddard wrote:

> On Apache for Windows and OS/2, ap_os_canonical_filename is used to fold the
> absolute filename to all lower case before access protections are checked.
> URIs are case sensitive (A_file.html is different from a_file.html in the
> general case) but the Win32 file system is not case sensitive (A_file.html
> is the same as a_file.html), so it makes sense to fold the filename on
> systems that have case insenstive file systems before checking access rules.
> No problem with this. However, there are exceptional cases where filename
> case needs to be preserved even on systems that have case insensitive (but
> case preserving) file systems.
> One notable exception is the name of Java class files. The filename must
> exactly match, including case, the class name.   So here is the problem....
> If I publish a Java class with a mixed case name with a DAV implementation
> written to the Apache API, the filename case is not preserved by Apache (on
> Windows) and my class will not compile once I fetch it out of the repository
> again. We need to preserve filename case on a PUT request. The only solution
> that comes to mind is to create a new char* in the request_rec structure
> (char* case_canononical_filename ?) that contains the translated filename
> that has not been folded to lower case. mod_dav can use this field when
> handling PUT requests. Any other ideas?

There is a ap_case_os_canoncical_filename, which preserves case, IIRC.
Or, punt this until 2.0, which correctly handles this case in APR.


Ryan Bloom               
406 29th St.
San Francisco, CA 94131

View raw message