Skip to content

Commit

Permalink
fix bug #160
Browse files Browse the repository at this point in the history
  • Loading branch information
rui.zheng committed Nov 1, 2017
1 parent d3b5ff2 commit 7c2a5fa
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
3 changes: 3 additions & 0 deletions cmd/gost/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -214,11 214,14 @@ func initChain() (*gost.Chain, error) {
)

interval, _ := strconv.Atoi(node.Values.Get("ping"))
retry, _ := strconv.Atoi(node.Values.Get("retry"))
node.HandshakeOptions = append(node.HandshakeOptions,
gost.AddrHandshakeOption(node.Addr),
gost.UserHandshakeOption(node.User),
gost.TLSConfigHandshakeOption(tlsCfg),
gost.IntervalHandshakeOption(time.Duration(interval)*time.Second),
gost.TimeoutHandshakeOption(time.Duration(timeout)*time.Second),
gost.RetryHandshakeOption(retry),
)
node.Client = &gost.Client{
Connector: connector,
Expand Down
15 changes: 10 additions & 5 deletions ssh.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 185,7 @@ func (tr *sshForwardTransporter) Handshake(conn net.Conn, options ...HandshakeOp
connChan: make(chan net.Conn, 1024),
}
tr.sessions[opts.Addr] = session
go session.Ping(opts.Interval, opts.Timeout, 1)
go session.Ping(opts.Interval, opts.Timeout, opts.Retry)
go session.waitServer()
go session.waitClose()
}
Expand Down Expand Up @@ -280,7 280,7 @@ func (tr *sshTunnelTransporter) Handshake(conn net.Conn, options ...HandshakeOpt
deaded: make(chan struct{}),
}
tr.sessions[opts.Addr] = session
go session.Ping(opts.Interval, 30*time.Second, 1)
go session.Ping(opts.Interval, opts.Timeout, opts.Retry)
go session.waitServer()
go session.waitClose()
}
Expand Down Expand Up @@ -317,11 317,16 @@ func (s *sshSession) Ping(interval, timeout time.Duration, retries int) {
return
}
if timeout <= 0 {
timeout = 0
timeout = 10 * time.Second
}

if retries == 0 {
retries = 1
}

defer close(s.deaded)

log.Log("[ssh] ping is enabled, interval:", interval)
log.Logf("[ssh] ping is enabled, interval: %v, timeout: %v, retry: %d", interval, timeout, retries)
baseCtx := context.Background()
t := time.NewTicker(interval)
defer t.Stop()
Expand Down Expand Up @@ -453,7 458,7 @@ func (h *sshForwardHandler) handleForward(conn ssh.Conn, chans <-chan ssh.NewCha
case RemoteForwardRequest:
go h.tcpipForwardRequest(conn, req, quit)
default:
// log.Log("[ssh] unknown channel type:", req.Type)
// log.Log("[ssh] unknown request type:", req.Type, req.WantReply)
if req.WantReply {
req.Reply(false, nil)
}
Expand Down

0 comments on commit 7c2a5fa

Please sign in to comment.