• Julien Muchembled's avatar
    Review API betweeen connections and connectors · 57481c35
    Julien Muchembled authored
    - Review error handling. Only 2 exceptions remain in connector.py:
    
      - Drop useless exception handling for EAGAIN since it should not happen
        if the kernel says the socket is ready.
      - Do not distinguish other socket errors. Just close and log in a generic way.
      - No need to raise a specific exception for EOF.
      - Make 'connect' return a boolean instead of raising an exception.
      - Raise appropriate exception when answer/ask/notify is called on a closed
        non-MT connection.
    
    - Add support for more complex connectors, which may need to write for a read
      operation, or to read when there's pending data to send. This will be
      required for SSL support (more exactly, the handshake will be done in
      a transparent way):
    
      - Move write buffer to connector.
      - Make 'receive' fill the read buffer, instead of returning the read data.
      - Make 'receive' & 'send' return a boolean to switch polling for writing.
      - Tolerate that sockets return 0 as number of bytes sent.
    
    - In testConnection, simply delete all failing tests, as announced
      in commit 71e30fb9.
    57481c35
connection.py 23.3 KB