| Index: third_party/tlslite/tlslite/FileObject.py
|
| diff --git a/third_party/tlslite/tlslite/FileObject.py b/third_party/tlslite/tlslite/FileObject.py
|
| deleted file mode 100644
|
| index 6ee02b2436bb10e1a37c987b190925b3682cdf85..0000000000000000000000000000000000000000
|
| --- a/third_party/tlslite/tlslite/FileObject.py
|
| +++ /dev/null
|
| @@ -1,220 +0,0 @@
|
| -"""Class returned by TLSConnection.makefile()."""
|
| -
|
| -class FileObject:
|
| - """This class provides a file object interface to a
|
| - L{tlslite.TLSConnection.TLSConnection}.
|
| -
|
| - Call makefile() on a TLSConnection to create a FileObject instance.
|
| -
|
| - This class was copied, with minor modifications, from the
|
| - _fileobject class in socket.py. Note that fileno() is not
|
| - implemented."""
|
| -
|
| - default_bufsize = 16384 #TREV: changed from 8192
|
| -
|
| - def __init__(self, sock, mode='rb', bufsize=-1):
|
| - self._sock = sock
|
| - self.mode = mode # Not actually used in this version
|
| - if bufsize < 0:
|
| - bufsize = self.default_bufsize
|
| - self.bufsize = bufsize
|
| - self.softspace = False
|
| - if bufsize == 0:
|
| - self._rbufsize = 1
|
| - elif bufsize == 1:
|
| - self._rbufsize = self.default_bufsize
|
| - else:
|
| - self._rbufsize = bufsize
|
| - self._wbufsize = bufsize
|
| - self._rbuf = "" # A string
|
| - self._wbuf = [] # A list of strings
|
| -
|
| - def _getclosed(self):
|
| - return self._sock is not None
|
| - closed = property(_getclosed, doc="True if the file is closed")
|
| -
|
| - def close(self):
|
| - try:
|
| - if self._sock:
|
| - for result in self._sock._decrefAsync(): #TREV
|
| - pass
|
| - finally:
|
| - self._sock = None
|
| -
|
| - def __del__(self):
|
| - try:
|
| - self.close()
|
| - except:
|
| - # close() may fail if __init__ didn't complete
|
| - pass
|
| -
|
| - def flush(self):
|
| - if self._wbuf:
|
| - buffer = "".join(self._wbuf)
|
| - self._wbuf = []
|
| - self._sock.sendall(buffer)
|
| -
|
| - #def fileno(self):
|
| - # raise NotImplementedError() #TREV
|
| -
|
| - def write(self, data):
|
| - data = str(data) # XXX Should really reject non-string non-buffers
|
| - if not data:
|
| - return
|
| - self._wbuf.append(data)
|
| - if (self._wbufsize == 0 or
|
| - self._wbufsize == 1 and '\n' in data or
|
| - self._get_wbuf_len() >= self._wbufsize):
|
| - self.flush()
|
| -
|
| - def writelines(self, list):
|
| - # XXX We could do better here for very long lists
|
| - # XXX Should really reject non-string non-buffers
|
| - self._wbuf.extend(filter(None, map(str, list)))
|
| - if (self._wbufsize <= 1 or
|
| - self._get_wbuf_len() >= self._wbufsize):
|
| - self.flush()
|
| -
|
| - def _get_wbuf_len(self):
|
| - buf_len = 0
|
| - for x in self._wbuf:
|
| - buf_len += len(x)
|
| - return buf_len
|
| -
|
| - def read(self, size=-1):
|
| - data = self._rbuf
|
| - if size < 0:
|
| - # Read until EOF
|
| - buffers = []
|
| - if data:
|
| - buffers.append(data)
|
| - self._rbuf = ""
|
| - if self._rbufsize <= 1:
|
| - recv_size = self.default_bufsize
|
| - else:
|
| - recv_size = self._rbufsize
|
| - while True:
|
| - data = self._sock.recv(recv_size)
|
| - if not data:
|
| - break
|
| - buffers.append(data)
|
| - return "".join(buffers)
|
| - else:
|
| - # Read until size bytes or EOF seen, whichever comes first
|
| - buf_len = len(data)
|
| - if buf_len >= size:
|
| - self._rbuf = data[size:]
|
| - return data[:size]
|
| - buffers = []
|
| - if data:
|
| - buffers.append(data)
|
| - self._rbuf = ""
|
| - while True:
|
| - left = size - buf_len
|
| - recv_size = max(self._rbufsize, left)
|
| - data = self._sock.recv(recv_size)
|
| - if not data:
|
| - break
|
| - buffers.append(data)
|
| - n = len(data)
|
| - if n >= left:
|
| - self._rbuf = data[left:]
|
| - buffers[-1] = data[:left]
|
| - break
|
| - buf_len += n
|
| - return "".join(buffers)
|
| -
|
| - def readline(self, size=-1):
|
| - data = self._rbuf
|
| - if size < 0:
|
| - # Read until \n or EOF, whichever comes first
|
| - if self._rbufsize <= 1:
|
| - # Speed up unbuffered case
|
| - assert data == ""
|
| - buffers = []
|
| - recv = self._sock.recv
|
| - while data != "\n":
|
| - data = recv(1)
|
| - if not data:
|
| - break
|
| - buffers.append(data)
|
| - return "".join(buffers)
|
| - nl = data.find('\n')
|
| - if nl >= 0:
|
| - nl += 1
|
| - self._rbuf = data[nl:]
|
| - return data[:nl]
|
| - buffers = []
|
| - if data:
|
| - buffers.append(data)
|
| - self._rbuf = ""
|
| - while True:
|
| - data = self._sock.recv(self._rbufsize)
|
| - if not data:
|
| - break
|
| - buffers.append(data)
|
| - nl = data.find('\n')
|
| - if nl >= 0:
|
| - nl += 1
|
| - self._rbuf = data[nl:]
|
| - buffers[-1] = data[:nl]
|
| - break
|
| - return "".join(buffers)
|
| - else:
|
| - # Read until size bytes or \n or EOF seen, whichever comes first
|
| - nl = data.find('\n', 0, size)
|
| - if nl >= 0:
|
| - nl += 1
|
| - self._rbuf = data[nl:]
|
| - return data[:nl]
|
| - buf_len = len(data)
|
| - if buf_len >= size:
|
| - self._rbuf = data[size:]
|
| - return data[:size]
|
| - buffers = []
|
| - if data:
|
| - buffers.append(data)
|
| - self._rbuf = ""
|
| - while True:
|
| - data = self._sock.recv(self._rbufsize)
|
| - if not data:
|
| - break
|
| - buffers.append(data)
|
| - left = size - buf_len
|
| - nl = data.find('\n', 0, left)
|
| - if nl >= 0:
|
| - nl += 1
|
| - self._rbuf = data[nl:]
|
| - buffers[-1] = data[:nl]
|
| - break
|
| - n = len(data)
|
| - if n >= left:
|
| - self._rbuf = data[left:]
|
| - buffers[-1] = data[:left]
|
| - break
|
| - buf_len += n
|
| - return "".join(buffers)
|
| -
|
| - def readlines(self, sizehint=0):
|
| - total = 0
|
| - list = []
|
| - while True:
|
| - line = self.readline()
|
| - if not line:
|
| - break
|
| - list.append(line)
|
| - total += len(line)
|
| - if sizehint and total >= sizehint:
|
| - break
|
| - return list
|
| -
|
| - # Iterator protocols
|
| -
|
| - def __iter__(self):
|
| - return self
|
| -
|
| - def next(self):
|
| - line = self.readline()
|
| - if not line:
|
| - raise StopIteration
|
| - return line
|
|
|