From 5bf60f6d1cde4f9b84b958e276f469af8e0a9e4f Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 25 May 2021 21:38:53 -0700 Subject: [PATCH] Make Rust address getter return IpAddr instead of String --- pkg/crate/libzt/src/node.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/crate/libzt/src/node.rs b/pkg/crate/libzt/src/node.rs index 8d946bf..0523108 100644 --- a/pkg/crate/libzt/src/node.rs +++ b/pkg/crate/libzt/src/node.rs @@ -18,6 +18,9 @@ include!(concat!("./libzt.rs")); use std::ffi::{c_void, CStr, CString}; +use std::str::FromStr; +use std::net::{IpAddr,AddrParseError}; +use std::io; extern "C" fn native_event_handler(msg: *mut c_void) { let event: &mut zts_event_msg_t = unsafe { &mut *(msg as *mut zts_event_msg_t) }; @@ -103,13 +106,13 @@ impl ZeroTierNode { unsafe { zts_util_delay(interval_ms) } } - pub fn addr_get(&self, net_id: u64) -> String { + pub fn addr_get(&self, net_id: u64) -> Result { unsafe { let mut v = vec![0; (ZTS_INET6_ADDRSTRLEN as usize) + 1]; let ptr = v.as_mut_ptr() as *mut i8; zts_addr_get_str(net_id, ZTS_AF_INET, ptr, ZTS_INET6_ADDRSTRLEN); let c_str = CStr::from_ptr(ptr); - return c_str.to_string_lossy().into_owned(); + return IpAddr::from_str(&c_str.to_string_lossy().into_owned()) } } }