RE: RELEASED: scgi-1.6

"Al Pacifico" <[email protected]>
Newsgroups gmane.comp.web.quixote.user
Message-ID <002801c59eb7$316518c0$337ba8c0@Laptop8100>
Neil-
That fixed the problem! N.B. that when I tested it, my Quixote/publish.py
had been patched as suggested by Mike Orr on-list and David Binger off-list
in order to remove a RewriteRule to add a trailing slash to requests made to
SCGIMount location from my httpd.conf.

The following cut and pasted from David Binger's email:

<begin paste>
Here is the patch to that _q_traverse():

-        path = request.get_environ('PATH_INFO', '')
-        assert path[:1] == '/'
+        path = request.get_environ('PATH_INFO')
+        if not path:
+            return redirect(request.get_environ('SCRIPT_NAME', '') +
'/',
+                            permanent=True)

<end of paste>

David had suggested that this patch is needed for Apache.

David, could you comment on whether it's application breaks simple_server
and other server functionality and for which versions of mod_scgi?

Thanks!
-al

Al Pacifico
Seattle, WA

-----Original Message-----
From: Neil Schemenauer [mailto:[email protected]] 
Sent: Thursday, August 11, 2005 11:31 AM
To: Al Pacifico
Cc: Bruce Wang; [email protected]
Subject: Re: [Quixote-users] RELEASED: scgi-1.6

On Thu, Aug 11, 2005 at 10:34:07AM -0700, Al Pacifico wrote:
> I'm getting a similar problem (to what Bruce Wang reported) with scgi-1.6.

The Apache 2 module in version 1.6 also has a bad bug.  I added a
map_to_location hook that fixed the PATH_INFO bug in 1.5 but it is
preventing non-SCGI requests from working.  The attached patch
should fix the problem.  Sorry about all the screw-ups.

Please let me know if the patched version works for you.

  Neil


diff -rN -u old-scgi/apache2/mod_scgi.c new-scgi/apache2/mod_scgi.c
--- old-scgi/apache2/mod_scgi.c	2005-08-10 16:28:29.000000000 -0600
+++ new-scgi/apache2/mod_scgi.c	2005-08-11 13:24:32.000000000 -0600
@@ -111,8 +112,10 @@
 
 static int scgi_map_location(request_rec *r)
 {
-	/* We don't want directory walk. */
-	return OK;
+    if (r->handler && strcmp(r->handler, "scgi-handler") == 0) {
+        return OK; /* We don't want directory walk. */
+    }
+    return DECLINED;
 }
 
 static void log_err(const char *file, int line, request_rec *r,
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.