Skip to content

Commit

Permalink
added server flag code
Browse files Browse the repository at this point in the history
  • Loading branch information
ShohamBit committed Dec 4, 2024
1 parent 0d4a491 commit 866bca3
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions cmd/traceectl/pkg/cmd/flags/server.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package flags

import (
"fmt"
"net"
"strings"

"github.com/aquasecurity/tracee/cmd/traceectl/pkg/client"
"github.com/spf13/cobra"
)

func PrepareServer(cmd *cobra.Command, server client.ServerInfo) (client.ServerInfo, error) {
var err error
var address string
err = determineConnectionType(server)
if err != nil {
return server, err
}
switch server.ConnectionType {
case client.Protocol_UNIX:
address = fmt.Sprintf("unix://%s", server.Addr)
case client.Protocol_TCP:
address = fmt.Sprintf(server.Addr)
default:
return server, fmt.Errorf("unsupported connection type: %s", server.ConnectionType)
}
server.Addr = address
return server, nil
}

func determineConnectionType(server client.ServerInfo) error {
if strings.Contains(server.Addr, ":") && isValidTCPAddress(server.Addr) {
server.ConnectionType = client.Protocol_TCP
return nil
}
if strings.HasPrefix(server.Addr, "/") {
server.ConnectionType = client.Protocol_UNIX
return nil
}

return fmt.Errorf("unsupported connection type: %s", server.Addr)

}
func isValidTCPAddress(addr string) bool {
host, port, err := net.SplitHostPort(addr)
if err != nil || host == "" || port == "" {
return false
}
if _, err := net.LookupPort("tcp", port); err != nil {
return false
}

return true
}

0 comments on commit 866bca3

Please sign in to comment.