-import time
+import time, calendar
statusinfo = {
400: ("Bad Request", "Invalid HTTP request."),
return None
tz = int(tz[1:])
tz = (((tz / 100) * 60) + (tz % 100)) * 60
- return time.mktime(time.strptime(dstr, "%a, %d %b %Y %H:%M:%S")) - tz - time.altzone
+ return calendar.timegm(time.strptime(dstr, "%a, %d %b %Y %H:%M:%S")) - tz
def pmimehead(hstr):
def pws(p):
</body>
</html>
""" % (title, title, htmlq(msg))
+ buf = buf.encode("us-ascii")
startreq("%i %s" % (code, title), [("Content-Type", "text/html"), ("Content-Length", str(len(buf)))])
return [buf]
def urlq(url):
+ if isinstance(url, str):
+ url = url.encode("utf-8")
ret = ""
+ invalid = b"&=#?/\"'"
for c in url:
- if c == "&" or c == "=" or c == "#" or c == "?" or c == "/" or (ord(c) <= 32):
- ret += "%%%02X" % ord(c)
+ if c in invalid or (c <= 32) or (c >= 128):
+ ret += "%%%02X" % c
else:
- ret += c
+ ret += chr(c)
return ret
class urlerror(ValueError):