Skip to content

Commit d38e147

Browse files
wojcik91Maciej Wójcik
and
Maciej Wójcik
authored
fix: create interface in server example (#16)
* update examples * bump version * update runner selectors --------- Co-authored-by: Maciej Wójcik <[email protected]>
1 parent df5fcc2 commit d38e147

File tree

7 files changed

+27
-10
lines changed

7 files changed

+27
-10
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ env:
1717

1818
jobs:
1919
test:
20-
runs-on: self-hosted
20+
runs-on: [self-hosted, Linux]
2121
container: rust:1.72
2222

2323
steps:

.github/workflows/release.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66

77
jobs:
88
create-release:
9-
runs-on: self-hosted
9+
runs-on: [self-hosted, Linux]
1010
steps:
1111
- name: Checkout
1212
uses: actions/checkout@v3

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "defguard_wireguard_rs"
3-
version = "0.2.0"
3+
version = "0.2.1"
44
edition = "2021"
55
description = "A unified multi-platform high-level API for managing WireGuard interfaces"
66
license = "Apache-2.0"

examples/client.rs

+5-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
1414
};
1515
let wgapi = WGApi::new(ifname.clone(), false)?;
1616

17+
// create interface
18+
wgapi.create_interface()?;
19+
1720
// Peer configuration
1821
let secret = EphemeralSecret::random();
1922
let key = PublicKey::from(&secret);
@@ -22,8 +25,8 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
2225
let mut peer = Peer::new(peer_key.clone());
2326

2427
log::info!("endpoint");
25-
// Your wireguard server endpoint which peer connects too
26-
let endpoint: SocketAddr = "<server_ip>:<server_port>".parse().unwrap();
28+
// Your wireguard server endpoint which client connects too
29+
let endpoint: SocketAddr = "10.10.10.10:55001".parse().unwrap();
2730
// Peer endpoint and interval
2831
peer.endpoint = Some(endpoint);
2932
peer.persistent_keepalive_interval = Some(25);

examples/server.rs

+15-4
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,30 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
1313
"utun3".into()
1414
};
1515
let wgapi = WGApi::new(ifname.clone(), false)?;
16+
17+
// create interface
18+
wgapi.create_interface()?;
19+
20+
// read current interface data
1621
let host = wgapi.read_interface_data()?;
17-
log::debug!("{host:#?}");
22+
println!("WireGuard interface: {host:#?}");
1823

19-
// host
24+
// prepare peer configuration
2025
let secret = EphemeralSecret::random();
2126
let key = PublicKey::from(&secret);
2227
let peer_key: Key = key.as_ref().try_into().unwrap();
2328
let mut peer = Peer::new(peer_key.clone());
2429
let addr = IpAddrMask::from_str("10.20.30.40/24").unwrap();
2530
peer.allowed_ips.push(addr);
2631

27-
// Create host interfaces
32+
// Configure host interface
2833
let interface_config = InterfaceConfiguration {
2934
name: ifname.clone(),
3035
prvkey: "AAECAwQFBgcICQoLDA0OD/Dh0sO0pZaHeGlaSzwtHg8=".to_string(),
3136
address: "10.6.0.30".to_string(),
3237
port: 12345,
3338
peers: vec![peer],
3439
};
35-
3640
wgapi.configure_interface(&interface_config)?;
3741

3842
// Create peers
@@ -44,5 +48,12 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
4448
wgapi.remove_peer(&peer.public_key)?;
4549
}
4650

51+
// read current interface data
52+
let host = wgapi.read_interface_data()?;
53+
println!("WireGuard interface: {host:#?}");
54+
55+
// remove interface
56+
wgapi.remove_interface()?;
57+
4758
Ok(())
4859
}

examples/userspace.rs

+3
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
2525
};
2626
let api = WireguardApiUserspace::new(ifname.clone())?;
2727

28+
// create interface
29+
api.create_interface()?;
30+
2831
// Peer configuration
2932
let secret = EphemeralSecret::random();
3033
let key = PublicKey::from(&secret);

0 commit comments

Comments
 (0)