diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-03 04:04:41 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2019-03-03 05:00:40 +0100 |
commit | 69f0fe67b63d90e523a5a1241fb1b46c2e8dbe03 (patch) | |
tree | 1ef86da3242afde462dcadb7241bb09f499d5bd7 /uapi_windows.go | |
parent | d435be35cac49af9367b2005d831d55e570c4b1b (diff) | |
download | wireguard-go-69f0fe67b63d90e523a5a1241fb1b46c2e8dbe03.tar.gz wireguard-go-69f0fe67b63d90e523a5a1241fb1b46c2e8dbe03.zip |
global: begin modularization
Diffstat (limited to 'uapi_windows.go')
-rw-r--r-- | uapi_windows.go | 76 |
1 files changed, 0 insertions, 76 deletions
diff --git a/uapi_windows.go b/uapi_windows.go deleted file mode 100644 index 64917f5..0000000 --- a/uapi_windows.go +++ /dev/null @@ -1,76 +0,0 @@ -/* SPDX-License-Identifier: MIT - * - * Copyright (C) 2017-2019 WireGuard LLC. All Rights Reserved. - */ - -package main - -import ( - "github.com/Microsoft/go-winio" - "net" -) - -//TODO: replace these with actual standard windows error numbers from the win package -const ( - ipcErrorIO = -int64(5) - ipcErrorProtocol = -int64(71) - ipcErrorInvalid = -int64(22) - ipcErrorPortInUse = -int64(98) -) - -type UAPIListener struct { - listener net.Listener // unix socket listener - connNew chan net.Conn - connErr chan error - kqueueFd int - keventFd int -} - -func (l *UAPIListener) Accept() (net.Conn, error) { - for { - select { - case conn := <-l.connNew: - return conn, nil - - case err := <-l.connErr: - return nil, err - } - } -} - -func (l *UAPIListener) Close() error { - return l.listener.Close() -} - -func (l *UAPIListener) Addr() net.Addr { - return l.listener.Addr() -} - -func UAPIListen(name string) (net.Listener, error) { - config := winio.PipeConfig{ - SecurityDescriptor: "", //TODO: we want this to be a very locked down pipe. - } - listener, err := winio.ListenPipe("\\\\.\\pipe\\wireguard\\"+name, &config) //TODO: choose sane name. - if err != nil { - return nil, err - } - - uapi := &UAPIListener{ - listener: listener, - connNew: make(chan net.Conn, 1), - connErr: make(chan error, 1), - } - - go func(l *UAPIListener) { - for { - conn, err := l.listener.Accept() - if err != nil { - l.connErr <- err - break - } - l.connNew <- conn - } - }(uapi) - - return uapi, nil -} |