Fix connect
Connect() is not working: - crash on clean() call on uninitialized c.conn - c.closed set to true on clean() call, but not updated on connect, causes " connection is closed" error.
This commit is contained in:
parent
650ddab3c1
commit
77230ea4c8
1 changed files with 19 additions and 16 deletions
|
|
@ -49,22 +49,23 @@ func (c *Driver) Connect() error {
|
||||||
conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", c.Host, c.Port))
|
conn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", c.Host, c.Port))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
} else {
|
}
|
||||||
c.conn = conn
|
|
||||||
c.reader = bufio.NewReader(c.conn)
|
c.closed = false
|
||||||
|
c.conn = conn
|
||||||
|
c.reader = bufio.NewReader(c.conn)
|
||||||
|
|
||||||
err := c.write(fmt.Sprintf("START %s %s", c.channel, c.Password))
|
err = c.write(fmt.Sprintf("START %s %s", c.channel, c.Password))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
|
||||||
|
|
||||||
_, err = c.read()
|
|
||||||
_, err = c.read()
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, err = c.read()
|
||||||
|
_, err = c.read()
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Driver) Quit() error {
|
func (c *Driver) Quit() error {
|
||||||
|
|
@ -128,8 +129,10 @@ func (c Driver) write(str string) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (c *Driver) clean() {
|
func (c *Driver) clean() {
|
||||||
|
if c.conn != nil {
|
||||||
|
_ = c.conn.Close()
|
||||||
|
c.conn = nil
|
||||||
|
}
|
||||||
c.closed = true
|
c.closed = true
|
||||||
_ = c.conn.Close()
|
|
||||||
c.conn = nil
|
|
||||||
c.reader = nil
|
c.reader = nil
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue