>What about the case where they did have sendfile, but did not use large >file support? [Did/Do] we attempt to test the EnableSendfile logic?
Yes, that happens in core.c/default_handler() when apr_file_open() is called. If the build has send_file support then the APR_SENDFILE_ENABLED flag is passed to apr_file_open() based on the ENABLE_SENDFILE_* flag. >Not arguing that breaking up huge responses is a bad thing :) However >I'm somewhat confused why apr doesn't handle this gracefully. Agreed. There seems to be a lot of code in core.c that is based on the APR_HAS_SENDFILE flag. My guess is that at least some of it, if not all, could be cleaned up. But then I am not on a platform that has sendfile() so it is hard for me to tell what is required and what isn't. Brad Brad Nicholes Senior Software Engineer Novell, Inc., the leading provider of Net business solutions http://www.novell.com >>> "William A. Rowe, Jr." <[EMAIL PROTECTED]> Tuesday, January 13, 2004 7:01:06 PM >>> At 07:05 PM 1/13/2004, Brad Nicholes wrote: > I don't think so because the "split into multiple bucket" code was >only enabled if both large_file and send_file was enabled. Which meant >that on a non-large_file build the check for ENABLE_SENDFILE_OFF wasn't >there anyway. If they have large_file support and don't have send_file >(ie. NetWare), then the file must be split into multiple buckets or it >doesn't work (32/64 bit type mismatches in the file size). If they have >large_file support and send_file, then everything is as it was before. What about the case where they did have sendfile, but did not use large file support? [Did/Do] we attempt to test the EnableSendfile logic? If not, perhaps we should. There are other cases, e.g. some NFS volume strategies, where a raw kernel sendfile turns out to be fatal on some platforms. >I'm not sure why a check for ENABLE_SENDFILE_OFF is here anyway. This >code doesn't really have anything to do with whether or not sendfile is >used. All it does is split a large file into multiple smaller buckets. >If later down the line sendfile is used to actually send the file from >multiple buckets, great. If not, that is fine also (as demonstrated by >the fact that NetWare doesn't have sendfile() and it all works fine). Not arguing that breaking up huge responses is a bad thing :) However I'm somewhat confused why apr doesn't handle this gracefully. Bill