From: Lars Wirzenius <liw@iki.fi>
Date: Sat, 12 Aug 2006 10:50:31 +0000 (+0300)
Subject: Avoid uncaught exceptions when mime encoding headers.
X-Git-Url: https://git.sommitrealweird.co.uk/eoc.git/commitdiff_plain/d7274d7ec9adf3186386a740572615660016f2ea?hp=--cc

Avoid uncaught exceptions when mime encoding headers.
---

d7274d7ec9adf3186386a740572615660016f2ea
diff --git a/eoc.py b/eoc.py
index c7fb0c1..16dae19 100644
--- a/eoc.py
+++ b/eoc.py
@@ -491,28 +491,32 @@ class MailingList:
         return True
     
     def mime_encode_headers(self, text):
-        headers, body = text.split("\n\n", 1)
-    
-        list = []
-        for line in headers.split("\n"):
-            if line[0].isspace():
-                list[-1] += line
-            else:
-                list.append(line)
-    
-        headers = []
-        for header in list:
-            if self.nice_7bit(header):
-                headers.append(header)
-            else:
-                if ": " in header:
-                    name, content = header.split(": ", 1)
+        try:
+            headers, body = text.split("\n\n", 1)
+        
+            list = []
+            for line in headers.split("\n"):
+                if line[0].isspace():
+                    list[-1] += line
                 else:
-                    name, content = header.split(":", 1)
-                hdr = email.Header.Header(content, "utf-8")
-                headers.append(name + ": " + hdr.encode())
-    
-        return "\n".join(headers) + "\n\n" + body
+                    list.append(line)
+        
+            headers = []
+            for header in list:
+                if self.nice_7bit(header):
+                    headers.append(header)
+                else:
+                    if ": " in header:
+                        name, content = header.split(": ", 1)
+                    else:
+                        name, content = header.split(":", 1)
+                    hdr = email.Header.Header(content, "utf-8")
+                    headers.append(name + ": " + hdr.encode())
+        
+            return "\n".join(headers) + "\n\n" + body
+        except:
+            error("Cannot MIME encode header, using original ones, sorry")
+            return text
 
     def template(self, template_name, dict):
         lang = self.cp.get("list", "language")