[Zope-Checkins] CVS: Zope2 - HTTPRequest.py:1.50

Martijn Pieters mj@digicool.com
Wed, 25 Apr 2001 08:13:19 -0400 (EDT)


Update of /cvs-repository/Zope2/lib/python/ZPublisher
In directory korak:/tmp/cvs-serv26229/lib/python/ZPublisher

Modified Files:
	HTTPRequest.py 
Log Message:
Reverse checkin that belongs in a branch; it broke the Zope trunk.



--- Updated File HTTPRequest.py in package Zope2 --
--- HTTPRequest.py	2001/04/24 22:46:50	1.49
+++ HTTPRequest.py	2001/04/25 12:13:18	1.50
@@ -85,7 +85,7 @@
 
 __version__='$Revision$'[11:-2]
 
-import  re, sys, os, string, urllib, time, whrandom
+import regex, re, sys, os, string, urllib, time, whrandom
 from string import lower, atoi, rfind, split, strip, join, upper, find
 from BaseRequest import BaseRequest
 from HTTPResponse import HTTPResponse
@@ -383,7 +383,7 @@
         hasattr=hasattr,
         getattr=getattr,
         setattr=setattr,
-        search_type=re.compile('(:[a-zA-Z]\w+|\.[xy])$').search,
+        search_type=regex.compile('\(:[a-zA-Z][a-zA-Z0-9_]+\|\.[xy]\)$').search,
         rfind=string.rfind,
         ):
         """Process request inputs
@@ -448,14 +448,11 @@
                 # We'll search from the back to the front.
                 # We'll do the search in two steps.  First, we'll
                 # do a string search, and then we'll check it with
-                # a re search.
+                # a regex search.
                 
                 l=rfind(key,':')
                 if l >= 0:
-                    mo=search_type(key,l)
-                    if mo:   l = mo.start(0)
-                    else:    l = -1
-
+                    l=search_type(key,l)
                     while l >= 0:
                         type_name=key[l+1:]
                         key=key[:l]
@@ -489,9 +486,7 @@
     
                         l=rfind(key,':')
                         if l < 0: break
-                        mo = search_type(key,l)
-                        if mo: l = mo.start(0)
-                        else:  l = -1
+                        l=search_type(key,l)
              
                 # Filter out special names from form:
                 if CGI_name(key) or key[:5]=='HTTP_': continue
@@ -1055,10 +1050,16 @@
 parse_cookie_lock=allocate_lock()
 def parse_cookie(text,
                  result=None,
-                 qparmre=re.compile(
-                    '([\x00- ]*([^\x00- ;,="]+)="([^"]*)"([\x00- ]*[;,])?[\x00- ]*)'),
-                 parmre=re.compile(
-                    '([\x00- ]*([^\x00- ;,="]+)=([^\x00- ;,"]*)([\x00- ]*[;,])?[\x00- ]*)'),
+                 qparmre=regex.compile(
+                     '\([\0- ]*'
+                     '\([^\0- ;,=\"]+\)="\([^"]*\)\"'
+                     '\([\0- ]*[;,]\)?[\0- ]*\)'
+                     ),
+                 parmre=regex.compile(
+                     '\([\0- ]*'
+                     '\([^\0- ;,=\"]+\)=\([^\0- ;,\"]*\)'
+                     '\([\0- ]*[;,]\)?[\0- ]*\)'
+                     ),
                  acquire=parse_cookie_lock.acquire,
                  release=parse_cookie_lock.release,
                  ):
@@ -1068,20 +1069,16 @@
 
     acquire()
     try:
-
-        mo_q = qparmre.match(text)
-        mo_p = parmre.match(text)
-
-        if mo_q:
+        if qparmre.match(text) >= 0:
             # Match quoted correct cookies
-            name  = mo_q.group(2)
-            value = mo_q.group(3)
-            l     = len(mo_q.group(1))
-        elif mo_p:
+            name=qparmre.group(2)
+            value=qparmre.group(3)
+            l=len(qparmre.group(1))
+        elif parmre.match(text) >= 0:
             # Match evil MSIE cookies ;)
-            name  = mo_p.group(2)
-            value = mo_p.group(3)
-            l     = len(mo_p.group(1))
+            name=parmre.group(2)
+            value=parmre.group(3)
+            l=len(parmre.group(1))
         else:
             # this may be an invalid cookie.
             # We'll simply bail without raising an error