From a327b7faf2b039013eb4aecbc8b873fba06e61d1 Mon Sep 17 00:00:00 2001 From: Congyu WANG Date: Mon, 22 Jul 2024 17:12:32 +0800 Subject: [PATCH] add binding to SCDynamicStoreKey.h --- generate_bindings.sh | 22 ++++++++- system-configuration-sys/src/dynamic_store.rs | 6 +-- .../src/dynamic_store_copy_specific.rs | 6 +-- .../src/dynamic_store_key.rs | 48 +++++++++++++++++++ system-configuration-sys/src/lib.rs | 1 + .../src/network_configuration.rs | 6 +-- .../src/network_reachability.rs | 8 ++-- system-configuration-sys/src/preferences.rs | 6 +-- .../src/schema_definitions.rs | 6 +-- .../src/network_configuration.rs | 3 +- .../src/network_reachability.rs | 2 +- 11 files changed, 91 insertions(+), 23 deletions(-) create mode 100644 system-configuration-sys/src/dynamic_store_key.rs diff --git a/generate_bindings.sh b/generate_bindings.sh index b21e98f..7f15f52 100755 --- a/generate_bindings.sh +++ b/generate_bindings.sh @@ -16,6 +16,7 @@ FRAMEWORK_PATH="$SDK_PATH/System/Library/Frameworks/" PREFERENCES_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/Headers/SCPreferences.h" DYNAMIC_STORE_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/Headers/SCDynamicStore.h" DYNAMIC_STORE_COPY_SPECIFIC_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/Headers/SCDynamicStoreCopySpecific.h" +DYNAMIC_STORE_KEY_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/Headers/SCDynamicStoreKey.h" NETWORK_CONFIGURATION_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/Headers/SCNetworkConfiguration.h" NETWORK_REACHABILITY_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/Headers/SCNetworkReachability.h" SCHEMA_DEFINITIONS_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/Headers/SCSchemaDefinitions.h" @@ -23,6 +24,7 @@ SCHEMA_DEFINITIONS_HEADER_PATH="$FRAMEWORK_PATH/SystemConfiguration.framework/He PREFERENCES_BINDING_PATH="./system-configuration-sys/src/preferences.rs" DYNAMIC_STORE_BINDING_PATH="./system-configuration-sys/src/dynamic_store.rs" DYNAMIC_STORE_COPY_SPECIFIC_BINDING_PATH="./system-configuration-sys/src/dynamic_store_copy_specific.rs" +DYNAMIC_STORE_KEY_BINDING_PATH="./system-configuration-sys/src/dynamic_store_key.rs" NETWORK_CONFIGURATION_BINDING_PATH="./system-configuration-sys/src/network_configuration.rs" NETWORK_REACHABILITY_BINDING_PATH="./system-configuration-sys/src/network_reachability.rs" SCHEMA_DEFINITIONS_BINDING_PATH="./system-configuration-sys/src/schema_definitions.rs" @@ -137,6 +139,24 @@ bindgen \ cleanup_binding $DYNAMIC_STORE_BINDING_PATH +echo "" +echo "" +echo "Generating bindings for $DYNAMIC_STORE_KEY_HEADER_PATH" + +bindgen \ + "${BINDGEN_COMMON_ARGUMENTS[@]}" \ + --allowlist-function "SCDynamicStoreKeyCreate.*" \ + --blocklist-type "(__)?CF.*" \ + --blocklist-type "dispatch_queue_[ts]" \ + --raw-line "use core_foundation_sys::base::CFAllocatorRef;" \ + --raw-line "use core_foundation_sys::string::CFStringRef;" \ + -o $DYNAMIC_STORE_KEY_BINDING_PATH \ + $DYNAMIC_STORE_KEY_HEADER_PATH -- \ + -I$SDK_PATH/usr/include \ + -F$FRAMEWORK_PATH + +cleanup_binding $DYNAMIC_STORE_KEY_BINDING_PATH + echo "" echo "" echo "Generating bindings for $DYNAMIC_STORE_COPY_SPECIFIC_HEADER_PATH" @@ -215,7 +235,7 @@ bindgen \ --blocklist-type "Boolean" \ --blocklist-type "dispatch_.*" \ --blocklist-type "(sockaddr|socklen_t|sa_family_t|__darwin_socklen_t|__uint.*_t)" \ - --raw-line '#![cfg_attr(feature = "cargo-clippy", allow(clippy::unreadable_literal))]' \ + --raw-line '#![cfg_attr(feature = "clippy", allow(clippy::unreadable_literal))]' \ --raw-line "use core_foundation_sys::base::{Boolean, CFAllocatorRef, CFTypeID, CFIndex};" \ --raw-line "use core_foundation_sys::string::CFStringRef;" \ --raw-line "use core_foundation_sys::runloop::CFRunLoopRef;" \ diff --git a/system-configuration-sys/src/dynamic_store.rs b/system-configuration-sys/src/dynamic_store.rs index 76e7739..c3a227d 100644 --- a/system-configuration-sys/src/dynamic_store.rs +++ b/system-configuration-sys/src/dynamic_store.rs @@ -1,8 +1,8 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.4 */ // Generated using: -// bindgen 0.66.1 -// macOS SDK 13.3. +// bindgen 0.69.4 +// macOS SDK 14.5. use core::ffi::c_void; use core_foundation_sys::array::CFArrayRef; diff --git a/system-configuration-sys/src/dynamic_store_copy_specific.rs b/system-configuration-sys/src/dynamic_store_copy_specific.rs index cb0f237..444389c 100644 --- a/system-configuration-sys/src/dynamic_store_copy_specific.rs +++ b/system-configuration-sys/src/dynamic_store_copy_specific.rs @@ -1,8 +1,8 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.4 */ // Generated using: -// bindgen 0.66.1 -// macOS SDK 13.3. +// bindgen 0.69.4 +// macOS SDK 14.5. use crate::dynamic_store::SCDynamicStoreRef; use core_foundation_sys::dictionary::CFDictionaryRef; diff --git a/system-configuration-sys/src/dynamic_store_key.rs b/system-configuration-sys/src/dynamic_store_key.rs new file mode 100644 index 0000000..a2aabc1 --- /dev/null +++ b/system-configuration-sys/src/dynamic_store_key.rs @@ -0,0 +1,48 @@ +/* automatically generated by rust-bindgen 0.69.4 */ + +// Generated using: +// bindgen 0.69.4 +// macOS SDK 14.5. + +use core_foundation_sys::base::CFAllocatorRef; +use core_foundation_sys::string::CFStringRef; + +extern "C" { + pub fn SCDynamicStoreKeyCreate(allocator: CFAllocatorRef, fmt: CFStringRef, ...) + -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateNetworkGlobalEntity( + allocator: CFAllocatorRef, + domain: CFStringRef, + entity: CFStringRef, + ) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateNetworkInterface( + allocator: CFAllocatorRef, + domain: CFStringRef, + ) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateNetworkInterfaceEntity( + allocator: CFAllocatorRef, + domain: CFStringRef, + ifname: CFStringRef, + entity: CFStringRef, + ) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateNetworkServiceEntity( + allocator: CFAllocatorRef, + domain: CFStringRef, + serviceID: CFStringRef, + entity: CFStringRef, + ) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateComputerName(allocator: CFAllocatorRef) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateConsoleUser(allocator: CFAllocatorRef) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateHostNames(allocator: CFAllocatorRef) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateLocation(allocator: CFAllocatorRef) -> CFStringRef; + + pub fn SCDynamicStoreKeyCreateProxies(allocator: CFAllocatorRef) -> CFStringRef; +} diff --git a/system-configuration-sys/src/lib.rs b/system-configuration-sys/src/lib.rs index 534590f..10dbdc9 100644 --- a/system-configuration-sys/src/lib.rs +++ b/system-configuration-sys/src/lib.rs @@ -25,6 +25,7 @@ pub type dispatch_queue_t = *mut libc::c_void; pub mod dynamic_store; pub mod dynamic_store_copy_specific; +pub mod dynamic_store_key; pub mod network_configuration; pub mod network_reachability; pub mod preferences; diff --git a/system-configuration-sys/src/network_configuration.rs b/system-configuration-sys/src/network_configuration.rs index 037ef28..c917f6f 100644 --- a/system-configuration-sys/src/network_configuration.rs +++ b/system-configuration-sys/src/network_configuration.rs @@ -1,8 +1,8 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.4 */ // Generated using: -// bindgen 0.66.1 -// macOS SDK 13.3. +// bindgen 0.69.4 +// macOS SDK 14.5. use core::ffi::c_void; use core_foundation_sys::array::CFArrayRef; diff --git a/system-configuration-sys/src/network_reachability.rs b/system-configuration-sys/src/network_reachability.rs index 3881adb..230ee94 100644 --- a/system-configuration-sys/src/network_reachability.rs +++ b/system-configuration-sys/src/network_reachability.rs @@ -1,10 +1,10 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.4 */ // Generated using: -// bindgen 0.66.1 -// macOS SDK 13.3. +// bindgen 0.69.4 +// macOS SDK 14.5. -#![cfg_attr(feature = "cargo-clippy", allow(clippy::unreadable_literal))] +#![cfg_attr(feature = "clippy", allow(clippy::unreadable_literal))] use crate::dispatch_queue_t; use core_foundation_sys::base::{Boolean, CFAllocatorRef, CFIndex, CFTypeID}; use core_foundation_sys::runloop::CFRunLoopRef; diff --git a/system-configuration-sys/src/preferences.rs b/system-configuration-sys/src/preferences.rs index 4292e48..ba09aa9 100644 --- a/system-configuration-sys/src/preferences.rs +++ b/system-configuration-sys/src/preferences.rs @@ -1,8 +1,8 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.4 */ // Generated using: -// bindgen 0.66.1 -// macOS SDK 13.3. +// bindgen 0.69.4 +// macOS SDK 14.5. use core::ffi::c_void; use core_foundation_sys::array::CFArrayRef; diff --git a/system-configuration-sys/src/schema_definitions.rs b/system-configuration-sys/src/schema_definitions.rs index 7bdca99..e45d9b8 100644 --- a/system-configuration-sys/src/schema_definitions.rs +++ b/system-configuration-sys/src/schema_definitions.rs @@ -1,8 +1,8 @@ -/* automatically generated by rust-bindgen 0.66.1 */ +/* automatically generated by rust-bindgen 0.69.4 */ // Generated using: -// bindgen 0.66.1 -// macOS SDK 13.3. +// bindgen 0.69.4 +// macOS SDK 14.5. use core_foundation_sys::string::CFStringRef; diff --git a/system-configuration/src/network_configuration.rs b/system-configuration/src/network_configuration.rs index a172cf8..88f4483 100644 --- a/system-configuration/src/network_configuration.rs +++ b/system-configuration/src/network_configuration.rs @@ -339,8 +339,7 @@ mod test { assert!(service_order.iter().all(|service_id| { services .iter() - .find(|service| service.id().as_ref() == Some(&*service_id)) - .is_some() + .any(|service| service.id().as_ref() == Some(&*service_id)) })) } diff --git a/system-configuration/src/network_reachability.rs b/system-configuration/src/network_reachability.rs index 2770ee3..71e79f4 100644 --- a/system-configuration/src/network_reachability.rs +++ b/system-configuration/src/network_reachability.rs @@ -468,7 +468,7 @@ mod test { // Can only testify that an empty string is invalid, everything else seems to work assert!( - !SCNetworkReachability::from_host(&get_cstring("")).is_some(), + SCNetworkReachability::from_host(&get_cstring("")).is_none(), "Constructed valid SCNetworkReachability from empty string" ); }