[Zope-CVS] CVS: Products/ExternalEditor - CHANGES.txt:1.34 zopeedit.py:1.39

Casey Duncan casey@zope.com
Sun, 29 Sep 2002 02:05:49 -0400


Update of /cvs-repository/Products/ExternalEditor
In directory cvs.zope.org:/tmp/cvs-serv10099

Modified Files:
	CHANGES.txt zopeedit.py 
Log Message:
Workaround for EOF errors caused by broken SSL servers
Fix NameError in unlock method


=== Products/ExternalEditor/CHANGES.txt 1.33 => 1.34 ===
--- Products/ExternalEditor/CHANGES.txt:1.33	Sat Sep  7 01:04:53 2002
+++ Products/ExternalEditor/CHANGES.txt	Sun Sep 29 02:05:49 2002
@@ -1,6 +1,12 @@
 External Editor Change Log
 
-    - Removed stderr writes to cure "Invalid File Descriptor" bugs on
+    - Fixed NameError bug in unlock retry code. Thanks to Federico Sevilla III.
+
+    - Added a workaround for non-compliant SSL servers. The software now
+      silently ignores "EOF occurred in violation of protocol" errors coming
+      from httplib. Thanks to Christopher Deckard.
+
+    - Removed stderr writes to cure "Invalid File Descriptor" errors on
       Windows.
 
     - Added Photoshop plugin (win32)


=== Products/ExternalEditor/zopeedit.py 1.38 => 1.39 ===
--- Products/ExternalEditor/zopeedit.py:1.38	Sat Sep  7 01:03:13 2002
+++ Products/ExternalEditor/zopeedit.py	Sun Sep 29 02:05:49 2002
@@ -465,7 +465,7 @@
         if interactive and response.status / 100 != 2:
             # Captain, she's still locked!
             if self.askRetryAfterError(response, 'Unlock request failed'):
-                self.unlock(token)
+                self.unlock()
             else:
                 self.did_lock = 0
         else:
@@ -516,6 +516,11 @@
             except ValueError:
                 response.status = 0
             
+            if response.reason == 'EOF occurred in violation of protocol':
+                # Ignore this protocol error as a workaround for
+                # broken ssl server implementations
+                response.status = 200
+                
             return response
             
     def askRetryAfterError(self, response, operation, message=''):