tunnel is functional but does not handle a disconnect from the client.
Currently tunnel server and client both need to be restarted on a new
connection