diff --git a/cmd/commands/service/command.go b/cmd/commands/service/command.go index 32e48d8529..fd4f6626b0 100644 --- a/cmd/commands/service/command.go +++ b/cmd/commands/service/command.go @@ -28,7 +28,6 @@ import ( service_noop "github.com/mysteriumnetwork/node/services/noop" service_openvpn "github.com/mysteriumnetwork/node/services/openvpn" openvpn_service "github.com/mysteriumnetwork/node/services/openvpn/service" - service_wireguard "github.com/mysteriumnetwork/node/services/wireguard" "github.com/urfave/cli" ) @@ -151,16 +150,10 @@ func registerFlags(flags *[]cli.Flag) { } func parseFlagsByServiceType(ctx *cli.Context, serviceType string) (service.Options, error) { - switch serviceType { - case service_noop.ServiceType: - return parseNoopFlags(ctx), nil - case service_openvpn.ServiceType: - return parseOpenvpnFlags(ctx), nil - case service_wireguard.ServiceType: - return parseWireguardFlags(ctx), nil - default: - return service.Options{}, fmt.Errorf("Unknown service type: %q", serviceType) + if f, ok := serviceTypesFlagsParser[serviceType]; ok { + return f(ctx), nil } + return service.Options{}, fmt.Errorf("Unknown service type: %q", serviceType) } // parseOpenvpnFlags function fills in openvpn options from CLI context @@ -182,15 +175,6 @@ func parseNoopFlags(ctx *cli.Context) service.Options { } } -// parseWireguardFlags function fills in wireguard service options from CLI context -func parseWireguardFlags(ctx *cli.Context) service.Options { - return service.Options{ - Identity: ctx.String(identityFlag.Name), - Passphrase: ctx.String(identityPassphraseFlag.Name), - Type: service_wireguard.ServiceType, - } -} - func printTermWarning(licenseCommandName string) { fmt.Println(metadata.VersionAsSummary(metadata.LicenseCopyright( "run program with 'myst "+licenseCommandName+" --"+license.LicenseWarrantyFlag.Name+"' option", diff --git a/cmd/commands/service/serviceTypes.go b/cmd/commands/service/serviceTypes.go index 2f7eb959ad..8580c3548e 100644 --- a/cmd/commands/service/serviceTypes.go +++ b/cmd/commands/service/serviceTypes.go @@ -1,4 +1,4 @@ -// +build !linux +// +build !linux linux,android /* * Copyright (C) 2017 The "MysteriumNetwork/node" Authors. @@ -19,7 +19,19 @@ package service +import ( + "github.com/mysteriumnetwork/node/core/service" + service_noop "github.com/mysteriumnetwork/node/services/noop" + service_openvpn "github.com/mysteriumnetwork/node/services/openvpn" + "github.com/urfave/cli" +) + var ( serviceTypesAvailable = []string{"openvpn", "noop"} serviceTypesEnabled = []string{"openvpn", "noop"} + + serviceTypesFlagsParser = map[string]func(ctx *cli.Context) service.Options{ + service_noop.ServiceType: parseNoopFlags, + service_openvpn.ServiceType: parseOpenvpnFlags, + } ) diff --git a/cmd/commands/service/serviceTypes_linux.go b/cmd/commands/service/serviceTypes_linux.go index 8aad7df8a6..7bf4133702 100644 --- a/cmd/commands/service/serviceTypes_linux.go +++ b/cmd/commands/service/serviceTypes_linux.go @@ -1,3 +1,5 @@ +// +build linux,!android + /* * Copyright (C) 2017 The "MysteriumNetwork/node" Authors. * @@ -17,7 +19,30 @@ package service +import ( + "github.com/mysteriumnetwork/node/core/service" + service_noop "github.com/mysteriumnetwork/node/services/noop" + service_openvpn "github.com/mysteriumnetwork/node/services/openvpn" + service_wireguard "github.com/mysteriumnetwork/node/services/wireguard" + "github.com/urfave/cli" +) + var ( serviceTypesAvailable = []string{"openvpn", "wireguard", "noop"} serviceTypesEnabled = []string{"openvpn", "noop"} + + serviceTypesFlagsParser = map[string]func(ctx *cli.Context) service.Options{ + service_noop.ServiceType: parseNoopFlags, + service_openvpn.ServiceType: parseOpenvpnFlags, + service_wireguard.ServiceType: parseWireguardFlags, + } ) + +// parseWireguardFlags function fills in wireguard service options from CLI context +func parseWireguardFlags(ctx *cli.Context) service.Options { + return service.Options{ + Identity: ctx.String(identityFlag.Name), + Passphrase: ctx.String(identityPassphraseFlag.Name), + Type: service_wireguard.ServiceType, + } +} diff --git a/cmd/connections_register.go b/cmd/connections_register.go new file mode 100644 index 0000000000..aeb77b72ab --- /dev/null +++ b/cmd/connections_register.go @@ -0,0 +1,36 @@ +// +build !android + +/* + * Copyright (C) 2018 The "MysteriumNetwork/node" Authors. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package cmd + +import ( + "github.com/mysteriumnetwork/node/core/node" + service_wireguard "github.com/mysteriumnetwork/node/services/wireguard" +) + +func (di *Dependencies) registerConnections(nodeOptions node.Options) { + di.registerOpenvpnConnection(nodeOptions) + di.registerNoopConnection() + di.registerWireguardConnection() +} + +func (di *Dependencies) registerWireguardConnection() { + service_wireguard.Bootstrap() + di.ConnectionRegistry.Register(service_wireguard.ServiceType, service_wireguard.NewConnectionCreator()) +} diff --git a/cmd/connections_register_android.go b/cmd/connections_register_android.go new file mode 100644 index 0000000000..31ef7e7b55 --- /dev/null +++ b/cmd/connections_register_android.go @@ -0,0 +1,29 @@ +// +build android + +/* + * Copyright (C) 2018 The "MysteriumNetwork/node" Authors. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package cmd + +import ( + "github.com/mysteriumnetwork/node/core/node" +) + +func (di *Dependencies) registerConnections(nodeOptions node.Options) { + di.registerOpenvpnConnection(nodeOptions) + di.registerNoopConnection() +} diff --git a/cmd/di.go b/cmd/di.go index 0849d894b4..efa0a9657d 100644 --- a/cmd/di.go +++ b/cmd/di.go @@ -50,7 +50,6 @@ import ( dto_discovery "github.com/mysteriumnetwork/node/service_discovery/dto" service_noop "github.com/mysteriumnetwork/node/services/noop" service_openvpn "github.com/mysteriumnetwork/node/services/openvpn" - service_wireguard "github.com/mysteriumnetwork/node/services/wireguard" "github.com/mysteriumnetwork/node/session" "github.com/mysteriumnetwork/node/tequilapi" tequilapi_endpoints "github.com/mysteriumnetwork/node/tequilapi/endpoints" @@ -133,12 +132,6 @@ func (di *Dependencies) Bootstrap(nodeOptions node.Options) error { return nil } -func (di *Dependencies) registerConnections(nodeOptions node.Options) { - di.registerOpenvpnConnection(nodeOptions) - di.registerNoopConnection() - di.registerWireguardConnection() -} - func (di *Dependencies) registerOpenvpnConnection(nodeOptions node.Options) { service_openvpn.Bootstrap() connectionFactory := service_openvpn.NewProcessBasedConnectionFactory( @@ -157,11 +150,6 @@ func (di *Dependencies) registerNoopConnection() { di.ConnectionRegistry.Register(service_noop.ServiceType, service_noop.NewConnectionCreator()) } -func (di *Dependencies) registerWireguardConnection() { - service_wireguard.Bootstrap() - di.ConnectionRegistry.Register(service_wireguard.ServiceType, service_wireguard.NewConnectionCreator()) -} - // Shutdown stops container func (di *Dependencies) Shutdown() (err error) { var errs []error diff --git a/cmd/service_bootstrap_desktop.go b/cmd/service_bootstrap_desktop.go index 4d9294f684..b4f7ab0d8f 100644 --- a/cmd/service_bootstrap_desktop.go +++ b/cmd/service_bootstrap_desktop.go @@ -1,4 +1,4 @@ -// +build darwin windows linux +// +build darwin windows linux,!android /* * Copyright (C) 2018 The "MysteriumNetwork/node" Authors.