summaryrefslogtreecommitdiff
path: root/net/py-bittorrent-devel/files/zurllib.py
diff options
context:
space:
mode:
Diffstat (limited to 'net/py-bittorrent-devel/files/zurllib.py')
-rw-r--r--net/py-bittorrent-devel/files/zurllib.py61
1 files changed, 0 insertions, 61 deletions
diff --git a/net/py-bittorrent-devel/files/zurllib.py b/net/py-bittorrent-devel/files/zurllib.py
deleted file mode 100644
index a99ca51142bb..000000000000
--- a/net/py-bittorrent-devel/files/zurllib.py
+++ /dev/null
@@ -1,61 +0,0 @@
-# Written by John Hoffman
-# see LICENSE.txt for license information
-
-from httplib import HTTPConnection
-from urlparse import urlparse
-import socket
-from gzip import GzipFile
-from StringIO import StringIO
-from urllib import quote, unquote
-from __init__ import version
-
-MAX_REDIRECTS = 10
-
-class urlopen:
- def __init__(self, url):
- self.tries = 0
- self._open(url)
-
- def _open(self, url):
- self.tries += 1
- if self.tries > MAX_REDIRECTS:
- raise IOError, ('http error', 500,
- "Internal Server Error: Redirect Recursion")
- (scheme, netloc, path, pars, query, fragment) = urlparse(url)
- if scheme != 'http':
- raise IOError, ('url error', 'unknown url type', scheme, url)
- url = path
- if pars:
- url += ';'+pars
- if query:
- url += '?'+query
-# if fragment:
- self.connection = HTTPConnection(netloc)
- self.connection.request('GET', url, None,
- { 'User-Agent': 'BitTorrent/' + version,
- 'Accept-Encoding': 'gzip' } )
- self.response = self.connection.getresponse()
- status = self.response.status
- if status in (301,302):
- try:
- self.connection.close()
- except:
- pass
- self._open(self.response.getheader('Location'))
- return
- if status != 200:
- raise IOError, ('http error', status, self.response.reason)
-
- def read(self):
- data = self.response.read()
- if self.response.getheader('Content-Encoding','').find('gzip') >= 0:
- try:
- compressed = StringIO(data)
- f = GzipFile(fileobj = compressed)
- data = f.read()
- except:
- raise IOError, ('http error', 'got corrupt response')
- return data
-
- def close(self):
- self.connection.close()