Commit 628225c0 authored by Victor Stinner's avatar Victor Stinner

Issue #5537: Fix time2isoz() and time2netscape() functions of httplib.cookiejar

for expiration year greater than 2038 on 32-bit systems.
parent 09eb980e
...@@ -29,6 +29,7 @@ __all__ = ['Cookie', 'CookieJar', 'CookiePolicy', 'DefaultCookiePolicy', ...@@ -29,6 +29,7 @@ __all__ = ['Cookie', 'CookieJar', 'CookiePolicy', 'DefaultCookiePolicy',
'FileCookieJar', 'LWPCookieJar', 'LoadError', 'MozillaCookieJar'] 'FileCookieJar', 'LWPCookieJar', 'LoadError', 'MozillaCookieJar']
import copy import copy
import datetime
import re import re
import time import time
import urllib.parse, urllib.request import urllib.parse, urllib.request
...@@ -97,10 +98,12 @@ def time2isoz(t=None): ...@@ -97,10 +98,12 @@ def time2isoz(t=None):
1994-11-24 08:49:37Z 1994-11-24 08:49:37Z
""" """
if t is None: t = time.time() if t is None:
year, mon, mday, hour, min, sec = time.gmtime(t)[:6] dt = datetime.datetime.utcnow()
else:
dt = datetime.datetime.utcfromtimestamp(t)
return "%04d-%02d-%02d %02d:%02d:%02dZ" % ( return "%04d-%02d-%02d %02d:%02d:%02dZ" % (
year, mon, mday, hour, min, sec) dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second)
def time2netscape(t=None): def time2netscape(t=None):
"""Return a string representing time in seconds since epoch, t. """Return a string representing time in seconds since epoch, t.
...@@ -113,10 +116,13 @@ def time2netscape(t=None): ...@@ -113,10 +116,13 @@ def time2netscape(t=None):
Wed, DD-Mon-YYYY HH:MM:SS GMT Wed, DD-Mon-YYYY HH:MM:SS GMT
""" """
if t is None: t = time.time() if t is None:
year, mon, mday, hour, min, sec, wday = time.gmtime(t)[:7] dt = datetime.datetime.utcnow()
else:
dt = datetime.datetime.utcfromtimestamp(t)
return "%s %02d-%s-%04d %02d:%02d:%02d GMT" % ( return "%s %02d-%s-%04d %02d:%02d:%02d GMT" % (
DAYS[wday], mday, MONTHS[mon-1], year, hour, min, sec) DAYS[dt.weekday()], dt.day, MONTHS[dt.month-1],
dt.year, dt.hour, dt.minute, dt.second)
UTC_ZONES = {"GMT": None, "UTC": None, "UT": None, "Z": None} UTC_ZONES = {"GMT": None, "UTC": None, "UT": None, "Z": None}
......
...@@ -40,6 +40,9 @@ Core and Builtins ...@@ -40,6 +40,9 @@ Core and Builtins
Library Library
------- -------
- Issue #5537: Fix time2isoz() and time2netscape() functions of
httplib.cookiejar for expiration year greater than 2038 on 32-bit systems.
- Issue #11459: A ``bufsize`` value of 0 in subprocess.Popen() really creates - Issue #11459: A ``bufsize`` value of 0 in subprocess.Popen() really creates
unbuffered pipes, such that select() works properly on them. unbuffered pipes, such that select() works properly on them.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment