call ::disconnect() from ::sockError() to keep UI state correct