1
1
extern crate system_configuration;
2
2
3
- use system_configuration:: network_configuration:: { SCNetworkGlobal , SCNetworkServiceDns } ;
3
+ use system_configuration:: dynamic_store:: SCDynamicStoreBuilder ;
4
+ use system_configuration:: network_configuration:: { SCNetworkService } ;
4
5
5
6
use std:: net:: { IpAddr , Ipv4Addr } ;
6
7
@@ -18,33 +19,32 @@ fn main() {
18
19
IpAddr :: V4 ( Ipv4Addr :: new( 8 , 8 , 4 , 4 ) ) ,
19
20
] ;
20
21
21
- let global_service = SCNetworkGlobal . service ( ) . expect ( "No PrimaryService active" ) ;
22
- let global_interface = global_service
23
- . interface ( )
24
- . expect ( "No PrimaryInterface active" ) ;
22
+ let store = SCDynamicStoreBuilder :: new ( "session_name" ) . build ( ) ;
23
+
24
+ let global_service = SCNetworkService :: global ( & store ) . expect ( "No PrimaryService active" ) ;
25
+ let global_interface = global_service . interface ( ) . expect ( "No PrimaryInterface active" ) ;
25
26
26
27
println ! ( "Global Service:" ) ;
27
28
println ! ( "\t id: {:?}" , global_service. id( ) ) ;
28
29
println ! ( "\t name: {:?}" , global_service. name( ) ) ;
29
30
println ! ( "\t enabled: {:?}" , global_service. enabled( ) ) ;
30
- println ! ( "\t dns: {:?}" , global_service. dns( ) ) ;
31
+ println ! ( "\t dns: {:?}" , global_service. dns( & store ) ) ;
31
32
println ! ( "\t interface: {:?}" , global_interface. name( ) . unwrap( ) ) ;
32
33
33
34
println ! (
34
35
"Set dns to {:?} on {:?} service ..." ,
35
36
addrs,
36
37
global_service. name( )
37
38
) ;
39
+
38
40
39
- let dns = SCNetworkServiceDns :: new ( ( None , None ) , ( None , Some ( addrs) ) ) ;
40
-
41
- println ! ( "Success: {:?}" , global_service. set_dns( dns) ) ;
41
+ println ! ( "Success: {:?}" , global_service. set_dns_server_addresses( & store, Some ( addrs) ) ) ;
42
42
43
43
// Check
44
44
// networksetup -getdnsservers "Wi-Fi"
45
45
// scutil --dns
46
46
// dig
47
- println ! ( "{:?}" , global_service. dns( ) ) ;
47
+ println ! ( "{:?}" , global_service. dns( & store ) ) ;
48
48
49
49
println ! (
50
50
"\n \n Use Command `networksetup -setdnsservers \" {}\" \" Empty\" ` to restore DNS setting. " ,
0 commit comments