[ https://issues.apache.org/jira/browse/MODPYTHON-157?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Graham Dumpleton closed MODPYTHON-157. -------------------------------------- > PythonInterpPerDirectory broken for directory request in fixup phase and > earlier. > --------------------------------------------------------------------------------- > > Key: MODPYTHON-157 > URL: https://issues.apache.org/jira/browse/MODPYTHON-157 > Project: mod_python > Issue Type: Bug > Components: core > Affects Versions: 2.7.10, 3.1.4, 3.2.8 > Reporter: Graham Dumpleton > Assigned To: 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. - You can reply to this email to add a comment to the issue online.