Commit 6ef96e7f authored by Eric's avatar Eric

[Bugfix] close connections

parent 5eeea6b0
......@@ -32,12 +32,12 @@ func SftpHandler(sess ssh.Session) {
req := sftp.NewRequestServer(sess, handlers)
if err := req.Serve(); err == io.EOF {
_ = req.Close()
userSftp.Close()
logger.Info("sftp client exited session.")
} else if err != nil {
logger.Error("sftp server completed with error:", err)
}
_ = req.Close()
userSftp.Close()
}
func NewSFTPHandler(user *model.User, addr string) *sftpHandler {
......
......@@ -121,7 +121,20 @@ func OnHostHandler(c *neffos.NSConn, msg neffos.Message) (err error) {
}
userR, userW := io.Pipe()
addr, _, _ := net.SplitHostPort(cc.Socket().Request().RemoteAddr)
var addr string
request := cc.Socket().Request()
header := request.Header
remoteAddr := header.Get("X-Forwarded-For")
if remoteAddr == "" {
if host, _, err := net.SplitHostPort(request.RemoteAddr); err == nil {
addr = host
} else {
addr = request.RemoteAddr
}
} else {
addr = strings.Split(remoteAddr, ",")[0]
}
client := &Client{
Uuid: roomID, addr: addr,
WinChan: make(chan ssh.Window, 100), Conn: c,
......
......@@ -221,6 +221,8 @@ func (p *ProxyServer) Proxy() {
// 创建Session
sw, err := CreateSession(p)
if err != nil {
// 创建srv成功,但session创建失败,关闭srvConn
_ = srvConn.Close()
return
}
defer RemoveSession(sw)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment