Esempio n. 1
0
 def send(self, data, flags=0):
     if self._sslobj:
         if flags != 0:
             raise ValueError("non-zero flags not allowed in calls to send() on %s" % self.__class__)
         while True:
             try:
                 v = self._sslobj.write(data)
             except SSLError:
                 x = sys.exc_info()[1]
                 if x.args[0] == SSL_ERROR_WANT_READ:
                     if self.timeout == 0.0:
                         return 0
                     six.exc_clear()
                     self._io.wait_read(timeout=self.timeout, timeout_exc=socket_timeout('timed out'))
                 elif x.args[0] == SSL_ERROR_WANT_WRITE:
                     if self.timeout == 0.0:
                         return 0
                     six.exc_clear()
                     self._io.wait_write(timeout=self.timeout, timeout_exc=socket_timeout('timed out'))
                 else:
                     raise
             else:
                 return v
     else:
         return socket.send(self, data, flags)
Esempio n. 2
0
 def send(self, data, flags=0):
     if self._sslobj:
         if flags != 0:
             raise ValueError(
                 "non-zero flags not allowed in calls to send() on %s" %
                 self.__class__)
         while True:
             try:
                 v = self._sslobj.write(data)
             except SSLError:
                 x = sys.exc_info()[1]
                 if x.args[0] == SSL_ERROR_WANT_READ:
                     if self.timeout == 0.0:
                         return 0
                     six.exc_clear()
                     self._io.wait_read(
                         timeout=self.timeout,
                         timeout_exc=socket_timeout('timed out'))
                 elif x.args[0] == SSL_ERROR_WANT_WRITE:
                     if self.timeout == 0.0:
                         return 0
                     six.exc_clear()
                     self._io.wait_write(
                         timeout=self.timeout,
                         timeout_exc=socket_timeout('timed out'))
                 else:
                     raise
             else:
                 return v
     else:
         return socket.send(self, data, flags)
Esempio n. 3
0
 def recv_into(self, buffer, nbytes=None, flags=0):
     if buffer and (nbytes is None):
         nbytes = len(buffer)
     elif nbytes is None:
         nbytes = 1024
     if self._sslobj:
         if flags != 0:
             raise ValueError("non-zero flags not allowed in calls to recv_into() on %s" % self.__class__)
         while True:
             try:
                 tmp_buffer = self.read(nbytes)
                 v = len(tmp_buffer)
                 buffer[:v] = tmp_buffer
                 return v
             except SSLError:
                 x = sys.exc_info()[1]
                 if x.args[0] == SSL_ERROR_WANT_READ:
                     if self.timeout == 0.0:
                         raise
                     six.exc_clear()
                     self._io.wait_read(timeout=self.timeout, timeout_exc=socket_timeout('timed out'))
                     continue
                 else:
                     raise
     else:
         return socket.recv_into(self, buffer, nbytes, flags)
Esempio n. 4
0
 def recv_into(self, buffer, nbytes=None, flags=0):
     if buffer and (nbytes is None):
         nbytes = len(buffer)
     elif nbytes is None:
         nbytes = 1024
     if self._sslobj:
         if flags != 0:
             raise ValueError(
                 "non-zero flags not allowed in calls to recv_into() on %s"
                 % self.__class__)
         while True:
             try:
                 tmp_buffer = self.read(nbytes)
                 v = len(tmp_buffer)
                 buffer[:v] = tmp_buffer
                 return v
             except SSLError:
                 x = sys.exc_info()[1]
                 if x.args[0] == SSL_ERROR_WANT_READ:
                     if self.timeout == 0.0:
                         raise
                     six.exc_clear()
                     self._io.wait_read(
                         timeout=self.timeout,
                         timeout_exc=socket_timeout('timed out'))
                     continue
                 else:
                     raise
     else:
         return socket.recv_into(self, buffer, nbytes, flags)