fix tcp forwarding crash

This commit is contained in:
rui.zheng 2017-03-03 12:48:46 +08:00
parent d5e4e24e83
commit 82925e4ac7
3 changed files with 7 additions and 7 deletions

View File

@ -51,7 +51,7 @@ func (s *TcpForwardServer) ListenAndServe() error {
select { select {
case <-quit: case <-quit:
if s.Base.Chain.lastNode.Transport != "ssh" { if s.Base.Chain.lastNode == nil || s.Base.Chain.lastNode.Transport != "ssh" {
break break
} }
if err := s.initSSHClient(); err != nil { if err := s.initSSHClient(); err != nil {
@ -429,7 +429,7 @@ func (s *RTcpForwardServer) Serve() error {
glog.V(LINFO).Infof("[rtcp] %s - %s", laddr, raddr) glog.V(LINFO).Infof("[rtcp] %s - %s", laddr, raddr)
lastNode := s.Base.Chain.lastNode lastNode := s.Base.Chain.lastNode
if lastNode.Transport == "ssh" { if lastNode != nil && lastNode.Transport == "ssh" {
s.connectRTcpForwardSSH(conn, lastNode, laddr, raddr) s.connectRTcpForwardSSH(conn, lastNode, laddr, raddr)
} else { } else {
if err := s.connectRTcpForward(conn, laddr, raddr); err != nil { if err := s.connectRTcpForward(conn, laddr, raddr); err != nil {

View File

@ -21,10 +21,10 @@
"revisionTime": "2017-01-19T05:34:58Z" "revisionTime": "2017-01-19T05:34:58Z"
}, },
{ {
"checksumSHA1": "8JlPLyEAjSN5tknRlRClQIVD5XA=", "checksumSHA1": "iO+jPih44pGmJmhxHniw6feeIUA=",
"path": "github.com/ginuerzh/gost", "path": "github.com/ginuerzh/gost",
"revision": "2ca2bf71871e271ad2b69f7b26e14983c99efc5d", "revision": "d5e4e24e8354da5cef62733a4aa8a9d92556945e",
"revisionTime": "2017-02-25T14:51:33Z" "revisionTime": "2017-02-26T10:31:07Z"
}, },
{ {
"checksumSHA1": "+XIOnTW0rv8Kr/amkXgMraNeUr4=", "checksumSHA1": "+XIOnTW0rv8Kr/amkXgMraNeUr4=",

View File

@ -51,7 +51,7 @@ func (s *TcpForwardServer) ListenAndServe() error {
select { select {
case <-quit: case <-quit:
if s.Base.Chain.lastNode.Transport != "ssh" { if s.Base.Chain.lastNode == nil || s.Base.Chain.lastNode.Transport != "ssh" {
break break
} }
if err := s.initSSHClient(); err != nil { if err := s.initSSHClient(); err != nil {
@ -429,7 +429,7 @@ func (s *RTcpForwardServer) Serve() error {
glog.V(LINFO).Infof("[rtcp] %s - %s", laddr, raddr) glog.V(LINFO).Infof("[rtcp] %s - %s", laddr, raddr)
lastNode := s.Base.Chain.lastNode lastNode := s.Base.Chain.lastNode
if lastNode.Transport == "ssh" { if lastNode != nil && lastNode.Transport == "ssh" {
s.connectRTcpForwardSSH(conn, lastNode, laddr, raddr) s.connectRTcpForwardSSH(conn, lastNode, laddr, raddr)
} else { } else {
if err := s.connectRTcpForward(conn, laddr, raddr); err != nil { if err := s.connectRTcpForward(conn, laddr, raddr); err != nil {