Browse Source

Make Rust address getter return IpAddr instead of String

pull/8/head
Joseph Henry 5 years ago
parent
commit
5bf60f6d1c
No known key found for this signature in database
GPG Key ID: C45B33FF5EBC9344
  1. 7
      pkg/crate/libzt/src/node.rs

7
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<IpAddr,AddrParseError> {
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())
}
}
}

Loading…
Cancel
Save