summaryrefslogtreecommitdiffhomepage
path: root/main.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2018-05-04 19:50:08 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2018-05-04 19:50:08 +0200
commit0f322f83f5a920f89a9293e4dc48efc27e4acbac (patch)
tree5aeebf491ace5c82e1e5367dd451776f4be1c597 /main.go
parenta040786645ec980059937fd6a1a361b160c1a809 (diff)
warning: put into main
Diffstat (limited to 'main.go')
-rw-r--r--main.go45
1 files changed, 41 insertions, 4 deletions
diff --git a/main.go b/main.go
index 4b8299a..41231bf 100644
--- a/main.go
+++ b/main.go
@@ -9,6 +9,7 @@ import (
"fmt"
"os"
"os/signal"
+ "runtime"
"strconv"
)
@@ -18,8 +19,8 @@ const (
)
const (
- ENV_WG_TUN_FD = "WG_TUN_FD"
- ENV_WG_UAPI_FD = "WG_UAPI_FD"
+ ENV_WG_TUN_FD = "WG_TUN_FD"
+ ENV_WG_UAPI_FD = "WG_UAPI_FD"
ENV_WG_PROCESS_FOREGROUND = "WG_PROCESS_FOREGROUND"
)
@@ -28,9 +29,45 @@ func printUsage() {
fmt.Printf("%s [-f/--foreground] INTERFACE-NAME\n", os.Args[0])
}
-func main() {
+func warning() {
+ shouldQuit := false
+
+ fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING")
+ fmt.Fprintln(os.Stderr, "W G")
+ fmt.Fprintln(os.Stderr, "W This is alpha software. It will very likely not G")
+ fmt.Fprintln(os.Stderr, "W do what it is supposed to do, and things may go G")
+ fmt.Fprintln(os.Stderr, "W horribly wrong. You have been warned. Proceed G")
+ fmt.Fprintln(os.Stderr, "W at your own risk. G")
+ if runtime.GOOS == "linux" {
+ shouldQuit = os.Getenv("WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD") != "1"
+
+ fmt.Fprintln(os.Stderr, "W G")
+ fmt.Fprintln(os.Stderr, "W Furthermore, you are running this software on a G")
+ fmt.Fprintln(os.Stderr, "W Linux kernel, which is probably unnecessary and G")
+ fmt.Fprintln(os.Stderr, "W foolish. This is because the Linux kernel has G")
+ fmt.Fprintln(os.Stderr, "W built-in first class support for WireGuard, and G")
+ fmt.Fprintln(os.Stderr, "W this support is much more refined than this G")
+ fmt.Fprintln(os.Stderr, "W program. For more information on installing the G")
+ fmt.Fprintln(os.Stderr, "W kernel module, please visit: G")
+ fmt.Fprintln(os.Stderr, "W https://www.wireguard.com/install G")
+ if shouldQuit {
+ fmt.Fprintln(os.Stderr, "W G")
+ fmt.Fprintln(os.Stderr, "W If you still want to use this program, against G")
+ fmt.Fprintln(os.Stderr, "W the sage advice here, please first export this G")
+ fmt.Fprintln(os.Stderr, "W environment variable: G")
+ fmt.Fprintln(os.Stderr, "W WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1 G")
+ }
+ }
+ fmt.Fprintln(os.Stderr, "W G")
+ fmt.Fprintln(os.Stderr, "WARNING WARNING WARNING WARNING WARNING WARNING WARNING")
- Warning()
+ if shouldQuit {
+ os.Exit(1)
+ }
+}
+
+func main() {
+ warning()
// parse arguments