@@ -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}
0 commit comments