From fb00f519ac3b4c5a54609ba07843093f8baf87e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 25 Mar 2026 15:34:02 +0100 Subject: [PATCH 1/9] update protos --- proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto b/proto index faebcc54..f93bf295 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit faebcc5449ae803e15cf5faf838c0c508401caf1 +Subproject commit f93bf295a4c8e92bbacd3a049b07072c26ede7cb From 7bd369b499637f974e85a2ed60cc3a4fec48fb9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 25 Mar 2026 15:51:02 +0100 Subject: [PATCH 2/9] use versioned protos --- build.rs | 6 +++--- src/lib.rs | 23 +++++++++++++++++++++-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/build.rs b/build.rs index 5731502f..69b33303 100644 --- a/build.rs +++ b/build.rs @@ -11,10 +11,10 @@ fn main() -> Result<(), Box> { // compiling protos using path on build time .compile_protos( &[ - "proto/wireguard/gateway.proto", - "proto/enterprise/firewall/firewall.proto", + "proto/v2/wireguard/gateway.proto", + "proto/enterprise/v2/firewall/firewall.proto", ], - &["proto/wireguard", "proto/enterprise/firewall"], + &["proto"], )?; println!("cargo:rerun-if-changed=proto"); Ok(()) diff --git a/src/lib.rs b/src/lib.rs index ae80a6af..e38abbc4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -4,13 +4,32 @@ pub mod gateway; pub mod server; mod version; +pub mod generated { + pub mod defguard { + pub mod gateway { + pub mod v2 { + + tonic::include_proto!("defguard.gateway.v2"); + } + } + pub mod enterprise { + pub mod firewall { + pub mod v2 { + + tonic::include_proto!("defguard.enterprise.firewall.v2"); + } + } + } + } +} + pub mod proto { pub mod gateway { - tonic::include_proto!("gateway"); + pub use crate::generated::defguard::gateway::v2::*; } pub mod enterprise { pub mod firewall { - tonic::include_proto!("enterprise.firewall"); + pub use crate::generated::defguard::enterprise::firewall::v2::*; } } } From 8206198ec4c72e57e8d7cd1d99a0ef0270abc5aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 25 Mar 2026 16:14:37 +0100 Subject: [PATCH 3/9] update dependencies --- Cargo.lock | 90 ++++++++++++++++++++---------------------------------- flake.lock | 12 ++++---- 2 files changed, 39 insertions(+), 63 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 689bb9e3..256b1468 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -42,21 +42,6 @@ dependencies = [ "libc", ] -[[package]] -name = "anstream" -version = "0.6.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" -dependencies = [ - "anstyle", - "anstyle-parse 0.2.7", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is_terminal_polyfill", - "utf8parse", -] - [[package]] name = "anstream" version = "1.0.0" @@ -64,7 +49,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" dependencies = [ "anstyle", - "anstyle-parse 1.0.0", + "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", @@ -78,15 +63,6 @@ version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" -[[package]] -name = "anstyle-parse" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e7644824f0aa2c7b9384579234ef10eb7efb6a0deb83f9630a49594dd9c15c2" -dependencies = [ - "utf8parse", -] - [[package]] name = "anstyle-parse" version = "1.0.0" @@ -483,7 +459,7 @@ version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ - "anstream 1.0.0", + "anstream", "anstyle", "clap_lex", "strsim", @@ -695,7 +671,7 @@ dependencies = [ "thiserror 2.0.18", "tokio", "tokio-stream", - "toml 1.0.7+spec-1.1.0", + "toml 1.1.0+spec-1.1.0", "tonic", "tonic-prost", "tonic-prost-build", @@ -905,9 +881,9 @@ dependencies = [ [[package]] name = "env_filter" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" dependencies = [ "log", "regex", @@ -915,11 +891,11 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" dependencies = [ - "anstream 0.6.21", + "anstream", "anstyle", "env_filter", "jiff", @@ -1626,9 +1602,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jiff" @@ -1725,9 +1701,9 @@ checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" [[package]] name = "libredox" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ "bitflags", "libc", @@ -2059,9 +2035,9 @@ dependencies = [ [[package]] name = "num-conv" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf97ec579c3c42f953ef76dbf8d55ac91fb219dde70e49aa4a6b7d74e9919050" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" [[package]] name = "num-integer" @@ -2614,9 +2590,9 @@ dependencies = [ [[package]] name = "pulldown-cmark" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c41efbf8f90ac44de7f3a868f0867851d261b56291732d0cbf7cceaaeb55a6" +checksum = "7c3a14896dfa883796f1cb410461aef38810ea05f2b2c33c5aded3649095fdad" dependencies = [ "bitflags", "memchr", @@ -2853,9 +2829,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "ring", "rustls-pki-types", @@ -2998,9 +2974,9 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "1.0.4" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +checksum = "876ac351060d4f882bb1032b6369eb0aef79ad9df1ea8bc404874d8cc3d0cd98" dependencies = [ "serde_core", ] @@ -3617,13 +3593,13 @@ dependencies = [ [[package]] name = "toml" -version = "1.0.7+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd28d57d8a6f6e458bc0b8784f8fdcc4b99a437936056fa122cb234f18656a96" +checksum = "f8195ca05e4eb728f4ba94f3e3291661320af739c4e43779cbdfae82ab239fcc" dependencies = [ "serde_core", "serde_spanned", - "toml_datetime 1.0.1+spec-1.1.0", + "toml_datetime 1.1.0+spec-1.1.0", "toml_parser", "winnow 1.0.0", ] @@ -3639,27 +3615,27 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "1.0.1+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b320e741db58cac564e26c607d3cc1fdc4a88fd36c879568c07856ed83ff3e9" +checksum = "97251a7c317e03ad83774a8752a7e81fb6067740609f75ea2b585b569a59198f" dependencies = [ "serde_core", ] [[package]] name = "toml_parser" -version = "1.0.10+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7df25b4befd31c4816df190124375d5a20c6b6921e2cad937316de3fccd63420" +checksum = "2334f11ee363607eb04df9b8fc8a13ca1715a72ba8662a26ac285c98aabb4011" dependencies = [ "winnow 1.0.0", ] [[package]] name = "toml_writer" -version = "1.0.7+spec-1.1.0" +version = "1.1.0+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f17aaa1c6e3dc22b1da4b6bba97d066e354c7945cac2f7852d4e4e7ca7a6b56d" +checksum = "d282ade6016312faf3e41e57ebbba0c073e4056dab1232ab1cb624199648f8ed" [[package]] name = "tonic" @@ -4714,18 +4690,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.42" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2578b716f8a7a858b7f02d5bd870c14bf4ddbbcf3a4c05414ba6503640505e3" +checksum = "efbb2a062be311f2ba113ce66f697a4dc589f85e78a4aea276200804cea0ed87" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.42" +version = "0.8.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e6cc098ea4d3bd6246687de65af3f920c430e236bee1e3bf2e441463f08a02f" +checksum = "0e8bc7269b54418e7aeeef514aa68f8690b8c0489a06b0136e5f57c4c5ccab89" dependencies = [ "proc-macro2", "quote", diff --git a/flake.lock b/flake.lock index 9889879c..f5286636 100644 --- a/flake.lock +++ b/flake.lock @@ -20,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1761907660, - "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", + "lastModified": 1774106199, + "narHash": "sha256-US5Tda2sKmjrg2lNHQL3jRQ6p96cgfWh3J1QBliQ8Ws=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", + "rev": "6c9a78c09ff4d6c21d0319114873508a6ec01655", "type": "github" }, "original": { @@ -48,11 +48,11 @@ ] }, "locked": { - "lastModified": 1762137611, - "narHash": "sha256-sTqb10FR/YQCuGbw16qxliX0NFlYg6evSEjN8w+9IYE=", + "lastModified": 1774408260, + "narHash": "sha256-Jn9d9r85dmf3gTMnSRt6t+DP2nQ5uJns/MMXg2FpzfM=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "3a0ebe5d2965692f990cb27e62f501ad35e3deeb", + "rev": "d6471ee5a8f470251e6e5b83a20a182eb6c46c9b", "type": "github" }, "original": { From 81964fead62dc272ca2e60f5f21758714425069a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Tue, 7 Apr 2026 16:35:11 +0200 Subject: [PATCH 4/9] update proto submodule --- proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto b/proto index f93bf295..60ff4a21 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit f93bf295a4c8e92bbacd3a049b07072c26ede7cb +Subproject commit 60ff4a214074446c1f6b8220ca8fac57c5156301 From d9a1f1bbb985e4c59fbb6dfd63da840a9c570cb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Tue, 7 Apr 2026 16:41:25 +0200 Subject: [PATCH 5/9] update protos directory structure --- build.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.rs b/build.rs index 69b33303..901f5a44 100644 --- a/build.rs +++ b/build.rs @@ -11,7 +11,7 @@ fn main() -> Result<(), Box> { // compiling protos using path on build time .compile_protos( &[ - "proto/v2/wireguard/gateway.proto", + "proto/v2/gateway.proto", "proto/enterprise/v2/firewall/firewall.proto", ], &["proto"], From d6f94ac1fad203b513592858b36c4f55a80e772a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 8 Apr 2026 20:41:29 +0200 Subject: [PATCH 6/9] update proto submodule --- proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto b/proto index 60ff4a21..4e0432a9 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 60ff4a214074446c1f6b8220ca8fac57c5156301 +Subproject commit 4e0432a95e68dcf6fdd9d1678d6815bccc09f709 From 84b9955bb9d748de405fe6dba332f250378cde3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Wed, 8 Apr 2026 21:10:42 +0200 Subject: [PATCH 7/9] handle updated protobuf --- Cargo.lock | 12 +----------- Cargo.toml | 2 +- src/gateway.rs | 21 +++++++-------------- src/lib.rs | 17 +++++++++++++++-- src/logging.rs | 2 +- src/setup.rs | 5 ++++- 6 files changed, 29 insertions(+), 30 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9373a873..18398d10 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -589,7 +589,6 @@ dependencies = [ "defguard_version", "defguard_wireguard_rs", "env_logger", - "gethostname", "ipnetwork", "libc", "log", @@ -597,6 +596,7 @@ dependencies = [ "nftnl", "nix 0.31.2", "prost", + "prost-types", "serde", "syslog", "thiserror 2.0.18", @@ -940,16 +940,6 @@ dependencies = [ "version_check", ] -[[package]] -name = "gethostname" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bd49230192a3797a9a4d6abe9b3eed6f7fa4c8a8a4947977c6f80025f92cbd8" -dependencies = [ - "rustix", - "windows-link", -] - [[package]] name = "getrandom" version = "0.2.17" diff --git a/Cargo.toml b/Cargo.toml index 990eb7d9..74228c5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -12,11 +12,11 @@ defguard_certs = { git = "https://github.com/DefGuard/defguard.git", rev = "0195 defguard_version = { git = "https://github.com/DefGuard/defguard.git", rev = "01957186101fc105803d56f1190efbdb5102df2f" } defguard_wireguard_rs = "0.9" env_logger = "0.11" -gethostname = "1.0" ipnetwork = "0.21" libc = { version = "0.2", default-features = false } log = "0.4" prost = "0.14" +prost-types = "0.14" serde = { version = "1.0", features = ["derive"] } syslog = "7.0" thiserror = "2.0" diff --git a/src/gateway.rs b/src/gateway.rs index 70800273..7458ecb6 100644 --- a/src/gateway.rs +++ b/src/gateway.rs @@ -13,7 +13,6 @@ use defguard_version::{ ComponentInfo, DefguardComponent, Version, get_tracing_variables, server::DefguardVersionLayer, }; use defguard_wireguard_rs::{WireguardInterfaceApi, net::IpAddrMask}; -use gethostname::gethostname; use tokio::{ sync::{mpsc, oneshot}, time::interval, @@ -35,9 +34,12 @@ use crate::{ }, error::GatewayError, execute_command, mask, - proto::gateway::{ - Configuration, ConfigurationRequest, CoreRequest, CoreResponse, LogEntry, Peer, Update, - core_request, core_response, gateway_server, update, + proto::{ + common::LogEntry, + gateway::{ + Configuration, CoreRequest, CoreResponse, Peer, Update, core_request, core_response, + gateway_server, update, + }, }, setup::run_setup, version::is_core_version_supported, @@ -685,20 +687,11 @@ impl gateway_server::Gateway for GatewayServer { } let (tx, rx) = mpsc::unbounded_channel(); - let Ok(hostname) = gethostname().into_string() else { - error!("Unable to get hostname"); - return Err(Status::internal("failed to get hostname")); - }; // First, send configuration request. - #[allow(deprecated)] - let payload = ConfigurationRequest { - name: None, // TODO: remove? - hostname, - }; let req = CoreRequest { id: self.message_id.fetch_add(1, Ordering::Relaxed), - payload: Some(core_request::Payload::ConfigRequest(payload)), + payload: Some(core_request::Payload::ConfigRequest(())), }; match tx.send(Ok(req)) { diff --git a/src/lib.rs b/src/lib.rs index e38abbc4..b29ca530 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -6,6 +6,11 @@ mod version; pub mod generated { pub mod defguard { + pub mod common { + pub mod v2 { + tonic::include_proto!("defguard.common.v2"); + } + } pub mod gateway { pub mod v2 { @@ -24,6 +29,9 @@ pub mod generated { } pub mod proto { + pub mod common { + pub use crate::generated::defguard::common::v2::*; + } pub mod gateway { pub use crate::generated::defguard::gateway::v2::*; } @@ -42,6 +50,7 @@ use std::{process::Command, str::FromStr, time::SystemTime}; use config::Config; use defguard_wireguard_rs::{InterfaceConfiguration, net::IpAddrMask, peer::Peer}; use error::GatewayError; +use prost_types::Timestamp; use syslog::{BasicLogger, Facility, Formatter3164}; pub mod enterprise; @@ -169,9 +178,13 @@ impl From<&Peer> for proto::gateway::PeerStats { .endpoint .map_or(String::new(), |endpoint| endpoint.to_string()), allowed_ips: peer.allowed_ips.iter().map(ToString::to_string).collect(), - latest_handshake: peer.last_handshake.map_or(0, |ts| { + latest_handshake: peer.last_handshake.and_then(|ts| { ts.duration_since(SystemTime::UNIX_EPOCH) - .map_or(0, |duration| duration.as_secs()) + .ok() + .map(|d| Timestamp { + seconds: d.as_secs() as i64, + nanos: d.subsec_nanos() as i32, + }) }), download: peer.rx_bytes, upload: peer.tx_bytes, diff --git a/src/logging.rs b/src/logging.rs index a7945407..ac912c08 100644 --- a/src/logging.rs +++ b/src/logging.rs @@ -3,7 +3,7 @@ use tokio::sync::mpsc::Sender; use tracing::{Event, Subscriber}; use tracing_subscriber::{Layer, layer::SubscriberExt, util::SubscriberInitExt}; -use crate::proto::gateway::LogEntry; +use crate::proto::common::LogEntry; pub fn init_tracing(own_version: &Version, level: &str, logs_tx: Option>) { let subscriber = tracing_subscriber::registry(); diff --git a/src/setup.rs b/src/setup.rs index 2a12a061..c3936f54 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -16,7 +16,10 @@ use crate::{ config::Config, error::GatewayError, gateway::TlsConfig, - proto::gateway::{CertificateInfo, DerPayload, LogEntry, gateway_setup_server}, + proto::{ + common::{CertificateInfo, DerPayload, LogEntry}, + gateway::gateway_setup_server, + }, }; const AUTH_HEADER: &str = "authorization"; From 2098f24d0d7ab9e4cf22f4b07ad72c7947f909f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Thu, 9 Apr 2026 07:55:58 +0200 Subject: [PATCH 8/9] adjust protobuf naming --- proto | 2 +- src/enterprise/firewall/mod.rs | 9 +++++++-- src/gateway.rs | 12 ++++++------ src/lib.rs | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/proto b/proto index 4e0432a9..0a6b81bd 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 4e0432a95e68dcf6fdd9d1678d6815bccc09f709 +Subproject commit 0a6b81bdec6e4cf215ba7b7c8f02af8324a4ce8a diff --git a/src/enterprise/firewall/mod.rs b/src/enterprise/firewall/mod.rs index dee55ab4..87c7dc84 100644 --- a/src/enterprise/firewall/mod.rs +++ b/src/enterprise/firewall/mod.rs @@ -14,6 +14,7 @@ use std::{ use ipnetwork::{IpNetwork, Ipv4Network, Ipv6Network}; use iprange::{IpAddrRange, IpAddrRangeError}; use thiserror::Error; +use tracing::error; use crate::proto; @@ -161,7 +162,7 @@ impl Protocol { proto::enterprise::firewall::Protocol::Udp => Ok(Self::Udp), proto::enterprise::firewall::Protocol::Icmp => Ok(Self::Icmp), // TODO: IcmpV6 - proto::enterprise::firewall::Protocol::Invalid => { + proto::enterprise::firewall::Protocol::Unspecified => { Err(FirewallError::UnsupportedProtocol(proto as u8)) } } @@ -196,10 +197,14 @@ impl From for Policy { impl Policy { #[must_use] - pub const fn from_proto(verdict: proto::enterprise::firewall::FirewallPolicy) -> Self { + pub fn from_proto(verdict: proto::enterprise::firewall::FirewallPolicy) -> Self { match verdict { proto::enterprise::firewall::FirewallPolicy::Allow => Self::Allow, proto::enterprise::firewall::FirewallPolicy::Deny => Self::Deny, + proto::enterprise::firewall::FirewallPolicy::Unspecified => { + error!("Received invalid gRPC FirewallPolicy. Falling back to Deny."); + Self::Deny + } } } } diff --git a/src/gateway.rs b/src/gateway.rs index 7458ecb6..53806904 100644 --- a/src/gateway.rs +++ b/src/gateway.rs @@ -112,7 +112,7 @@ pub async fn run_gateway_loop( #[derive(Clone, PartialEq)] struct InterfaceConfiguration { name: String, - prvkey: String, + private_key: String, addresses: Vec, port: u16, mtu: u32, @@ -129,7 +129,7 @@ impl From for InterfaceConfiguration { .collect(); Self { name: config.name, - prvkey: config.prvkey, + private_key: config.private_key, addresses, port: config.port as u16, mtu: config.mtu, @@ -386,7 +386,7 @@ impl Gateway { ); trace!( "Received configuration: {:?}", - mask!(new_configuration, prvkey) + mask!(new_configuration, private_key) ); // check if new configuration is different than current one @@ -407,7 +407,7 @@ impl Gateway { ); trace!( "Reconfigured WireGuard interface. Configuration: {:?}", - mask!(new_configuration, prvkey) + mask!(new_configuration, private_key) ); // store new configuration and peers self.interface_configuration = Some(new_interface_configuration); @@ -899,7 +899,7 @@ mod tests { async fn test_configuration_comparison() { let old_config = InterfaceConfiguration { name: "gateway".to_string(), - prvkey: "FGqcPuaSlGWC2j50TBA4jHgiefPgQQcgTNLwzKUzBS8=".to_string(), + private_key: "FGqcPuaSlGWC2j50TBA4jHgiefPgQQcgTNLwzKUzBS8=".to_string(), addresses: vec!["10.6.1.1/24".parse().unwrap()], port: 50051, mtu: 1420, @@ -947,7 +947,7 @@ mod tests { // only interface config is different let new_config = InterfaceConfiguration { name: "gateway".to_string(), - prvkey: "FGqcPuaSlGWC2j50TBA4jHgiefPgQQcgTNLwzKUzBS8=".to_string(), + private_key: "FGqcPuaSlGWC2j50TBA4jHgiefPgQQcgTNLwzKUzBS8=".to_string(), addresses: vec!["10.6.1.2/24".parse().unwrap()], port: 50051, mtu: 1420, diff --git a/src/lib.rs b/src/lib.rs index b29ca530..cebcb217 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -130,7 +130,7 @@ impl From for InterfaceConfiguration { .collect(); InterfaceConfiguration { name: config.name, - prvkey: config.prvkey, + prvkey: config.private_key, addresses, port: config.port as u16, peers, From 5663694bbd8269960bdcdb28bf97301f5a62e843 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20W=C3=B3jcik?= Date: Thu, 9 Apr 2026 10:49:12 +0200 Subject: [PATCH 9/9] update proto submodule --- proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto b/proto index 0a6b81bd..7adfe3bf 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit 0a6b81bdec6e4cf215ba7b7c8f02af8324a4ce8a +Subproject commit 7adfe3bfd1b7b701e58d25ddadd0c0c7a4a3e046