diff --git a/backend/backendutil/application.go b/backend/backendutil/application.go index c6797ce..f9fead0 100644 --- a/backend/backendutil/application.go +++ b/backend/backendutil/application.go @@ -1,7 +1,6 @@ package backendutil import ( - "fmt" "net" "os" @@ -35,21 +34,15 @@ func (helper *BackendApplicationHelper) Start() error { log.Debug("Sucessfully connected") for { - commandType, commandRaw, err := commonbackend.Unmarshal(helper.socket) + _, commandRaw, err := commonbackend.Unmarshal(helper.socket) if err != nil { return err } - switch commandType { - case "start": - command, ok := commandRaw.(*commonbackend.Start) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - ok, err = helper.Backend.StartBackend(command.Arguments) + switch command := commandRaw.(type) { + case *commonbackend.Start: + ok, err := helper.Backend.StartBackend(command.Arguments) var ( message string @@ -78,13 +71,7 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "backendStatusRequest": - _, ok := commandRaw.(*commonbackend.BackendStatusRequest) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.BackendStatusRequest: ok, err := helper.Backend.GetBackendStatus() var ( @@ -114,14 +101,8 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "stop": - _, ok := commandRaw.(*commonbackend.Stop) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - ok, err = helper.Backend.StopBackend() + case *commonbackend.Stop: + ok, err := helper.Backend.StopBackend() var ( message string @@ -150,14 +131,8 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "addProxy": - command, ok := commandRaw.(*commonbackend.AddProxy) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - ok, err = helper.Backend.StartProxy(command) + case *commonbackend.AddProxy: + ok, err := helper.Backend.StartProxy(command) var hasAnyFailed bool if !ok { @@ -185,14 +160,8 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "removeProxy": - command, ok := commandRaw.(*commonbackend.RemoveProxy) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - ok, err = helper.Backend.StopProxy(command) + case *commonbackend.RemoveProxy: + ok, err := helper.Backend.StopProxy(command) var hasAnyFailed bool if !ok { @@ -220,13 +189,7 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "proxyConnectionsRequest": - _, ok := commandRaw.(*commonbackend.ProxyConnectionsRequest) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.ProxyConnectionsRequest: connections := helper.Backend.GetAllClientConnections() serverParams := &commonbackend.ProxyConnectionsResponse{ @@ -243,13 +206,7 @@ func (helper *BackendApplicationHelper) Start() error { if _, err = helper.socket.Write(byteData); err != nil { return err } - case "checkClientParameters": - command, ok := commandRaw.(*commonbackend.CheckClientParameters) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.CheckClientParameters: resp := helper.Backend.CheckParametersForConnections(command) resp.Type = "checkParametersResponse" resp.InResponseTo = "checkClientParameters" @@ -263,13 +220,7 @@ func (helper *BackendApplicationHelper) Start() error { if _, err = helper.socket.Write(byteData); err != nil { return err } - case "checkServerParameters": - command, ok := commandRaw.(*commonbackend.CheckServerParameters) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.CheckServerParameters: resp := helper.Backend.CheckParametersForBackend(command.Arguments) resp.Type = "checkParametersResponse" resp.InResponseTo = "checkServerParameters" @@ -283,6 +234,8 @@ func (helper *BackendApplicationHelper) Start() error { if _, err = helper.socket.Write(byteData); err != nil { return err } + default: + log.Warnf("Unsupported command recieved: %T", command) } } } diff --git a/backend/build.sh b/backend/build.sh index 413455a..cee4440 100755 --- a/backend/build.sh +++ b/backend/build.sh @@ -14,12 +14,12 @@ echo "building externalbackendlauncher" go build -ldflags="-s -w" -trimpath . popd > /dev/null -pushd sshappbackend/remote-code > /dev/null -echo "building sshappbackend/remote-code" -if [ ! -d bin ]; then - mkdir bin +if [ ! -d "sshappbackend/local-code/remote-bin" ]; then + mkdir "sshappbackend/local-code/remote-bin" fi +pushd sshappbackend/remote-code > /dev/null +echo "building sshappbackend/remote-code" # Disable dynamic linking by disabling CGo. # We need to make the remote code as generic as possible, so we do this echo " - building for arm64" diff --git a/backend/sshappbackend/remote-code/backendutil_custom/application.go b/backend/sshappbackend/remote-code/backendutil_custom/application.go index 6d46a7b..e058648 100644 --- a/backend/sshappbackend/remote-code/backendutil_custom/application.go +++ b/backend/sshappbackend/remote-code/backendutil_custom/application.go @@ -1,7 +1,6 @@ package backendutil_custom import ( - "fmt" "net" "os" @@ -37,21 +36,15 @@ func (helper *BackendApplicationHelper) Start() error { log.Debug("Sucessfully connected") for { - commandType, commandRaw, err := datacommands.Unmarshal(helper.socket) + _, commandRaw, err := datacommands.Unmarshal(helper.socket) if err != nil && err.Error() != "couldn't match command ID" { return err } - switch commandType { - case "proxyConnectionsRequest": - proxyConnectionRequest, ok := commandRaw.(*datacommands.ProxyConnectionsRequest) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - connections := helper.Backend.GetAllClientConnections(proxyConnectionRequest.ProxyID) + switch command := commandRaw.(type) { + case *datacommands.ProxyConnectionsRequest: + connections := helper.Backend.GetAllClientConnections(command.ProxyID) serverParams := &datacommands.ProxyConnectionsResponse{ Type: "proxyConnectionsResponse", @@ -67,14 +60,8 @@ func (helper *BackendApplicationHelper) Start() error { if _, err = helper.socket.Write(byteData); err != nil { return err } - case "removeProxy": - command, ok := commandRaw.(*datacommands.RemoveProxy) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - ok, err = helper.Backend.StopProxy(command) + case *datacommands.RemoveProxy: + ok, err := helper.Backend.StopProxy(command) var hasAnyFailed bool if !ok { @@ -100,21 +87,15 @@ func (helper *BackendApplicationHelper) Start() error { helper.socket.Write(responseMarshalled) default: - commandType, commandRaw, err := commonbackend.Unmarshal(helper.socket) + _, commandRaw, err := commonbackend.Unmarshal(helper.socket) if err != nil { return err } - switch commandType { - case "start": - command, ok := commandRaw.(*commonbackend.Start) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - ok, err = helper.Backend.StartBackend(command.Arguments) + switch command := commandRaw.(type) { + case *commonbackend.Start: + ok, err := helper.Backend.StartBackend(command.Arguments) var ( message string @@ -143,14 +124,8 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "stop": - _, ok := commandRaw.(*commonbackend.Stop) - - if !ok { - return fmt.Errorf("failed to typecast") - } - - ok, err = helper.Backend.StopBackend() + case *commonbackend.Stop: + ok, err := helper.Backend.StopBackend() var ( message string @@ -179,13 +154,7 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "backendStatusRequest": - _, ok := commandRaw.(*commonbackend.BackendStatusRequest) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.BackendStatusRequest: ok, err := helper.Backend.GetBackendStatus() var ( @@ -215,13 +184,7 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "addProxy": - command, ok := commandRaw.(*commonbackend.AddProxy) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.AddProxy: id, ok, err := helper.Backend.StartProxy(command) var hasAnyFailed bool @@ -247,13 +210,7 @@ func (helper *BackendApplicationHelper) Start() error { } helper.socket.Write(responseMarshalled) - case "checkClientParameters": - command, ok := commandRaw.(*commonbackend.CheckClientParameters) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.CheckClientParameters: resp := helper.Backend.CheckParametersForConnections(command) resp.Type = "checkParametersResponse" resp.InResponseTo = "checkClientParameters" @@ -267,13 +224,7 @@ func (helper *BackendApplicationHelper) Start() error { if _, err = helper.socket.Write(byteData); err != nil { return err } - case "checkServerParameters": - command, ok := commandRaw.(*commonbackend.CheckServerParameters) - - if !ok { - return fmt.Errorf("failed to typecast") - } - + case *commonbackend.CheckServerParameters: resp := helper.Backend.CheckParametersForBackend(command.Arguments) resp.Type = "checkParametersResponse" resp.InResponseTo = "checkServerParameters" @@ -288,7 +239,7 @@ func (helper *BackendApplicationHelper) Start() error { return err } default: - log.Warn("Unsupported command recieved: %s", commandType) + log.Warnf("Unsupported command recieved: %T", command) } } }