Refactored detection logic to include ports and a confidence score
This commit is contained in:
@@ -28,12 +28,12 @@ func TestDetectHTTPRequest(t *testing.T) {
|
||||
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Run("HTTP/1.0 GET", func(t *testing.T) {
|
||||
p, err := Detect(Client, http10Request)
|
||||
p, c, err := Detect(Client, http10Request, 1234, 80)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
return
|
||||
}
|
||||
t.Logf("detected %s version %s", p.Name, p.Version)
|
||||
t.Logf("detected %s version %s confidence %g%%", p.Name, p.Version, c*100)
|
||||
if p.Name != ProtocolHTTP {
|
||||
t.Fatalf("expected http protocol, got %s", p.Name)
|
||||
return
|
||||
@@ -41,12 +41,12 @@ func TestDetectHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("HTTP/1.1 GET", func(t *testing.T) {
|
||||
p, err := Detect(Client, getRequest)
|
||||
p, c, err := Detect(Client, getRequest, 1234, 80)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
return
|
||||
}
|
||||
t.Logf("detected %s version %s", p.Name, p.Version)
|
||||
t.Logf("detected %s version %s confidence %g%%", p.Name, p.Version, c*100)
|
||||
if p.Name != ProtocolHTTP {
|
||||
t.Fatalf("expected http protocol, got %s", p.Name)
|
||||
return
|
||||
@@ -54,7 +54,7 @@ func TestDetectHTTPRequest(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Invalid SSH", func(t *testing.T) {
|
||||
_, err := Detect(Server, sshBanner)
|
||||
_, _, err := Detect(Server, sshBanner, 1234, 22)
|
||||
if !errors.Is(err, ErrUnknown) {
|
||||
t.Fatalf("expected unknown format, got error %T: %q", err, err)
|
||||
} else {
|
||||
@@ -94,12 +94,12 @@ func TestDetectHTTPResponse(t *testing.T) {
|
||||
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Run("HTTP/1.0 403", func(t *testing.T) {
|
||||
p, err := Detect(Server, http10Response)
|
||||
p, c, err := Detect(Server, http10Response, 80, 1234)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
return
|
||||
}
|
||||
t.Logf("detected %s version %s", p.Name, p.Version)
|
||||
t.Logf("detected %s version %s confidence %g%%", p.Name, p.Version, c*100)
|
||||
if p.Name != ProtocolHTTP {
|
||||
t.Fatalf("expected http protocol, got %s", p.Name)
|
||||
return
|
||||
@@ -107,12 +107,12 @@ func TestDetectHTTPResponse(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("HTTP/1.1 200", func(t *testing.T) {
|
||||
p, err := Detect(Server, responseOK)
|
||||
p, c, err := Detect(Server, responseOK, 80, 1234)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
return
|
||||
}
|
||||
t.Logf("detected %s version %s", p.Name, p.Version)
|
||||
t.Logf("detected %s version %s confidence %g%%", p.Name, p.Version, c*100)
|
||||
if p.Name != ProtocolHTTP {
|
||||
t.Fatalf("expected http protocol, got %s", p.Name)
|
||||
return
|
||||
@@ -120,12 +120,12 @@ func TestDetectHTTPResponse(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("HTTP/1.1 404", func(t *testing.T) {
|
||||
p, err := Detect(Server, responseNotFound)
|
||||
p, c, err := Detect(Server, responseNotFound, 80, 1234)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
return
|
||||
}
|
||||
t.Logf("detected %s version %s", p.Name, p.Version)
|
||||
t.Logf("detected %s version %s confidence %g%%", p.Name, p.Version, c*100)
|
||||
if p.Name != ProtocolHTTP {
|
||||
t.Fatalf("expected http protocol, got %s", p.Name)
|
||||
return
|
||||
@@ -133,7 +133,7 @@ func TestDetectHTTPResponse(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Invalid HTTP/1.1 GET", func(t *testing.T) {
|
||||
_, err := Detect(Server, getRequest)
|
||||
_, _, err := Detect(Server, getRequest, 1234, 80)
|
||||
if !errors.Is(err, ErrUnknown) {
|
||||
t.Fatalf("expected unknown format, got error %T: %q", err, err)
|
||||
} else {
|
||||
@@ -142,7 +142,7 @@ func TestDetectHTTPResponse(t *testing.T) {
|
||||
})
|
||||
|
||||
t.Run("Invalid SSH", func(t *testing.T) {
|
||||
_, err := Detect(Server, sshBanner)
|
||||
_, _, err := Detect(Server, sshBanner, 22, 1234)
|
||||
if !errors.Is(err, ErrUnknown) {
|
||||
t.Fatalf("expected unknown format, got error %T: %q", err, err)
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user