Patch #1117339: Add cookielib special name tests.
Backported to 2.4.
diff --git a/Lib/cookielib.py b/Lib/cookielib.py
index 7fec858..49989b4 100644
--- a/Lib/cookielib.py
+++ b/Lib/cookielib.py
@@ -447,7 +447,7 @@
     for ns_header in ns_headers:
         pairs = []
         version_set = False
-        for param in re.split(r";\s*", ns_header):
+        for ii, param in enumerate(re.split(r";\s*", ns_header)):
             param = param.rstrip()
             if param == "": continue
             if "=" not in param:
@@ -459,7 +459,7 @@
             else:
                 k, v = re.split(r"\s*=\s*", param, 1)
                 k = k.lstrip()
-            if k is not None:
+            if ii != 0:
                 lc = k.lower()
                 if lc in known_attrs:
                     k = lc
diff --git a/Lib/test/test_cookielib.py b/Lib/test/test_cookielib.py
index 72c9fc8..679e3aa 100644
--- a/Lib/test/test_cookielib.py
+++ b/Lib/test/test_cookielib.py
@@ -103,13 +103,23 @@
         from cookielib import parse_ns_headers
 
         # quotes should be stripped
-        expected = [[('expires', 2209069412L), ('version', '0')]]
+        expected = [[('foo', 'bar'), ('expires', 2209069412L), ('version', '0')]]
         for hdr in [
-            'expires=01 Jan 2040 22:23:32 GMT',
-            'expires="01 Jan 2040 22:23:32 GMT"',
+            'foo=bar; expires=01 Jan 2040 22:23:32 GMT',
+            'foo=bar; expires="01 Jan 2040 22:23:32 GMT"',
             ]:
             self.assertEquals(parse_ns_headers([hdr]), expected)
 
+    def test_parse_ns_headers_special_names(self):
+        # names such as 'expires' are not special in first name=value pair
+        # of Set-Cookie: header
+        from cookielib import parse_ns_headers
+
+        # Cookie with name 'expires'
+        hdr = 'expires=01 Jan 2040 22:23:32 GMT'
+        expected = [[("expires", "01 Jan 2040 22:23:32 GMT"), ("version", "0")]]
+        self.assertEquals(parse_ns_headers([hdr]), expected)
+
     def test_join_header_words(self):
         from cookielib import join_header_words
 
@@ -370,6 +380,19 @@
         self.assert_(foo.expires is None)
         self.assert_(spam.expires is None)
 
+    def test_ns_parser_special_names(self):
+        # names such as 'expires' are not special in first name=value pair
+        # of Set-Cookie: header
+        from cookielib import CookieJar
+
+        c = CookieJar()
+        interact_netscape(c, "http://www.acme.com/", 'expires=eggs')
+        interact_netscape(c, "http://www.acme.com/", 'version=eggs; spam=eggs')
+
+        cookies = c._cookies["www.acme.com"]["/"]
+        self.assert_('expires' in cookies)
+        self.assert_('version' in cookies)
+
     def test_expires(self):
         from cookielib import time2netscape, CookieJar