Sort extension by priority

This commit is contained in:
M. Mert Yildiran 2021-08-25 16:13:57 +03:00
parent 3ca6437320
commit b2a07f37a4
No known key found for this signature in database
GPG Key ID: D42ADB236521BF7A
5 changed files with 15 additions and 1 deletions

View File

@ -17,6 +17,7 @@ import (
"path" "path"
"path/filepath" "path/filepath"
"plugin" "plugin"
"sort"
"github.com/gin-contrib/static" "github.com/gin-contrib/static"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@ -149,7 +150,6 @@ func loadExtensions() {
dissector, _ = symDissector.(tapApi.Dissector) dissector, _ = symDissector.(tapApi.Dissector)
dissector.Register(extension) dissector.Register(extension)
extension.Dissector = dissector extension.Dissector = dissector
log.Printf("Extension Properties: %+v\n", extension)
extensions[i] = extension extensions[i] = extension
if ports, ok := appPorts[extension.Protocol.Name]; ok { if ports, ok := appPorts[extension.Protocol.Name]; ok {
log.Printf("Overriding \"%s\" extension's ports to: %v", extension.Protocol.Name, ports) log.Printf("Overriding \"%s\" extension's ports to: %v", extension.Protocol.Name, ports)
@ -158,6 +158,15 @@ func loadExtensions() {
extensionsMap[extension.Protocol.Name] = extension extensionsMap[extension.Protocol.Name] = extension
allExtensionPorts = mergeUnique(allExtensionPorts, extension.Protocol.Ports) allExtensionPorts = mergeUnique(allExtensionPorts, extension.Protocol.Ports)
} }
sort.Slice(extensions, func(i, j int) bool {
return extensions[i].Protocol.Priority < extensions[j].Protocol.Priority
})
for _, extension := range extensions {
log.Printf("Extension Properties: %+v\n", extension)
}
controllers.InitExtensionsMap(extensionsMap) controllers.InitExtensionsMap(extensionsMap)
log.Printf("All extension ports: %v\n", allExtensionPorts) log.Printf("All extension ports: %v\n", allExtensionPorts)
} }

View File

@ -16,6 +16,7 @@ type Protocol struct {
FontSize int8 `json:"font_size"` FontSize int8 `json:"font_size"`
ReferenceLink string `json:"reference_link"` ReferenceLink string `json:"reference_link"`
Ports []string `json:"ports"` Ports []string `json:"ports"`
Priority uint8 `json:"priority"`
} }
type Extension struct { type Extension struct {

View File

@ -21,6 +21,7 @@ var protocol api.Protocol = api.Protocol{
FontSize: 12, FontSize: 12,
ReferenceLink: "https://www.rabbitmq.com/amqp-0-9-1-reference.html", ReferenceLink: "https://www.rabbitmq.com/amqp-0-9-1-reference.html",
Ports: []string{"5671", "5672"}, Ports: []string{"5671", "5672"},
Priority: 1,
} }
func init() { func init() {

View File

@ -25,6 +25,7 @@ var protocol api.Protocol = api.Protocol{
FontSize: 12, FontSize: 12,
ReferenceLink: "https://datatracker.ietf.org/doc/html/rfc2616", ReferenceLink: "https://datatracker.ietf.org/doc/html/rfc2616",
Ports: []string{"80", "8080", "50051"}, Ports: []string{"80", "8080", "50051"},
Priority: 0,
} }
var http2Protocol api.Protocol = api.Protocol{ var http2Protocol api.Protocol = api.Protocol{
@ -37,6 +38,7 @@ var http2Protocol api.Protocol = api.Protocol{
FontSize: 11, FontSize: 11,
ReferenceLink: "https://datatracker.ietf.org/doc/html/rfc7540", ReferenceLink: "https://datatracker.ietf.org/doc/html/rfc7540",
Ports: []string{"80", "8080"}, Ports: []string{"80", "8080"},
Priority: 0,
} }
const ( const (

View File

@ -20,6 +20,7 @@ var _protocol api.Protocol = api.Protocol{
FontSize: 11, FontSize: 11,
ReferenceLink: "https://kafka.apache.org/protocol", ReferenceLink: "https://kafka.apache.org/protocol",
Ports: []string{"9092"}, Ports: []string{"9092"},
Priority: 2,
} }
func init() { func init() {