> Yes, I'd like to see your patch to Quixote. Please post it as a unified
> patch ("diff -u" if you have a decent Unix-like diff available.) Please
> also specify which release your patch is relative to.
My patch is relative to the Quixote-20020521 snapshot release.
Here are the changes to http_request.py:
--- http_request.py Fri May 24 11:41:06 2002
+++ original\http_request.py Mon May 06 08:30:56 2002
@@ -204,15 +204,6 @@
if path.startswith(script):
path = path[len(script):]
self.environ['PATH_INFO'] = path
- # Xitami seems to mangle SCRIPT_NAME:
- # It leaves PATH_INFO appended to SCRIPT_NAME
- # This removes the PATH_INFO data from SCRIPT_NAME
- if (web_server.find('Xitami') != -1):
- script = environ['SCRIPT_NAME']
- path = environ['PATH_INFO']
- if script.endswith(path):
- script = script[:0-len(path)]
- self.environ['SCRIPT_NAME'] = script
def process_inputs (self):
"""Process request inputs.
I created a new file (session_demo_lrwp.py) from session_demo.cgi:
--- session_demo_lrwp.py Fri May 24 11:36:36 2002
+++ original\session_demo.cgi Tue May 21 12:19:46 2002
@@ -20,27 +20,6 @@
from quixote.session import Session, SessionManager
from quixote.publish import SessionPublisher
-from lrwp import LRWP
-
-class LRWPSessionPublisher(SessionPublisher):
- """
- SessionPublisher configured to use Xitami LRWP.
- """
- def publish_lrwp(self):
- """Run the lrwp publish process"""
- lrwp = LRWP('test','localhost',81)
- lrwp.connect()
-
- while not self.exit_now:
- r = lrwp.acceptRequest()
- self.publish(r.inp,r.out,r.err,r.env)
- r.finish()
- if self.config.run_once:
- break
-
- lrwp.close()
-
-
class DemoSession (Session):
"""
Session class that tracks the number of requests made within a
@@ -185,12 +164,10 @@
# files and ensure that error messages are more informative than secure.
enable_ptl()
-
sessions = DirMapping(save_dir="/tmp/quixote-session-demo")
session_mgr = SessionManager(session_class=DemoSession,
session_mapping=sessions)
-
-app = LRWPSessionPublisher('quixote.demo.session', session_mgr=session_mgr)
+app = SessionPublisher('quixote.demo.session', session_mgr=session_mgr)
app.read_config("demo.conf")
app.setup_logs()
-app.publish_lrwp()
+app.publish_cgi()
Neither of these has been tested very well (I never did bother to track down
self.exit_now from the cgi publisher, for instance). I would move the
LRWPSessionPublisher class to a different file, and change the static
options passed to LRWP to config file variables or options passed to the
class contructor.
BTW, thanks for providing the motivation to dig up a win32 diff utility.
I've thought about it a few times, but never done it. I found one here:
http://www.accurev.com/ftp/free/tkdiff/diff.exe