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.