fix: resolve recent service scan regressions

This commit is contained in:
ZacharyZcR
2026-08-26 04:19:58 +08:00
parent 1418f6d8ce
commit a1ff55ef55
11 changed files with 153 additions and 24 deletions
+38
View File
@@ -4,9 +4,47 @@ package services
import (
"errors"
"net"
"testing"
"time"
"github.com/shadow1ng/fscan/common"
)
func TestReadSSHBannerAllowsPreBannerLines(t *testing.T) {
client, server := net.Pipe()
defer client.Close()
defer server.Close()
go func() {
_, _ = server.Write([]byte("Authorized access only\r\nSSH-2.0-OpenSSH_9.6\r\n"))
}()
cfg := common.NewConfig()
cfg.Timeout = time.Second
got := NewSSHPlugin().readSSHBanner(client, cfg)
if got != "SSH 2.0 (OpenSSH_9.6)" {
t.Fatalf("readSSHBanner() = %q", got)
}
}
func TestReadSSHBannerRejectsNonSSHService(t *testing.T) {
client, server := net.Pipe()
defer client.Close()
defer server.Close()
go func() {
_, _ = server.Write([]byte("HTTP/1.1 200 OK\r\n"))
_ = server.Close()
}()
cfg := common.NewConfig()
cfg.Timeout = time.Second
if got := NewSSHPlugin().readSSHBanner(client, cfg); got != "" {
t.Fatalf("readSSHBanner() = %q, want empty", got)
}
}
func TestClassifySSHErrorType(t *testing.T) {
tests := []struct {
name string