chardev: use a state machine for socket connection state
commit32423ccaa1fb4d4777dbc4e3e3da331a1616a489
authorDaniel P. Berrangé <berrange@redhat.com>
Mon, 11 Feb 2019 18:24:37 +0000 (11 18:24 +0000)
committerMarc-André Lureau <marcandre.lureau@redhat.com>
Tue, 12 Feb 2019 16:35:56 +0000 (12 17:35 +0100)
tree098e0625999b5718bf09c9a0c0a8195ee77e40cc
parentb5e18e51498a7867b7a540221e8dac17911446af
chardev: use a state machine for socket connection state

The socket connection state is indicated via the 'bool connected' field
in the SocketChardev struct. This variable is somewhat misleading
though, as it is only set to true once the connection has completed all
required handshakes (eg for TLS, telnet or websockets). IOW there is a
period of time in which the socket is connected, but the "connected"
flag is still false.

The socket chardev really has three states that it can be in,
disconnected, connecting and connected and those should be tracked
explicitly.

Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Message-Id: <20190211182442.8542-12-berrange@redhat.com>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
chardev/char-socket.c