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,16 +19,16 @@ 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 ! (
@@ -36,15 +37,15 @@ fn main() {
36
37
global_service. name( )
37
38
) ;
38
39
39
- let dns = SCNetworkServiceDns :: new ( ( None , None ) , ( None , Some ( addrs) ) ) ;
40
+ // let dns = SCNetworkServiceDns::new((None, None), (None, Some(addrs)));
40
41
41
- println ! ( "Success: {:?}" , global_service. set_dns ( dns ) ) ;
42
+ println ! ( "Success: {:?}" , global_service. set_dns_server_addresses ( & store , Some ( addrs ) ) ) ;
42
43
43
44
// Check
44
45
// networksetup -getdnsservers "Wi-Fi"
45
46
// scutil --dns
46
47
// dig
47
- println ! ( "{:?}" , global_service. dns( ) ) ;
48
+ println ! ( "{:?}" , global_service. dns( & store ) ) ;
48
49
49
50
println ! (
50
51
"\n \n Use Command `networksetup -setdnsservers \" {}\" \" Empty\" ` to restore DNS setting. " ,
0 commit comments