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