system_configuration_sys/
network_reachability.rs1#![cfg_attr(feature = "cargo-clippy", allow(clippy::unreadable_literal))]
8use crate::dispatch_queue_t;
9use core_foundation_sys::base::{Boolean, CFAllocatorRef, CFIndex, CFTypeID};
10use core_foundation_sys::runloop::CFRunLoopRef;
11use core_foundation_sys::string::CFStringRef;
12use libc::sockaddr;
13pub type __SCNetworkReachability = ::core::ffi::c_void;
14
15pub type SCNetworkReachabilityRef = *const __SCNetworkReachability;
16#[repr(C)]
17pub struct SCNetworkReachabilityContext {
18 pub version: CFIndex,
19 pub info: *mut ::core::ffi::c_void,
20 pub retain: Option<
21 unsafe extern "C" fn(info: *const ::core::ffi::c_void) -> *const ::core::ffi::c_void,
22 >,
23 pub release: Option<unsafe extern "C" fn(info: *const ::core::ffi::c_void)>,
24 pub copyDescription:
25 Option<unsafe extern "C" fn(info: *const ::core::ffi::c_void) -> CFStringRef>,
26}
27pub type SCNetworkReachabilityFlags = u32;
28pub const kSCNetworkReachabilityFlagsTransientConnection: _bindgen_ty_65 = 1;
29pub const kSCNetworkReachabilityFlagsReachable: _bindgen_ty_65 = 2;
30pub const kSCNetworkReachabilityFlagsConnectionRequired: _bindgen_ty_65 = 4;
31pub const kSCNetworkReachabilityFlagsConnectionOnTraffic: _bindgen_ty_65 = 8;
32pub const kSCNetworkReachabilityFlagsInterventionRequired: _bindgen_ty_65 = 16;
33pub const kSCNetworkReachabilityFlagsConnectionOnDemand: _bindgen_ty_65 = 32;
34pub const kSCNetworkReachabilityFlagsIsLocalAddress: _bindgen_ty_65 = 65536;
35pub const kSCNetworkReachabilityFlagsIsDirect: _bindgen_ty_65 = 131072;
36pub const kSCNetworkReachabilityFlagsIsWWAN: _bindgen_ty_65 = 262144;
37pub const kSCNetworkReachabilityFlagsConnectionAutomatic: _bindgen_ty_65 = 8;
38pub type _bindgen_ty_65 = ::core::ffi::c_uint;
39pub type SCNetworkReachabilityCallBack = Option<
40 unsafe extern "C" fn(
41 target: SCNetworkReachabilityRef,
42 flags: SCNetworkReachabilityFlags,
43 info: *mut ::core::ffi::c_void,
44 ),
45>;
46extern "C" {
47 pub fn SCNetworkReachabilityCreateWithAddress(
48 allocator: CFAllocatorRef,
49 address: *const sockaddr,
50 ) -> SCNetworkReachabilityRef;
51
52 pub fn SCNetworkReachabilityCreateWithAddressPair(
53 allocator: CFAllocatorRef,
54 localAddress: *const sockaddr,
55 remoteAddress: *const sockaddr,
56 ) -> SCNetworkReachabilityRef;
57
58 pub fn SCNetworkReachabilityCreateWithName(
59 allocator: CFAllocatorRef,
60 nodename: *const ::core::ffi::c_char,
61 ) -> SCNetworkReachabilityRef;
62
63 pub fn SCNetworkReachabilityGetTypeID() -> CFTypeID;
64
65 pub fn SCNetworkReachabilityGetFlags(
66 target: SCNetworkReachabilityRef,
67 flags: *mut SCNetworkReachabilityFlags,
68 ) -> Boolean;
69
70 pub fn SCNetworkReachabilitySetCallback(
71 target: SCNetworkReachabilityRef,
72 callout: SCNetworkReachabilityCallBack,
73 context: *mut SCNetworkReachabilityContext,
74 ) -> Boolean;
75
76 pub fn SCNetworkReachabilityScheduleWithRunLoop(
77 target: SCNetworkReachabilityRef,
78 runLoop: CFRunLoopRef,
79 runLoopMode: CFStringRef,
80 ) -> Boolean;
81
82 pub fn SCNetworkReachabilityUnscheduleFromRunLoop(
83 target: SCNetworkReachabilityRef,
84 runLoop: CFRunLoopRef,
85 runLoopMode: CFStringRef,
86 ) -> Boolean;
87
88 pub fn SCNetworkReachabilitySetDispatchQueue(
89 target: SCNetworkReachabilityRef,
90 queue: dispatch_queue_t,
91 ) -> Boolean;
92}