Fix socket reconnect semantics