[ http://issues.apache.org/jira/browse/MODPYTHON-157?page=all ] Graham Dumpleton resolved MODPYTHON-157: ----------------------------------------
Fix Version: 3.3 Resolution: Fixed > PythonInterpPerDirectory broken for directory request in fixup phase and > earlier. > --------------------------------------------------------------------------------- > > Key: MODPYTHON-157 > URL: http://issues.apache.org/jira/browse/MODPYTHON-157 > Project: mod_python > Type: Bug > Components: core > Versions: 3.2.8, 3.1.4, 2.7.10 > Reporter: Graham Dumpleton > Assignee: Graham Dumpleton > Fix For: 3.3 > > The PythonInterpPerDirectory request creates distinct interpreters for each > directory in the file system. The name of the directory is derived from > req.filename. > In determining the name of the interpreter from req.filename, it always > assumes that if the request is against the directory and not a file in it, > that req.filename will always have a trailing slash appended to it. This > however is not the case, as trailing slash redirection is only performed by > mod_dir at the end of the fixup handler phase. Thus the name of the > interpreter will be wrong for handler run in fixup handler pahse or earlier > and will actually be that of the parent directory. > The code in select_interp_name() of src/mod_python.c which determines > interpreter name is: > /* base interpreter on directory where the file is found */ > if (req && ap_is_directory(req->pool, req->filename)) { > /** XXX I suppose that if req->filename is a directory, there > already > is a trailing slash in req->filename. This is due to the > fact > that Apache redirect any request from /directory to > /directory/. > That's why the tests below are commented out, they should > be useless. > **/ > /* if (req->filename[strlen(req->filename)-1]=='/') { */ > return ap_make_dirstr_parent(req->pool, req->filename); > /* } > else { > return ap_make_dirstr_parent(req->pool, > apr_pstrcat(req->pool, > req->filename, > "/", NULL )); > } */ > } > Note that it actually has the code that would be required for this to work > properly but it is commented out because of a wrong assumption that the > trailing slash would always be there. > Code simply has to be uncommented. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira