Created: (MODPYTHON-157) PythonInterpPerDirectory broken for
Web Server forum
Back To The Forum Home!Search!Private Messaging System

Web Server Talk Web Server Talk > Web Servers reviews > Apache Server configuration support > Apache Mod-Python > Created: (MODPYTHON-157) PythonInterpPerDirectory broken for




  Last Thread   Next Thread Next
  Show Printable Version Email this Page Subscribe to this Thread      Post New Thread    Post A Reply      

    Created: (MODPYTHON-157) PythonInterpPerDirectory broken for  
Graham Dumpleton (JIRA)


View Ip Address Report This Message To A Moderator Edit/Delete Message


 
04-09-06 11:57 PM

PythonInterpPerDirectory broken for directory request in fixup phase and ear
lier.
----------------------------------------------------------------------------
-----

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


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 assu
mes 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 trailin
g slash redirection is only performed by mod_dir at the end of the fixup han
dler phase. Thus the name of the interpreter will be wrong for handler run i
n fixup handler pahse or earlier and will actually be that of the parent dir
ectory.

The code in select_interp_name() of src/mod_python.c which determines interp
reter 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 p
roperly but it is commented out because of a wrong assumption that the trail
ing slash would always be there.

Code simply has to be uncommented.








[ Post a follow-up to this message ]



    Sponsored Links  




 





   All times are GMT. The time now is 09:41 AM.      Post New Thread    Post A Reply      
  Last Thread   Next Thread Next


Most Popular forums 

Forum Jump:
Rate This Thread:

Forum Rules:
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is OFF
vB code is ON
Smilies are ON
[IMG] code is OFF
 
Medical and Health forum | Computer Games Reviews | Graphics design forum

Back To The Top
Home | Usercp | Faq | Register