From 909a2f5362a73395818c112c79aca7131d6f7c70 Mon Sep 17 00:00:00 2001 From: John Smith Date: Sat, 19 Aug 2023 21:21:58 -0400 Subject: [PATCH] windows fixess --- veilid-core/src/intf/native/system.rs | 23 ++++++--------- veilid-flutter/example/pubspec.lock | 40 +++++++++++++-------------- 2 files changed, 29 insertions(+), 34 deletions(-) diff --git a/veilid-core/src/intf/native/system.rs b/veilid-core/src/intf/native/system.rs index f473e253..ef8cbddc 100644 --- a/veilid-core/src/intf/native/system.rs +++ b/veilid-core/src/intf/native/system.rs @@ -79,21 +79,19 @@ pub async fn txt_lookup>(host: S) -> EyreResult> { cfg_if! { if #[cfg(target_os = "windows")] { use core::ffi::c_void; - use windows::core::PSTR; + use windows::core::{PSTR,PCSTR}; use std::ffi::CStr; use windows::Win32::NetworkManagement::Dns::{DnsQuery_UTF8, DnsFree, DNS_TYPE_TEXT, DNS_QUERY_STANDARD, DNS_RECORDA, DnsFreeRecordList}; let mut out = Vec::new(); unsafe { let mut p_query_results: *mut DNS_RECORDA = core::ptr::null_mut(); - let status = DnsQuery_UTF8(host.as_ref(), DNS_TYPE_TEXT as u16, DNS_QUERY_STANDARD, core::ptr::null_mut(), &mut p_query_results as *mut *mut DNS_RECORDA, core::ptr::null_mut()); - if status != 0 { - bail!("Failed to resolve TXT record"); - } + let host = host.as_ref().to_string(); + DnsQuery_UTF8(PCSTR::from_raw(host.as_ptr()), DNS_TYPE_TEXT, DNS_QUERY_STANDARD, None, &mut p_query_results as *mut *mut DNS_RECORDA, None).wrap_err("Failed to resolve TXT record")?; let mut p_record: *mut DNS_RECORDA = p_query_results; while !p_record.is_null() { - if (*p_record).wType == DNS_TYPE_TEXT as u16 { + if (*p_record).wType == DNS_TYPE_TEXT.0 { let count:usize = (*p_record).Data.TXT.dwStringCount.try_into().unwrap(); let string_array: *const PSTR = &(*p_record).Data.TXT.pStringArray[0]; for n in 0..count { @@ -107,7 +105,7 @@ pub async fn txt_lookup>(host: S) -> EyreResult> { } p_record = (*p_record).pNext; } - DnsFree(p_query_results as *const c_void, DnsFreeRecordList); + DnsFree(Some(p_query_results as *const c_void), DnsFreeRecordList); } Ok(out) @@ -139,7 +137,7 @@ pub async fn ptr_lookup(ip_addr: IpAddr) -> EyreResult { cfg_if! { if #[cfg(target_os = "windows")] { use core::ffi::c_void; - use windows::core::PSTR; + use windows::core::{PSTR,PCSTR}; use std::ffi::CStr; use windows::Win32::NetworkManagement::Dns::{DnsQuery_UTF8, DnsFree, DNS_TYPE_PTR, DNS_QUERY_STANDARD, DNS_RECORDA, DnsFreeRecordList}; @@ -159,14 +157,11 @@ pub async fn ptr_lookup(ip_addr: IpAddr) -> EyreResult { unsafe { let mut p_query_results: *mut DNS_RECORDA = core::ptr::null_mut(); - let status = DnsQuery_UTF8(host, DNS_TYPE_PTR as u16, DNS_QUERY_STANDARD, core::ptr::null_mut(), &mut p_query_results as *mut *mut DNS_RECORDA, core::ptr::null_mut()); - if status != 0 { - bail!("Failed to resolve PTR record"); - } + DnsQuery_UTF8(PCSTR::from_raw(host.as_ptr()), DNS_TYPE_PTR, DNS_QUERY_STANDARD, None, &mut p_query_results as *mut *mut DNS_RECORDA, None).wrap_err("Failed to resolve PTR record")?; let mut p_record: *mut DNS_RECORDA = p_query_results; while !p_record.is_null() { - if (*p_record).wType == DNS_TYPE_PTR as u16 { + if (*p_record).wType == DNS_TYPE_PTR.0 { let p_name_host: PSTR = (*p_record).Data.PTR.pNameHost; let c_str: &CStr = CStr::from_ptr(p_name_host.0 as *const i8); if let Ok(str_slice) = c_str.to_str() { @@ -176,7 +171,7 @@ pub async fn ptr_lookup(ip_addr: IpAddr) -> EyreResult { } p_record = (*p_record).pNext; } - DnsFree(p_query_results as *const c_void, DnsFreeRecordList); + DnsFree(Some(p_query_results as *const c_void), DnsFreeRecordList); } bail!("No records returned"); } else { diff --git a/veilid-flutter/example/pubspec.lock b/veilid-flutter/example/pubspec.lock index 81b9dd42..b3d588dd 100644 --- a/veilid-flutter/example/pubspec.lock +++ b/veilid-flutter/example/pubspec.lock @@ -61,10 +61,10 @@ packages: dependency: transitive description: name: collection - sha256: "4a07be6cb69c84d677a6c3096fcf960cc3285a8330b4603e0d463d15d9bd934c" + sha256: f092b211a4319e98e5ff58223576de6c2803db36221657b46c82574721240687 url: "https://pub.dev" source: hosted - version: "1.17.1" + version: "1.17.2" convert: dependency: transitive description: @@ -168,14 +168,6 @@ packages: url: "https://pub.dev" source: hosted version: "1.0.0" - js: - dependency: transitive - description: - name: js - sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3 - url: "https://pub.dev" - source: hosted - version: "0.6.7" json_annotation: dependency: transitive description: @@ -212,18 +204,18 @@ packages: dependency: transitive description: name: matcher - sha256: "6501fbd55da300384b768785b83e5ce66991266cec21af89ab9ae7f5ce1c4cbb" + sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e" url: "https://pub.dev" source: hosted - version: "0.12.15" + version: "0.12.16" material_color_utilities: dependency: transitive description: name: material_color_utilities - sha256: d92141dc6fe1dad30722f9aa826c7fbc896d021d792f80678280601aff8cf724 + sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" url: "https://pub.dev" source: hosted - version: "0.2.0" + version: "0.5.0" meta: dependency: transitive description: @@ -329,10 +321,10 @@ packages: dependency: transitive description: name: source_span - sha256: dd904f795d4b4f3b870833847c461801f6750a9fa8e61ea5ac53f9422b31f250 + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" url: "https://pub.dev" source: hosted - version: "1.9.1" + version: "1.10.0" stack_trace: dependency: transitive description: @@ -385,10 +377,10 @@ packages: dependency: transitive description: name: test_api - sha256: eb6ac1540b26de412b3403a163d919ba86f6a973fe6cc50ae3541b80092fdcfb + sha256: "75760ffd7786fffdfb9597c35c5b27eaeec82be8edfb6d71d32651128ed7aab8" url: "https://pub.dev" source: hosted - version: "0.5.1" + version: "0.6.0" typed_data: dependency: transitive description: @@ -411,7 +403,15 @@ packages: path: ".." relative: true source: path - version: "0.1.7" + version: "0.1.9" + web: + dependency: transitive + description: + name: web + sha256: dc8ccd225a2005c1be616fe02951e2e342092edf968cf0844220383757ef8f10 + url: "https://pub.dev" + source: hosted + version: "0.1.4-beta" win32: dependency: transitive description: @@ -437,5 +437,5 @@ packages: source: hosted version: "3.5.0" sdks: - dart: ">=3.0.0 <4.0.0" + dart: ">=3.1.0-185.0.dev <4.0.0" flutter: ">=3.10.6"