Cunicu Versions Save

A zeroconf peer-to-peer mesh VPN using Wireguard® and Interactive Connectivity Establishment (ICE)

v0.1.0

1 year ago

Changelog

  • 82ca0f4 add WireGuard trademark notice
  • 97e84b8 add extra variable for passing pass-through options to ginkgo
  • 855241f add missing build constraint
  • 2c26f57 add naming section to readme
  • 1bac651 add new cunico logo
  • 3ed24ba add package-level descriptions
  • af79c2d add script to download and install wice
  • ecced2e add some support for wg-quick configuration of addresses and MTU
  • 1c25f0b add support for kProbe/eBPF-based WireGuard handshake tracing
  • c22f081 add util.MapSlice()
  • cefd18d allow passing format string for WireGuard interface AddressIP()
  • 3ffae43 auto: do not register handle twice
  • 84025c4 cfgsync: also configure newly created devices
  • 7d20fa9 cfgsync: implement new Syncable interface
  • fda9bc4 cfgsync: use interface filter to ignore interfaces we are not interested in
  • 7f8e27b ci: add more Ginkgo options
  • 84b159d ci: all all tests as root
  • 6af087b ci: also publish Docker manifest with latest tag
  • 865939e ci: build also for Windows
  • 777fca3 ci: build for FreeBSD but drop ARMv6 and ARM 32-bit builds on Windows
  • 995d1ab ci: disable 32bit builds as they are still broken in Go 1.19.1
  • e253c11 ci: disable broken tests on windows
  • c9b0fb2 ci: disable builds on 32-bit arm due to Go compiler bug
  • 47d4999 ci: do not publish non-package files to Gemfury
  • 2f474af ci: explicity list all build variants
  • 43e268e ci: fix Docker manifest generation
  • fe0c8fc ci: fix Docker manifest tag
  • cabc964 ci: fix build
  • d7f748f ci: fix build
  • dfbc3e1 ci: fix build workflow
  • d9f7a4a ci: fix path to e2e test logs
  • 4894126 ci: fix test execution on windows without sudo
  • 8442ddb ci: fix tests
  • 97436d1 ci: fix typo in Docker image name
  • 3b86a5a ci: ignore autogenerated files in codecov reports
  • 8a7a158 ci: upload FPM packages to GemFury
  • 9ecd325 ci: use correct version of setup-go action
  • 4b71e48 ci: use matrix to run CI builds for other GOOS and GOARCHs
  • e67bd64 close Fanout channels properly
  • e5f2fda cmd: add 'wg showconf' command and improve documentation of others wg commands
  • 2ae9531 cmd: add command line options for addresses command
  • ab36f86 cmd: add restart command
  • dfaf956 cmd: allow filtering interfaces and peers in status command
  • 273d2ee cmd: fix wice stop command
  • 7f693af cmd: harmonize color handling in output
  • 02f700e cmd: improve shell completion
  • 0edcddb cmd: merge main.go to root.go
  • 41e113b cmd: refactor some variable names
  • 3dad13d cmd: remove many of the advanced configuration options from the CLI to the config file
  • 2b08a4c cmd: remove unnecessary use of fmt.Sprintf
  • 9a16a31 cmd: rename trace_handshakes and add it as a wg sub-command
  • 10db581 cmd: rework wg subcommands and add full compatability for 'wg show'
  • a5c90ff colorize connection state
  • 2578dae config: add new command line flag for hosts sync feature
  • e73f9d2 config: add new variable for WireGuard default config path
  • 84862a9 config: add some preliminary support to get/set configuration settings via RPCs
  • 7bbac75 config: check configuration for plausability
  • 7623947 config: cleanup and removal of unused settings
  • f203d24 config: do not treat Windows style filenames are URLs for remote config fetching
  • 158297a config: fix tests on Windows
  • ac62e72 config: only overwrite interfaces if there is at least one provided on the command line
  • 6a80df8 config: only use YAML config files
  • 192141b config: set missing default values
  • 700a795 config: use our own HTTP user-agent for configuration lookups
  • ee11759 core: add Peer.SetPresharedKey()
  • f0fc2ca core: fix wrong constant values for list lengths
  • a4c292f core: removed test case which is already covered by device and watcher test suites
  • 3f7dac6 core: use pointers to reference structs from wgtypes package
  • 80c28f4 crypto: remove usused function
  • ded5199 daemon: close features during shutddown
  • 4cf6d4c daemon: close stale user sockets
  • 6a28861 daemon: write loaded configuration with debug level to log
  • f888b48 device: add stub for windows
  • ede4582 device: add support for getting/setting MTU on BSDs
  • 5dca738 device: do not delete TUN device on shutdown
  • 19d8d4f device: finish FreeBSD kernel device support
  • e1af79a device: fix race condition during creation of new interfaces
  • f9ac242 device: limit ourself to FreeBSD and Darwin BSD-variants for now
  • 34a4ec6 do not create logs dir via Makefile anymore
  • 7aacfc3 do not initialize global variable explicitly with zero value
  • 4e00ba0 do not run Gont-based tests on non-linux platforms
  • d51c8c0 docker: fix entrypoint
  • 54e1fba docker: move installation of build-time dependencies from Docker- to Makefile
  • b1ac358 enable config_sync and route_sync features by default
  • d3f3c1e epdisc: use back-off to resend credentials periodically until we receive a reply from our peer
  • 580ce97 epice: add more state for status CLI command
  • 8ed263e epice: add support for in-process bind networking between Pion ICE and WireGuard-go connections
  • c4653dd epice: problery handle changes of listen-port, private-key and endpoints
  • 29039a1 epice: provide more detailed proxy type info for kernel-based proxying
  • ca0c8c2 epice: save Mux ports
  • b2fa127 first batch of project name changes
  • 4c29c6a fix CI builds and test
  • a8d7901 fix CI tests and quite a lot of races
  • b6010b3 fix Makefile
  • f4ae639 fix a bunch more Codacy warnings
  • 017d3ca fix a bunch of code quality issues detected by Codacy
  • b791b0b fix and test self-update feature
  • aefade5 fix circular dependency
  • 8b934e2 fix crossplatform compatability
  • 6b224fb fix default config file and added a regression test for it
  • ab8f48c fix docs for wg handshake extraction
  • f53b97e fix example configuration file
  • 8ab8683 fix invalid Google STUN URL
  • c2302a6 fix leaking resources in cancelled gRPC streams
  • 3956fec fix logger tests
  • 6092ded fix loop alias
  • 2b5cd5d fix more quality issues detected by Codacy
  • 1395ee2 fix nil dereferences
  • bc7349e fix package level comments
  • aa12875 fix several panics
  • ac626a1 fix some warnings raised by Bash-script linter
  • 7eb4a9a fix spelling of WireGuard
  • 2c7cc2c fix typo in Makefile
  • 5bc3f2a fix variable name
  • f6c1ade fix version check in installer script
  • ce93f14 fixup protogen
  • 140fe67 ginkgo: remove -r which is not required
  • ac4ee61 grpc: add missing TLS transport security and option to skip certificate validation
  • b10b120 grpc: add support for SSLKEYLOGFILE
  • de52d9c grpc: reduce keepalive ping interval to quicker detect broken channels
  • 0bdfc4e grpc: support graceful shutdown
  • 5188eaf handle more errors
  • 25e781c harmonization of comments and log outputs
  • 6b910e0 harmonize handling of OS-level signals
  • 546ebf7 harmonize log output
  • 91e4648 harmonize names of feature loggers
  • 2be9f65 hooks: add support for web- and subprocess hooks which are triggered by common events
  • b88a6eb hooks: fix CI tests
  • bd6f234 hsync: implement Syncable interface
  • 29569bc ice: update custom connection states
  • 1fe9a31 improve buildinfo handling and add new RPCs for retrieving versions
  • 3bd8cec improve debug log output
  • e129a53 increase IPv4/IPV6 neighbour discovery GC thresholds for larger test networks
  • eee96e7 introduce new Feature interface
  • 85ae253 k8s: fix test of Kubernetes backend
  • 76d7960 log: add support for per-logger verbosity levels
  • db3b29f log: improve color mode and add unit tests
  • 8ad1c76 lookup: properly deconstruct mocking DNS server
  • 8178458 minor fixes to installer script
  • 7e7a38f miscelaneous fixes and cleanups
  • 434c92f more fixes and refactoring
  • 42e7704 move IsControlling from epice to core as its also used by other features
  • 4092e0f move cmd package again to subdir
  • c96b1eb move entrypoint to root folder to simplify installation
  • f3c4747 overhaul connection state handling
  • ddbd577 pdisc: add first version of peer discovery
  • ba13b76 pdisc: add support for whitelisting accepted peers
  • 2467bef pdisc: move community setting into peer_disc section
  • 99225a2 proto: add missing PSKE definitions
  • 7136b75 proxy: fix panics in new proxy code for relayed candidates
  • 099af6d proxy: set write deadline before Conn.Close() to avoid blocking
  • a38bdb6 proxy: stop goroutine on closed connection
  • 4fc71e0 re-enable host-sync for peers without name
  • 31010a5 re-generate protobuf code
  • 894e4b0 refactor "binary" to "binaryPath" in order to avoid collission with binary package
  • eceebc6 refactor WoreGuard device creation/deletion
  • 623a53e refactor initialization of features
  • d32c3e0 remove build constraint from e2e tests
  • 4cd6ab2 remove direct dependency on vishvanada/netns package
  • f1193ec remove explicit .String() getters where not required
  • 0693139 remove most of the C eBPF helper code which we dont need
  • 0ad1c6d remove some broken and outdated tests
  • 9bfa00b remove unused EventLogger
  • 494e804 remove unused code
  • cfcd9fd remove unused util.IndexSlice() function
  • 40641dd rename main package from pkg to wice
  • 2084c1b replace ctxhttp by standard http package
  • 92b4372 replace deprecrated ioutil package
  • 36829e8 restructure features and split-out proto files into top-level dir
  • 0f65eb3 return struct not interface
  • 95eaf78 reworked tests
  • 2da5a8a rewrite status command
  • 631f164 route_sync: support IPv4 routes and improve cleanup
  • d6f0b3b rpc: add Syncable interface
  • a4a4874 rpc: close event stream subscriptions before graceful shutdown
  • a94dc94 rpc: do not listen on TCP socket
  • b25a5f0 rpc: minor refactoring
  • b5ae87b rpc: refactor Socket to Daemon
  • e8c9091 rpc: refactor naming from "socket" to "rpc"
  • 4af8ba3 rpc: remove empty message types
  • 23b5b05 rpc: remove unused interceptors
  • 20238c2 rpc: removed watcher server and moved its methods to the daemon server
  • c6df0dc rpc: use gRPC status and error codes instead of our own
  • 311e865 rtsync: add setting to disable watching of kernel route tables
  • 628ef05 rtsync: implement Syncable interface
  • 946518d rtsync: support configuration of routing table
  • 6727700 second batch of project name changes
  • 3f72b60 shorten feature names
  • 0d1e5ec signalling: fix use of wrong key for unsubscribe
  • 72dc2ef simplify and fix shutdown of daemon
  • feb484c simplify declaration of equally typed constants
  • a3faae6 start endpoint discovery last
  • 341c72d start working on website
  • 65405cd switch from github.com/google/gopacket to github.com/gopacket/gopacket
  • fd87d5b tests: propagate -coverpkg flag to test binary
  • b723c83 update Go dependencies
  • dad8d59 update Go module path
  • 5818ca3 update Gont version
  • 757098f update RPC marshaling
  • b45c571 update dependencies
  • c25f52c update dependencies and Go to 1.19
  • 3837043 update generated protobuf code
  • 1f92ad6 update generated usage docs
  • 1c0f515 update gitignore
  • af3382b update gitignore
  • 417f5c7 update go.sum file
  • 669ec02 updates state diagram of ICE connection state
  • 326d9ac upgrade to gont v1.1.1
  • b40dc8e upload artifacts when e2e tests have been run
  • c25a21f use atomic package from std
  • ac1e4bd use filepath.Join() instead of path.Join()
  • cc4d9f9 use other package for Siphash which is more supported and has nativ ARM support
  • 906a87a use system default for temporary directories
  • 660bf21 util: add AtomicEnum
  • bda3d43 util: add ContainsNet()
  • 95f78d5 util: fix error formatting of SetSysctlMap()
  • 4391add util: fix tests
  • 0c58462 util: move indenter and ansistripper to terminal package
  • 6a508d4 util: remove parameter to disable colorization of output and use ANSIStripper instead
  • e36ec54 util: remove unused code
  • 83dddfe watcher: allow for a more generic interface filter callback
  • 3fca8e2 watcher: do not run initial sync in background
  • 6c39244 watcher: fix all handler which was not called for modified peers
  • 6819ce3 watcher: fix and improve unit test case
  • f5cea6d watcher: fix handler registration
  • 108a621 watcher: fix tests
  • 69fbd32 watcher: use mutex to protect concurrent access to interface list
  • df8cbd0 website: add GitHub workflows
  • 2da5d48 website: initial version
  • 5045e55 wg: do not fail on missing dirs/sockets for socket cleanup
  • fd65113 wg: do not walk directory recursively during socket cleanup
  • 8aa880d wg: fix generation of WireGuard config files
  • 02857e1 wg: fix missing peers in 'wg show' command
  • f10e4f4 wg: move device list to wg package
  • 410756f windows portability fixes
  • d720574 yet another fix for wrong constants of the interface/peer modifiers