Example #1
0
 def handle_read(self):
     self.read_blocked_on_read = False
     self.read_blocked_on_write = False
     try:
         HTTPChannel.handle_read(self)
     except ESSLWantWrite,error:
         self.want_write = True
         self.read_blocked_on_write = True
         self.log_debug("handle-read retry: want-write.", level=2)
Example #2
0
 def handle_write_event(self):
     self.want_write = False
     if not self.ssl:
         self.log_debug("write-event ignored: no socket.", level=2)
     elif self.read_blocked_on_write:
         self.log_debug("write-event invoking handle-read", level=1)
         self.handle_read()
     elif self.read_blocked_on_read:
         self.log_debug("read-event ignored: read blocked.", level=2)
     elif self.write_blocked_on_read and self.want_read:
         self.log_debug("write-event ignored: write wait read.", level=2)
     else:
         self.log_debug("write-event propagating.", level=3)
         HTTPChannel.handle_write_event(self)
Example #3
0
 def __init__(self, server, conn, addr):
     self._fileno = None
     self.ssl = None
     self.want_read = False
     self.want_write = False
     self.read_blocked = False
     self.write_blocked = False
     self.pending_write_buffer = ""
     self.read_blocked_on_read = False
     self.read_blocked_on_write = False
     self.write_blocked_on_read = False
     self.write_blocked_on_write = False
     self.watching_readable = False
     self.watching_writable = False
     self.error_occurred = False
     self.context = server.get_context()
     HTTPChannel.__init__(self, server, conn, addr)
Example #4
0
 def __getattr__(self, name):
     self.log_debug("__getattr__(%r)", name)
     if self.ssl:
         try:
             attribute = getattr(self.ssl, name)
         except AttributeError:
             msglog.warn("Failed attribute lookup: %r." % name)
         else:
             return attribute
     return HTTPChannel.__getattr__(self, name)
Example #5
0
 def close(self):
     if self.error_occurred:
         self.log_debug("closing SSL connection after error.")
     else:
         self.log_debug("closing SSL connection", level=3)
     if self.ssl:
         try:
             self.ssl.close()
         except:
             msglog.exception(prefix="handled")
     self.ssl = None
     self.context = None
     if self._current_request:
         try:
             self._current_request.handle_close()
         except:
             msglog.exception(prefix = 'handled')
     HTTPChannel.close(self)
     self.socket = None
Example #6
0
 def handle_close(self):
     self.log_debug("handle-close called.", level=2)
     HTTPChannel.handle_close(self)
Example #7
0
 def writable(self):
     self.watching_writable = self.want_write or HTTPChannel.writable(self)
     return self.watching_writable
Example #8
0
 def readable(self):
     self.watching_readable = self.want_read or HTTPChannel.readable(self)
     return self.watching_readable