aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tunnel/service.go
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--tunnel/service.go16
1 files changed, 14 insertions, 2 deletions
diff --git a/tunnel/service.go b/tunnel/service.go
index 2dbfff9c..dbaa3133 100644
--- a/tunnel/service.go
+++ b/tunnel/service.go
@@ -30,11 +30,11 @@ import (
"golang.zx2c4.com/wireguard/windows/version"
)
-type Service struct {
+type tunnelService struct {
Path string
}
-func (service *Service) Execute(args []string, r <-chan svc.ChangeRequest, changes chan<- svc.Status) (svcSpecificEC bool, exitCode uint32) {
+func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest, changes chan<- svc.Status) (svcSpecificEC bool, exitCode uint32) {
changes <- svc.Status{State: svc.StartPending}
var dev *device.Device
@@ -241,3 +241,15 @@ func (service *Service) Execute(args []string, r <-chan svc.ChangeRequest, chang
}
}
}
+
+func Run(confPath string) error {
+ name, err := conf.NameFromPath(confPath)
+ if err != nil {
+ return err
+ }
+ serviceName, err := services.ServiceNameOfTunnel(name)
+ if err != nil {
+ return err
+ }
+ return svc.Run(serviceName, &tunnelService{confPath})
+}