From d38e1475b7502d6961e66eb706379f4141ae19b5 Mon Sep 17 00:00:00 2001 From: Maciek Date: Tue, 3 Oct 2023 15:37:16 +0200 Subject: [PATCH] fix: create interface in server example (#16) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * update examples * bump version * update runner selectors --------- Co-authored-by: Maciej Wójcik --- .github/workflows/ci.yml | 2 +- .github/workflows/release.yml | 2 +- Cargo.lock | 2 +- Cargo.toml | 2 +- examples/client.rs | 7 +++++-- examples/server.rs | 19 +++++++++++++++---- examples/userspace.rs | 3 +++ 7 files changed, 27 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e8fff26..13772d7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,7 +17,7 @@ env: jobs: test: - runs-on: self-hosted + runs-on: [self-hosted, Linux] container: rust:1.72 steps: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 10f00ef..f9e2fb8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: jobs: create-release: - runs-on: self-hosted + runs-on: [self-hosted, Linux] steps: - name: Checkout uses: actions/checkout@v3 diff --git a/Cargo.lock b/Cargo.lock index 5da0d38..6fa9c26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -88,7 +88,7 @@ dependencies = [ [[package]] name = "defguard_wireguard_rs" -version = "0.2.0" +version = "0.2.1" dependencies = [ "base64", "log", diff --git a/Cargo.toml b/Cargo.toml index 8b5ecea..7658653 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "defguard_wireguard_rs" -version = "0.2.0" +version = "0.2.1" edition = "2021" description = "A unified multi-platform high-level API for managing WireGuard interfaces" license = "Apache-2.0" diff --git a/examples/client.rs b/examples/client.rs index a6cf5bd..b1c2943 100644 --- a/examples/client.rs +++ b/examples/client.rs @@ -14,6 +14,9 @@ fn main() -> Result<(), Box> { }; let wgapi = WGApi::new(ifname.clone(), false)?; + // create interface + wgapi.create_interface()?; + // Peer configuration let secret = EphemeralSecret::random(); let key = PublicKey::from(&secret); @@ -22,8 +25,8 @@ fn main() -> Result<(), Box> { let mut peer = Peer::new(peer_key.clone()); log::info!("endpoint"); - // Your wireguard server endpoint which peer connects too - let endpoint: SocketAddr = ":".parse().unwrap(); + // Your wireguard server endpoint which client connects too + let endpoint: SocketAddr = "10.10.10.10:55001".parse().unwrap(); // Peer endpoint and interval peer.endpoint = Some(endpoint); peer.persistent_keepalive_interval = Some(25); diff --git a/examples/server.rs b/examples/server.rs index e599d8a..2c99327 100644 --- a/examples/server.rs +++ b/examples/server.rs @@ -13,10 +13,15 @@ fn main() -> Result<(), Box> { "utun3".into() }; let wgapi = WGApi::new(ifname.clone(), false)?; + + // create interface + wgapi.create_interface()?; + + // read current interface data let host = wgapi.read_interface_data()?; - log::debug!("{host:#?}"); + println!("WireGuard interface: {host:#?}"); - // host + // prepare peer configuration let secret = EphemeralSecret::random(); let key = PublicKey::from(&secret); let peer_key: Key = key.as_ref().try_into().unwrap(); @@ -24,7 +29,7 @@ fn main() -> Result<(), Box> { let addr = IpAddrMask::from_str("10.20.30.40/24").unwrap(); peer.allowed_ips.push(addr); - // Create host interfaces + // Configure host interface let interface_config = InterfaceConfiguration { name: ifname.clone(), prvkey: "AAECAwQFBgcICQoLDA0OD/Dh0sO0pZaHeGlaSzwtHg8=".to_string(), @@ -32,7 +37,6 @@ fn main() -> Result<(), Box> { port: 12345, peers: vec![peer], }; - wgapi.configure_interface(&interface_config)?; // Create peers @@ -44,5 +48,12 @@ fn main() -> Result<(), Box> { wgapi.remove_peer(&peer.public_key)?; } + // read current interface data + let host = wgapi.read_interface_data()?; + println!("WireGuard interface: {host:#?}"); + + // remove interface + wgapi.remove_interface()?; + Ok(()) } diff --git a/examples/userspace.rs b/examples/userspace.rs index 5844c7a..9c5d6b3 100644 --- a/examples/userspace.rs +++ b/examples/userspace.rs @@ -25,6 +25,9 @@ fn main() -> Result<(), Box> { }; let api = WireguardApiUserspace::new(ifname.clone())?; + // create interface + api.create_interface()?; + // Peer configuration let secret = EphemeralSecret::random(); let key = PublicKey::from(&secret);