Merge pull request #608 from NOPTrace/fix/smtp-deadline
发布 / auto-tag (push) Canceled after 0s
测试构建 / 代码检查 (push) Canceled after 0s
发布 / release (push) Canceled after 0s
测试构建 / 单元测试和构建 (push) Canceled after 0s
测试构建 / 构建验证 (push) Canceled after 0s

fix: set conn deadline in smtp testAnonymousAccess/testOpenRelay to avoid hang on silent servers
This commit is contained in:
shadow1ng
2026-09-17 12:19:08 +08:00
committed by GitHub
+6
View File
@@ -243,6 +243,9 @@ func (p *SMTPPlugin) testAnonymousAccess(ctx context.Context, info *common.HostI
} }
defer func() { _ = conn.Close() }() defer func() { _ = conn.Close() }()
// 修复: 设置读写超时, 防止对只accept不发送banner的服务器(tarpit)永久阻塞
_ = conn.SetDeadline(time.Now().Add(session.Config.ModuleTimeout()))
client, err := smtp.NewClient(conn, info.Host) client, err := smtp.NewClient(conn, info.Host)
if err != nil { if err != nil {
resultChan <- nil resultChan <- nil
@@ -295,6 +298,9 @@ func (p *SMTPPlugin) testOpenRelay(ctx context.Context, info *common.HostInfo, s
} }
defer func() { _ = conn.Close() }() defer func() { _ = conn.Close() }()
// 修复: 设置读写超时, 防止对只accept不发送banner的服务器(tarpit)永久阻塞
_ = conn.SetDeadline(time.Now().Add(session.Config.ModuleTimeout()))
client, err := smtp.NewClient(conn, info.Host) client, err := smtp.NewClient(conn, info.Host)
if err != nil { if err != nil {
resultChan <- nil resultChan <- nil