diff --git a/handler.go b/handler.go index e54146b..61dc5dc 100644 --- a/handler.go +++ b/handler.go @@ -99,7 +99,13 @@ func (c *Client) connectAndSignal(addr string, timeout time.Duration) error { if res.err != nil { return res.err } - c.connection = res.conn + + c.changeConnection(res.conn) + if err := c.init(res.conn); err != nil { + res.conn.Close() + return fmt.Errorf("init failed: %w", err) + } + close(c.connected) return nil }