Releases: cunicu/cunicu
Releases · cunicu/cunicu
v0.4.4
v0.3.3
v0.3.2
Changelog
- b01b619 Add section for installing cunicu via Nix flakes
- c7b80e6 Fix GitHub actions naming
- 962d7d1 Fix default ICE timer values
- 76d19e4 Fix log test
- 4f72931 Fix loop aliasing
- bf91683 Fix unused parameter warning
- 241f1d0 Harmonize capitalization of HTTP headers
- ff9a261 More improvements to logging
- 9f1161a More logging improvements
- 4f3d82f Perform graceful shutdown of GRPC signaling connection
- abf7ce8 Remove all codacy references
- 3db43c4 Remove codacy config
- ac17b71 Smaller logging improvements
- 4cdbc89 epdisc: Do not attempt to create an ICE connection until we have both local and remote candidates
- ce97e7d epdisc: Fix peer state machine
- 16edced epdisc: Simplify UDPMux setup
- 96d25c7 epdisc: update NAT rules on change of listen-port
- 778ac47 fix(deps): update github.com/gopacket/gopacket digest to 4472aec
- e96cce9 fix(deps): update golang.org/x/exp digest to 97b1e66
- e74310f fix(deps): update golang.zx2c4.com/wireguard digest to 1f25eac
- b7a9eab fix(deps): update module github.com/miekg/dns to v1.1.55
- 99bf91d fix(deps): update module github.com/pion/stun to v0.6.1
- 1311b50 fix(deps): update module google.golang.org/grpc to v1.56.1
- e67a2d0 ice: Remove unused interface type
- 43e0365 nat: Make NFConn member private
- 95602c5 website: Add mesh animation to banner
- 76853f5 website: Remove reference to Docusaurus from home page
- e0afaaf wg: Make bindPacketConn a private type
v0.3.1
Changelog
- 5c92c51 Add renovate.json
- d4c41f2 Add support for more terminal colors
- e26e46f Allow insecure config file permissions on windows
- c01e105 Change GitHub actions triggers
- 614e2d4 Disable Codacy analysis
- e26bece Disable depguard linter
- 9e572c3 Fix build of website
- 6fe3993 Fix config test for Windows
- 8e4961e Fix import order
- 7bea850 Fix indention in cunicu status sub-command
- b80bf78 Fix licenses and copyright for static website assets
- 491e0cf Fix linter warning
- c8e5858 Fix logging tests
- a5d41a2 Fix script to update vendorHash in Nix flake
- b9fbc86 Fix segfault in status sub-command
- 31deb81 Fix test for non-existing file path on Windows
- 54b9024 Fix wrong interface type in status sub-command
- ea019df Handle filenames starting with a Windows drive letter correctly
- a818943 Harmonize PeerState and ConnectionState usage
- 29a5bbd Implement custom logfmt-like encoder for zap
- c407b0a Implement log filter expressions to replace verbosity level
- 71af463 Install correct Ginkgo version
- 425a573 Make detection of read-only /etc/hosts more robust
- 154ef39 Make sure file is closed before the test terminates
- 88dd798 Misc logging improvements
- 8cac3ec Move nix packaging to nix folder and add missing license / copyright notices
- da8cc7c Reduce log verbosity
- 3350eeb Remove EONERC / RWTH logo due to unclear licensing conditions
- ca996c5 Remove duplicated test for non-existing config file paths
- 28b6203 Remove old codacy linter comments
- 06db99c Skip tests which are broken on Windows
- 88e3715 Update koanf to v2
- 6e0352c Update protobuf code with newer protoc-gen-go version
- 213f668 Update renovate bot config
- e502c32 Use Windows APIs to get DNS client config
- 8a35274 Use filepath instead of path package in order to use correct path seperation character on Windows
- 44e2c06 chore(deps): update actions/checkout action to v3
- c63b2fb chore(deps): update docker/setup-qemu-action action to v2
- 29e7b2f chore(deps): update goreleaser/goreleaser-action action to v4
- e24ee5d dist-nix: initial flake
- 48e2558 fix(deps): update dependency @cmfcmf/docusaurus-search-local to v1
- de8ba96 fix(deps): update dependency @mdx-js/react to v2
- 61b473c fix(deps): update dependency hast-util-is-element to v2
- d231786 fix(deps): update dependency prism-react-renderer to v2
- a428781 fix(deps): update dependency rehype-katex to v6
- 9d0f4e4 fix(deps): update dependency remark-math to v5
- 3cd8615 fix(deps): update github.com/gopacket/gopacket digest to 9e29b47
- a1059d5 fix(deps): update github.com/pion/zapion digest to 3bb052e
- d865eae fix(deps): update module github.com/imdario/mergo to v0.3.16
- 1d0fdd3 fix(deps): update module github.com/onsi/ginkgo/v2 to v2.10.0
- 2155f62 fix(deps): update module github.com/onsi/ginkgo/v2 to v2.9.7
- 7b797a7 fix(deps): update module github.com/onsi/gomega to v1.27.8
- ab0992b fix(deps): update module github.com/pion/ice/v2 to v2.3.7
- e493c56 fix(deps): update module github.com/pion/ice/v2 to v2.3.8
- 2058e50 fix(deps): update module golang.org/x/crypto to v0.10.0
- 39bf12b fix(deps): update module golang.org/x/sync to v0.3.0
- 3a7418b fix(deps): update module golang.org/x/sys to v0.9.0
- 1a27178 fix(deps): update module google.golang.org/grpc to v1.56.0
- 2816345 hsync: Disable /etc/hosts synchronization if file is not writable
v0.2.5
Changelog
- 102d260 autocfg: improve code comments
- 3cabad8 autocfg: only add new AllowedIPs for new peers if they have not been added via peer discovery
- 0b2a2f2 autocfg: prepare DetectMTU() to be aware of firewall mark
- 316d244 build(deps): bump loader-utils from 2.0.2 to 2.0.4 in /website
- a8f67be ci: use golangci-lint for linting
- d95374c cleanups
- d0fcce0 cmd: do not show usage on error
- 3dbe1d9 cmd: use the same validArgs function for multiple sub-commands
- 4e4faff compatability fixes for macOS
- db43312 config: allow filtering relays by protocol and security
- 1bce3b9 config: do not fail if we cant stat the current working directory
- f4d0e0f config: throw error if configuration file is world-readable
- c915d90 core: update peer settings only if required
- d206e96 daemon: do not attempt to create existing devices
- 9e4ef29 daemon: simplify feature registration
- ba20ab7 device: add Flags() getter
- 65a4303 device: add debug logging statements
- 3644945 device: fix MTU getter for BSDs
- 24c0c39 device: fix use of invalid member variable
- df17d64 device: fix windows and freebsd builds
- 89142cf device: harmonize variable names
- df18641 device: improve compatability with BSDs
- 7391bfc device: use run() wrapper everywhere
- c913f9a disable freebsd builds as we dont have a FreeBSD CI runner
- 5852243 do not use FQDN for hostname
- 538400f epdisc: add NAT_TYPE_NONE
- d118301 epdisc: be less verbose with logging
- f674cdf epdisc: fix package comment
- 396827b epdisc: fix return values of Pion ICE muxes
- 0bcffd6 epdisc: fix wrong serialization of candidates related address
- f39a300 epdisc: include relay protocol into protobuf candidate serialization
- a5326a4 epdisc: perform retries on agent creation with exponential backoff
- a9d68a8 epdisc: refactor Interface member of Peer struct
- 3dbe051 epdisc: refactor protoepdisc -> epdiscproto
- 3c05664 epdisc: reset state to closed if agent creation fails
- 57978d2 fi staticcheck warnings
- d6977f4 fix a bunch of unit tests
- 1b9e621 fix calculation of reachability status
- 06ffcfe fix codacy issues
- d2b82e0 fix codacy issues
- 7bf5411 fix codacy issues
- cce8cac fix indention
- b117f42 fix various small ToDos throughout the codebase
- b947a8f ice: restructure file
- f3bcd59 k8s: add missing error check
- 81a3fe9 log: improve logging context for peers
- bd09d97 log: use standard atomic package
- 0d3ec32 make hostname configurable via command line parameter
- 03de3b2 minor code refactoring
- 0e75b6e more codacy fixes
- 589b8c4 nat: fix libnftl comments
- b3c901b pdisc: make sure that the private key is set
- 2ea97f6 pdisc: properly update name and hosts of existing peers
- 40ebe94 pdisc: verify that peer description matches sender
- 2150548 proto: remove unused import
- bcf3173 proto: show more ICE stats in status sub-command
- 0d3f0c4 refactor: UpdateEndpoint() -> SetEndpoint()
- e2c3053 remove obsolete TODO
- e307dad rtsync: optimize initial sync and cross-platform support
- 6b677bc scripts: highlight API response
- 38d162c tidy-up go.mod
- 1010a19 tweak comments
- a3d8300 update Go dependencies
- 8633330 update dependencies
- 965a217 use pion/zapion module instead of our own Pion impl
- 00eb6f9 util: rename CmpEndpoint() to CmpUDPAddr()
- a895354 util: support more platforms for HasAdminPrivileges()
- d0f0474 util: use effective user id on BSDs
- 363510d wg: add support for detecting FreeBSD kernel support
- 8560637 wg: allow AllowedIP values without CIDR suffix
- f9bbbf1 wg: remove unused wg.DeviceList
v0.2.4
Changelog
v0.2.3
Changelog
- f271e25 adapt autocfg and pdisc features to new configuration
- 66361b4 add some code to set interface DNS servers
- 12b3273 add some logic to detect MTU for tunnel interfaces
- 4e91e76 aur: create directory for installing manpages
- bd4d409 autocfg: remove unused handler
- 6672ebf autocfg: show warning if no private key was set
- e5d9b3b build for more architectures
- 06299f9 cfgsync: move DNS configuration from core to cfgsync and add support for Systemd's resolvectl
- 98bee66 cfgsync: set DNS search domain
- eb57b4c cfgsync: start rewrite
- 3221fad ci: add missing GitHub token for Homebrew Taps
- e835c9a ci: build for go 1.19.2
- ee0c987 ci: fix packaging of man pages
- 2930458 ci: increase timeout
- 6a0e19f ci: remove obsolete comment
- 3bdbb54 ci: use dedicated PAT token for Homebrew Taps
- 46ad72e cmd: adapt address sub-command to new prefix based address generation
- 264604f cmd: add --mask option to addresses sub-command
- 4fc288e cmd: add cunicu banner to the daemon output and usage info
- 65149e4 cmd: improve argument completion
- f2de945 cmd: initial version of invite sub-command
- e5ad6b9 cmd: move reload sub-command to config.go
- 458354f cmd: show peer name in status sub-command
- 9a42107 cmd: use correct default output path for docs sub-command
- f665c82 config: add RPC command to reload config
- 631197e config: add koanf provider for wg/wg-quick configuration files
- 230e4fc config: add more settings for configuring basic interface settings
- 6b971b7 config: add new hostname setting and initialize it with system hostname by default
- f171081 config: add new settings to documentation and example config file
- 99623b3 config: add reload, watch and change detection logic
- 1eba500 config: added DiffConfig() to detect changes in configuration
- 8d96dea config: big rewrite and switch from viper to koanf
- 568594a config: do not fail if WireGuard config directory does not exist
- b0fffe6 config: fix serialization of stringable types
- 9a052ef config: make host sync domain configurable
- e0b52f8 config: move completions to main package
- da521c8 config: only use ICE URLs for ICE candidate types which require them
- 11ff735 config: refactored confmap koanf provider
- 2ea6fd1 config: remove private_key setting for now
- 5488849 config: rename --url argument to --ice-url
- 43f7d4d config: simplify config structure
- cca720d config: verify certificate for relay.cunicu.li
- 941e58b core: be less verbose in logs
- 83be452 crypto: add KeyPassphrase type to do automatic key derivation on unmarshaling
- 0248253 crypto: fix Key.IPAddress() for IPv4 prefixes
- 8960370 crypto: replace KDF PBKDF2 with Argon2id
- 20cca26 daemon: add OnInterface handlers
- 039c7a4 daemon: fix creation of interfaces passed via command line
- b7dba86 daemon: keep more member fields private
- b10c7f3 daemon: move more code from core.Interface to daemon.Interface
- 92a7ad2 daemon: use per-interface features
- 87ba710 defaults: use new relay service
- 2be01be device: add MTU detection logic
- ef9633c device: add gateway argument to AddRoute()
- f343b8f device: add routing table lookup
- f9c9ca5 device: fix signature of AddRoute() for other OS targets
- 63c6fe5 device: pass net.IPNet by value rather than by reference
- 458ce8f epdisc: recreate config on each restart
- fec86a9 fix spelling of cunicu
- c6cbae1 fix unit tests after config rewrite
- e74a8ac hooks: adapt to new per-interface features
- 2c4367d hsync: adapt to per-interface feature
- f9d6702 hsync: add extra_hosts option
- e88fe2a hsync: cleanup /etc/hosts on shutdown
- 123d7d9 ice: move ice package back to top level package dir
- 04b3e17 improve tests
- 88b15d3 install goreleaser via make install-deps
- 711fd37 k8s: move codegen script to scripts directory
- d01c226 log: shorten logger names
- db6294b make auto-generated address prefixes configurable
- efb1828 minor refactorings
- f6ee9a3 minor tweaks
- 5801aaa pdisc: do not send peer description if key is not set
- ffc1454 pdisc: fix exchange of peer names
- 4ee2ca5 pdisc: fix invalid allowed ips serialization
- 2817534 pdisc: merge black and whitelist into a single map
- 817a79a properly format network prefix in log
- 4c6a739 proto: refactor GetStatus method
- 81bac85 re-enable 32-bit builds
- 76d42e8 relay: add new subcommand to distribute STUN/TURN server credentials via gRPC
- 06430c4 relay: fix generation of password
- 6abf007 remove link-local wording
- 2159eff remove obsolete code
- 2df4c75 rpc: do not always unwait daemon
- 9e7183e rtsync: add support for non-link-local routes
- ad7c0bd scripts: adapt get_cunicu script to work with archives
- 131e399 scripts: add newline at eof
- 9100d1e scripts: check that GitHub token is set
- ac65280 scripts: fix signing of drat releases
- c1e1bf9 scripts: fix typo in sign_release
- 7133d7b scripts: fix version check
- d77bf9d selfupdate: move most code into selfupdate package and add missing tests
- f189c4f terminal: add QRCode()
- 70e437d terminal: refactor Color() to Mods() and add support for 8-bit colors
- ed20e7b tests: --config-path is longer a command line argument
- 7ddd299 tests: adapt tests to feature refactoring
- 0d46012 tests: fix restart test
- c9339fc util: add ContainsSlice and add missing unit tests
- 6c073d0 util: add missing unit tests
- a13fcb5 util: fix human formatting of bytes
- eef7ac1 util: move IsATTY() to terminal package
- 694ffd4 util: move const to util package
- ef6fe44 util: pass values rather than references to CmpNet()
- 908d046 util: rename slice functions
- bc55374 website: add ExampleConfig component
- 2b05203 website: added first blog post
- d868d5a website: adjust colors and disable dark mode
- 9a03e60 website: fix edit link
- 8f0e495 website: update project description
- b3358fe wg: add missing unit tests for comparing WireGuard peers & devices
- e0c0991 wg: add unit tests for testing device configuration handling
- 54788ec wg: output peer names to ini files
v0.2.2
v0.2.1
v0.2.0
Changelog
- d913cb1 adapt autocfg and pdisc features to new configuration
- 0c1eec9 add some code to set interface DNS servers
- 7dbc7cb add some logic to detect MTU for tunnel interfaces
- a99a67f autocfg: remove unused handler
- 92b4a50 autocfg: show warning if no private key was set
- da25518 build for more architectures
- 7c032b4 cfgsync: move DNS configuration from core to cfgsync and add support for Systemd's resolvectl
- 7427cb4 cfgsync: set DNS search domain
- da5ec23 cfgsync: start rewrite
- 1c64d7f ci: build for go 1.19.2
- c95c609 ci: use dedicated PAT token for Homebrew Taps
- fb83a36 cmd: adapt address sub-command to new prefix based address generation
- 34a0304 cmd: add --mask option to addresses sub-command
- cdbf439 cmd: add cunicu banner to the daemon output and usage info
- b520e05 cmd: initial version of invite sub-command
- a1f0d62 cmd: move reload sub-command to config.go
- 733dbbc cmd: show peer name in status sub-command
- 211313a cmd: use correct default output path for docs sub-command
- 7a145ad config: add RPC command to reload config
- 4ffc64f config: add koanf provider for wg/wg-quick configuration files
- 6481c78 config: add more settings for configuring basic interface settings
- 89f7810 config: add new hostname setting and initialize it with system hostname by default
- 07eb9dc config: add new settings to documentation and example config file
- f778578 config: add reload, watch and change detection logic
- 6adc793 config: added DiffConfig() to detect changes in configuration
- 8920a9e config: big rewrite and switch from viper to koanf
- aaade6b config: do not fail if WireGuard config directory does not exist
- 963ecd3 config: fix serialization of stringable types
- 735776d config: make host sync domain configurable
- be24b84 config: move completions to main package
- db4a6da config: only use ICE URLs for ICE candidate types which require them
- 977b13c config: refactored confmap koanf provider
- 1a5d397 config: remove private_key setting for now
- 4c4d189 config: rename --url argument to --ice-url
- 2e32625 config: simplify config structure
- 692bb3d config: verify certificate for relay.cunicu.li
- 2cdb2aa core: be less verbose in logs
- 4b62e19 crypto: add KeyPassphrase type to do automatic key derivation on unmarshaling
- 269367e crypto: fix Key.IPAddress() for IPv4 prefixes
- 9eb9f89 crypto: replace KDF PBKDF2 with Argon2id
- 9a87bd6 daemon: add OnInterface handlers
- 49a157f daemon: fix creation of interfaces passed via command line
- 1fec91d daemon: keep more member fields private
- ab3dd32 daemon: move more code from core.Interface to daemon.Interface
- 6fd9919 daemon: use per-interface features
- 255a5fb defaults: use new relay service
- 181f7ad device: add MTU detection logic
- 1253ef4 device: add gateway argument to AddRoute()
- 2c5aca1 device: add routing table lookup
- f3e8d3e device: fix signature of AddRoute() for other OS targets
- b1bd2af device: pass net.IPNet by value rather than by reference
- bb91563 epdisc: recreate config on each restart
- 5864d24 fix spelling of cunicu
- df3a2ac fix unit tests after config rewrite
- 5c14d2a hooks: adapt to new per-interface features
- 150c96b hsync: adapt to per-interface feature
- fd409b8 hsync: add extra_hosts option
- 1fcc7e4 hsync: cleanup /etc/hosts on shutdown
- 77784d3 ice: move ice package back to top level package dir
- b26d71a improve tests
- dd7040b install goreleaser via make install-deps
- 6319abe k8s: move codegen script to scripts directory
- 7f95488 log: shorten logger names
- 4172c5c make auto-generated address prefixes configurable
- 8ebc18b minor refactorings
- e7a118d minor tweaks
- b99a3e0 pdisc: do not send peer description if key is not set
- 593f7e3 pdisc: fix exchange of peer names
- 1fea711 pdisc: fix invalid allowed ips serialization
- 9547e5b pdisc: merge black and whitelist into a single map
- b669f8e properly format network prefix in log
- c576ce0 proto: refactor GetStatus method
- a146da6 re-enable 32-bit builds
- 27642c0 relay: add new subcommand to distribute STUN/TURN server credentials via gRPC
- c9c03ec relay: fix generation of password
- b2240c5 remove link-local wording
- 3076c36 remove obsolete code
- 692132c rpc: do not always unwait daemon
- 0b508d8 rtsync: add support for non-link-local routes
- 4931790 scripts: adapt get_cunicu script to work with archives
- 3011d2c scripts: fix typo in sign_release
- 04f5d0d selfupdate: move most code into selfupdate package and add missing tests
- 720a71f terminal: add QRCode()
- fcac81a terminal: refactor Color() to Mods() and add support for 8-bit colors
- 5f346c4 tests: --config-path is longer a command line argument
- ad936c8 tests: adapt tests to feature refactoring
- 685dd10 tests: fix restart test
- 8d627f1 util: add ContainsSlice and add missing unit tests
- c3f6f62 util: add missing unit tests
- 1cb3e58 util: fix human formatting of bytes
- 6e86044 util: move IsATTY() to terminal package
- 39d92b8 util: move const to util package
- 6e5ef94 util: pass values rather than references to CmpNet()
- 89e7be6 util: rename slice functions
- 997841c website: add ExampleConfig component
- 2b05203 website: added first blog post
- d868d5a website: adjust colors and disable dark mode
- 9a03e60 website: fix edit link
- 8f0e495 website: update project description
- cc66136 wg: add missing unit tests for comparing WireGuard peers & devices
- e585832 wg: add unit tests for testing device configuration handling
- e336adc wg: output peer names to ini files