diff --git a/ssh/conn.go b/ssh/conn.go index db0600d..d5a808d 100644 --- a/ssh/conn.go +++ b/ssh/conn.go @@ -16,18 +16,24 @@ type Conn struct { } func (c *Conn) Read(b []byte) (int, error) { - err := c.Conn.SetReadDeadline(time.Now().Add(c.ReadTimeout)) - if err != nil { - return 0, err + if c.ReadTimeout > 0 { + err := c.Conn.SetReadDeadline(time.Now().Add(c.ReadTimeout)) + if err != nil { + return 0, err + } } + return c.Conn.Read(b) } func (c *Conn) Write(b []byte) (int, error) { - err := c.Conn.SetWriteDeadline(time.Now().Add(c.WriteTimeout)) - if err != nil { - return 0, err + if c.ReadTimeout > 0 { + err := c.Conn.SetWriteDeadline(time.Now().Add(c.WriteTimeout)) + if err != nil { + return 0, err + } } + return c.Conn.Write(b) } diff --git a/ssh/ssh.go b/ssh/ssh.go index f66faee..70d2181 100644 --- a/ssh/ssh.go +++ b/ssh/ssh.go @@ -116,7 +116,7 @@ func (c *Config) Validate() error { } if c.ServerAliveInterval <= 0 { - c.ServerAliveInterval = time.Second + c.ServerAliveInterval = 0 } if c.ServerAliveCountMax <= 1 {