From 9794ca7ee0f08bea1ede9843a70f37168b96d676 Mon Sep 17 00:00:00 2001 From: Nicola Murino Date: Wed, 11 Sep 2019 12:46:21 +0200 Subject: [PATCH] connection: add a close method and use it instead of netConn directly --- sftpd/handler.go | 4 ++++ sftpd/sftpd.go | 11 ++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/sftpd/handler.go b/sftpd/handler.go index 61ca3417..2dd05a9b 100644 --- a/sftpd/handler.go +++ b/sftpd/handler.go @@ -579,6 +579,10 @@ func (c Connection) createMissingDirs(filePath string) error { return nil } +func (c Connection) close() error { + return c.netConn.Close() +} + func getOSOpenFlags(requestFlags sftp.FileOpenFlags) (flags int) { var osFlags int if requestFlags.Read && requestFlags.Write { diff --git a/sftpd/sftpd.go b/sftpd/sftpd.go index acd911b3..68908d83 100644 --- a/sftpd/sftpd.go +++ b/sftpd/sftpd.go @@ -173,8 +173,8 @@ func CloseActiveConnection(connectionID string) bool { defer mutex.RUnlock() for _, c := range openConnections { if c.ID == connectionID { - err := c.netConn.Close() - c.Log(logger.LevelDebug, logSender, "close connection requested, err: %v", err) + err := c.close() + c.Log(logger.LevelDebug, logSender, "close connection requested, close err: %v", err) result = true break } @@ -254,11 +254,8 @@ func CheckIdleConnections() { } } if idleTime > idleTimeout { - c.Log(logger.LevelInfo, logSender, "close idle connection, idle time: %v", idleTime) - err := c.netConn.Close() - if err != nil { - c.Log(logger.LevelWarn, logSender, "idle connection close failed: %v", err) - } + err := c.close() + c.Log(logger.LevelInfo, logSender, "close idle connection, idle time: %v, close error: %v", idleTime, err) } } logger.Debug(logSender, "", "check idle connections ended")