Re: [Mailman-Developers] Possible bug in 1.0b8
[Liam Kirsher]
I found the problelm in
Cgi/admindb.py, line 116
the reference to /mailman/admindb/ was a problem. I think the "mailman" part should be gotten from the DEFAULT_URL, perhaps?
I don't think that DEFAULT_URL has anything to do with this problem -- the fix is rather related to not depending on the not-really-standard (I think) REQUEST_URI environment variable. Please bear in mind that this is the first time I'm trying to do any CGI-related programming at all, but I still _think_ this patch is good (from reading the CGI/1.1 spec, and testing quickly that it doesn't break my web interface). Index: Mailman/Utils.py =================================================================== RCS file: /projects/cvsroot/mailman/Mailman/Utils.py,v retrieving revision 1.62 diff -u -r1.62 Utils.py --- Utils.py 1999/01/14 04:07:28 1.62 +++ Utils.py 1999/02/22 17:16:37 @@ -664,3 +664,20 @@ reraise(IOError, e) finally: os.umask(ou) + +def CGIpath(env): + """Return the full virtual path this CGI script was invoked with. + + Newer web servers seems to supply this info in the REQUEST_URI + environment variable -- which isn't part of the CGI/1.1 spec. + Thus, if REQUEST_URI isn't available, we concatenate SCRIPT_NAME + and PATH_INFO, both of which are part of CGI/1.1. If that fails, + too, fall back to a hardcoded common case. + + """ + if env.has_key("REQUEST_URI"): + return env["REQUEST_URI"] + elif env.has_key("SCRIPT_NAME") and env.has_key("PATH_INFO"): + return (env["SCRIPT_NAME"] + env["PATH_INFO"]) + else: + return ('/mailman/admin/' + list_name) Index: Mailman/Cgi/admin.py =================================================================== RCS file: /projects/cvsroot/mailman/Mailman/Cgi/admin.py,v retrieving revision 1.31 diff -u -r1.31 admin.py --- admin.py 1999/01/09 05:57:17 1.31 +++ admin.py 1999/02/22 17:16:38 @@ -123,8 +123,7 @@ text = Utils.maketext( 'admlogin.txt', {"listname": list_name, - "path" : os.environ.get("REQUEST_URI", - '/mailman/admin/' + list_name), + "path" : Utils.CGIpath(os.environ), "message" : message, }) print text Index: Mailman/Cgi/admindb.py =================================================================== RCS file: /projects/cvsroot/mailman/Mailman/Cgi/admindb.py,v retrieving revision 1.9 diff -u -r1.9 admindb.py --- admindb.py 1999/01/09 06:22:44 1.9 +++ admindb.py 1999/02/22 17:16:38 @@ -112,8 +112,7 @@ text = Utils.maketext( 'admlogin.txt', {'listname': list_name, - 'path' : os.environ.get('REQUEST_URI', - '/mailman/admindb/' + list_name), + 'path' : Utils.CGIpath(os.environ), 'message' : message, }) print text -- Harald
participants (1)
-
Harald Meland