From 6f76edd045e20435689d9e1a3dd221b40b49adc6 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 4 Feb 2019 17:29:52 +0100 Subject: Import windows scafolding --- main_windows.go | 86 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 main_windows.go (limited to 'main_windows.go') diff --git a/main_windows.go b/main_windows.go new file mode 100644 index 0000000..f6a0b88 --- /dev/null +++ b/main_windows.go @@ -0,0 +1,86 @@ +/* SPDX-License-Identifier: MIT + * + * Copyright (C) 2017-2019 WireGuard LLC. All Rights Reserved. + */ + +package main + +import ( + "fmt" + "git.zx2c4.com/wireguard-go/tun" + "os" + "os/signal" +) + +const ( + ExitSetupSuccess = 0 + ExitSetupFailed = 1 +) + +func main() { + + if len(os.Args) != 1 { + os.Exit(ExitSetupFailed) + } + //configFile := os.Args[1] + interfaceName := "TODO" + + logger := NewLogger( + LogLevelDebug, + fmt.Sprintf("(%s) ", interfaceName), + ) + logger.Info.Println("Starting wireguard-go version", WireGuardGoVersion) + logger.Debug.Println("Debug log enabled") + + tun, err := tun.CreateTUN(interfaceName) + if err == nil { + realInterfaceName, err2 := tun.Name() + if err2 == nil { + interfaceName = realInterfaceName + } + } else { + logger.Error.Println("Failed to create TUN device:", err) + os.Exit(ExitSetupFailed) + } + + device := NewDevice(tun, logger) + logger.Info.Println("Device started") + + uapi, err := UAPIListen(interfaceName) + if err != nil { + logger.Error.Println("Failed to listen on uapi socket:", err) + os.Exit(ExitSetupFailed) + } + + errs := make(chan error) + term := make(chan os.Signal, 1) + + go func() { + for { + conn, err := uapi.Accept() + if err != nil { + errs <- err + return + } + go ipcHandle(device, conn) + } + }() + logger.Info.Println("UAPI listener started") + + // wait for program to terminate + + signal.Notify(term, os.Interrupt) + + select { + case <-term: + case <-errs: + case <-device.Wait(): + } + + // clean up + + uapi.Close() + device.Close() + + logger.Info.Println("Shutting down") +} -- cgit v1.2.3-59-g8ed1b