Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2567dd6

Browse files
committed
Two changes:
(1) No longer close self.sock; close it on close(). (Guido) (2) Don't use regular expressions for what can be done simply with string.split() -- regex is thread unsafe. (Jeremy) (3) Delete unused imports. (Jeremy)
1 parent 4462064 commit 2567dd6

1 file changed

Lines changed: 13 additions & 14 deletions

File tree

Lib/httplib.py

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,13 @@
2828
# connection for each request.)
2929

3030

31-
import os
3231
import socket
3332
import string
34-
import regex
35-
import regsub
3633
import mimetools
3734

3835
HTTP_VERSION = 'HTTP/1.0'
39-
HTTP_VERSIONS_ACCEPTED = 'HTTP/1\.[0-9.]+'
4036
HTTP_PORT = 80
4137

42-
replypat = HTTP_VERSIONS_ACCEPTED + '[ \t]+\([0-9][0-9][0-9]\)\(.*\)'
43-
replyprog = regex.compile(replypat)
44-
4538
class HTTP:
4639

4740
def __init__(self, host = '', port = 0):
@@ -83,15 +76,18 @@ def endheaders(self):
8376

8477
def getreply(self):
8578
self.file = self.sock.makefile('rb')
86-
self.sock = None
8779
line = self.file.readline()
8880
if self.debuglevel > 0: print 'reply:', `line`
89-
if replyprog.match(line) < 0:
90-
self.headers = None
91-
return -1, line, self.headers
92-
errcode, errmsg = replyprog.group(1, 2)
93-
errcode = string.atoi(errcode)
94-
errmsg = string.strip(errmsg)
81+
try:
82+
[ver, code, msg] = string.split(line, None, 2)
83+
except ValueError:
84+
self.headers = None
85+
return -1, line, self.headers
86+
if ver[:5] != 'HTTP/':
87+
self.headers = None
88+
return -1, line, self.headers
89+
errcode = string.atoi(code)
90+
errmsg = string.strip(msg)
9591
self.headers = mimetools.Message(self.file, 0)
9692
return errcode, errmsg, self.headers
9793

@@ -102,6 +98,9 @@ def close(self):
10298
if self.file:
10399
self.file.close()
104100
self.file = None
101+
if self.sock:
102+
self.sock.close()
103+
self.sock = None
105104

106105

107106
def test():

0 commit comments

Comments
 (0)