network_framework_sys/
parameters.rs

1use crate::*;
2
3use libc::c_int;
4
5
6pub enum nw_parameters {}
7pub type nw_parameters_t = *mut nw_parameters;
8
9pub enum nw_protocol_stack {}
10pub type nw_protocol_stack_t = *mut nw_protocol_stack;
11
12pub type nw_service_class_t = c_int;
13pub const nw_service_class_best_effort: nw_service_class_t       = 0;
14pub const nw_service_class_background: nw_service_class_t        = 1;
15pub const nw_service_class_interactive_video: nw_service_class_t = 2;
16pub const nw_service_class_interactive_voice: nw_service_class_t = 3;
17pub const nw_service_class_responsive_data: nw_service_class_t   = 4;
18pub const nw_service_class_signaling: nw_service_class_t         = 5;
19
20pub type nw_multipath_service_t = c_int;
21pub const nw_multipath_service_disabled: nw_multipath_service_t    = 0;
22pub const nw_multipath_service_handover: nw_multipath_service_t    = 1;
23pub const nw_multipath_service_interactive: nw_multipath_service_t = 2;
24pub const nw_multipath_service_aggregate: nw_multipath_service_t   = 3;
25
26pub type nw_parameters_expired_dns_behavior_t = c_int;
27pub const nw_parameters_expired_dns_behavior_default: nw_parameters_expired_dns_behavior_t  = 0;
28pub const nw_parameters_expired_dns_behavior_allow: nw_parameters_expired_dns_behavior_t    = 1;
29pub const nw_parameters_expired_dns_behavior_prohibit: nw_parameters_expired_dns_behavior_t = 2;
30
31
32extern "C" {
33    // typedef void (^nw_parameters_configure_protocol_block_t)(nw_protocol_options_t options);
34    // pub fn nw_parameters_create_secure_tcp(configure_tls: nw_parameters_configure_protocol_block_t,
35    //                                        configure_tcp: nw_parameters_configure_protocol_block_t)
36    //     -> nw_parameters_t;
37    // pub fn nw_parameters_create_secure_udp(configure_dtls: nw_parameters_configure_protocol_block_t,
38    //                                        configure_udp: nw_parameters_configure_protocol_block_t)
39    //     -> nw_parameters_t;
40
41    pub fn nw_parameters_create() -> nw_parameters_t;
42    pub fn nw_parameters_copy(parameters: nw_parameters_t) -> nw_parameters_t;
43    pub fn nw_parameters_require_interface(parameters: nw_parameters_t, interface: nw_interface_t);
44    pub fn nw_parameters_copy_required_interface(parameters: nw_parameters_t) -> nw_interface_t;
45    pub fn nw_parameters_prohibit_interface(parameters: nw_parameters_t, interface: nw_interface_t);
46    pub fn nw_parameters_clear_prohibited_interfaces(parameters: nw_parameters_t);
47
48    // typedef bool (^nw_parameters_iterate_interfaces_block_t)(nw_interface_t interface);
49    // pub fn nw_parameters_iterate_prohibited_interfaces(parameters: nw_parameters_t,
50    //                                                    iterate_block: nw_parameters_iterate_interfaces_block_t);
51
52    pub fn nw_parameters_set_required_interface_type(parameters: nw_parameters_t) -> nw_interface_type_t;
53    pub fn nw_parameters_prohibit_interface_type(parameters: nw_parameters_t, interface_type: nw_interface_type_t);
54    pub fn nw_parameters_clear_prohibited_interface_types(parameters: nw_parameters_t);
55
56    // typedef bool (^nw_parameters_iterate_interface_types_block_t)(nw_interface_type_t interface_type);
57    // pub fn nw_parameters_iterate_prohibited_interface_types(parameters: nw_parameters_t,
58    //                                                         iterate_block: nw_parameters_iterate_interface_types_block_t);
59
60    pub fn nw_parameters_set_prohibit_expensive(parameters: nw_parameters_t, prohibit_expensive: bool);
61    pub fn nw_parameters_get_prohibit_expensive(parameters: nw_parameters_t) -> bool;
62    pub fn nw_parameters_set_reuse_local_address(parameters: nw_parameters_t, reuse_local_address: bool);
63    pub fn nw_parameters_get_reuse_local_address(parameters: nw_parameters_t) -> bool;
64    pub fn nw_parameters_set_local_endpoint(parameters: nw_parameters_t, local_endpoint: nw_endpoint_t);
65    pub fn nw_parameters_copy_local_endpoint(parameters: nw_parameters_t) -> nw_endpoint_t;
66    pub fn nw_parameters_set_include_peer_to_peer(parameters: nw_parameters_t, include_peer_to_peer: bool);
67    pub fn nw_parameters_get_include_peer_to_peer(parameters: nw_parameters_t) -> bool;
68    pub fn nw_parameters_set_fast_open_enabled(parameters: nw_parameters_t, fast_open_enabled: bool);
69    pub fn nw_parameters_get_fast_open_enabled(parameters: nw_parameters_t) -> bool;
70
71    pub fn nw_parameters_set_service_class(parameters: nw_parameters_t, service_class: nw_service_class_t);
72    pub fn nw_parameters_get_service_class(parameters: nw_parameters_t) -> nw_service_class_t;
73
74    pub fn nw_parameters_set_multipath_service(parameters: nw_parameters_t, multipath_service: nw_multipath_service_t);
75    pub fn nw_parameters_get_multipath_service(parameters: nw_parameters_t) -> nw_multipath_service_t;
76
77    pub fn nw_parameters_copy_default_protocol_stack(parameters: nw_parameters_t) -> nw_protocol_stack_t;
78    pub fn nw_protocol_stack_prepend_application_protocol(stack: nw_protocol_stack_t, protocol: nw_protocol_options_t);
79
80    pub fn nw_protocol_stack_clear_application_protocols(stack: nw_protocol_stack_t);
81
82    // typedef void (^nw_protocol_stack_iterate_protocols_block_t)(nw_protocol_options_t protocol);
83    // pub fn nw_protocol_stack_iterate_application_protocols(stack: nw_protocol_stack_t,
84    //                                                        iterate_block: nw_protocol_stack_iterate_protocols_block_t);
85
86    pub fn nw_protocol_stack_copy_transport_protocol(stack: nw_protocol_stack_t) -> nw_protocol_options_t;
87    pub fn nw_protocol_stack_set_transport_protocol(stack: nw_protocol_stack_t, protocol: nw_protocol_options_t);
88    pub fn nw_protocol_stack_copy_internet_protocol(stack: nw_protocol_stack_t) -> nw_protocol_options_t;
89    pub fn nw_parameters_set_local_only(parameters: nw_parameters_t, local_only: bool);
90    pub fn nw_parameters_get_local_only(parameters: nw_parameters_t) -> bool;
91    pub fn nw_parameters_set_prefer_no_proxy(parameters: nw_parameters_t, prefer_no_proxy: bool);
92    pub fn nw_parameters_get_prefer_no_proxy(parameters: nw_parameters_t) -> bool;
93    pub fn nw_parameters_set_expired_dns_behavior(parameters: nw_parameters_t,
94                                                  expired_dns_behavior: nw_parameters_expired_dns_behavior_t);
95    pub fn nw_parameters_get_expired_dns_behavior(parameters: nw_parameters_t) -> nw_parameters_expired_dns_behavior_t;
96    
97}
98
99