build fixes

This commit is contained in:
Adam Ierymenko 2021-02-23 18:20:12 -05:00
parent 605d5a423f
commit 7cc0314bd4
No known key found for this signature in database
GPG key ID: C8877CF2D7A5D7F3
3 changed files with 34 additions and 35 deletions

View file

@ -14,9 +14,8 @@
use std::str; use std::str;
use crate::{capi as ztcore, Dictionary, Endpoint, Fingerprint, IpScope, MAC, Address, CredentialType}; use crate::{capi as ztcore, Dictionary, Endpoint, Fingerprint, IpScope, MAC, Address, CredentialType};
use num_derive::{FromPrimitive, ToPrimitive}; use num_derive::FromPrimitive;
use num_traits::FromPrimitive; use num_traits::FromPrimitive;
use crate::trace::TraceEvent::TryingNewPath;
#[derive(FromPrimitive, PartialEq, Eq)] #[derive(FromPrimitive, PartialEq, Eq)]
pub enum TracePacketDropReason { pub enum TracePacketDropReason {
@ -357,18 +356,18 @@ impl TraceEvent {
#[inline(always)] #[inline(always)]
pub fn layer(&self) -> TraceEventLayer { pub fn layer(&self) -> TraceEventLayer {
match *self { match *self {
TraceEvent::UnexpectedError => TraceEventLayer::Other, TraceEvent::UnexpectedError {..} => TraceEventLayer::Other,
TraceEvent::ResetingPathsInScope => TraceEventLayer::VL1, TraceEvent::ResetingPathsInScope {..} => TraceEventLayer::VL1,
TraceEvent::TryingNewPath => TraceEventLayer::VL1, TraceEvent::TryingNewPath {..} => TraceEventLayer::VL1,
TraceEvent::LearnedNewPath => TraceEventLayer::VL1, TraceEvent::LearnedNewPath {..} => TraceEventLayer::VL1,
TraceEvent::IncomingPacketDropped => TraceEventLayer::VL1, TraceEvent::IncomingPacketDropped {..} => TraceEventLayer::VL1,
TraceEvent::OutgoingFrameDropped => TraceEventLayer::VL2, TraceEvent::OutgoingFrameDropped {..} => TraceEventLayer::VL2,
TraceEvent::IncomingFrameDropped => TraceEventLayer::VL2, TraceEvent::IncomingFrameDropped {..} => TraceEventLayer::VL2,
TraceEvent::NetworkConfigRequested => TraceEventLayer::VL2, TraceEvent::NetworkConfigRequested {..} => TraceEventLayer::VL2,
TraceEvent::NetworkFilter => TraceEventLayer::VL2Filter, TraceEvent::NetworkFilter {..} => TraceEventLayer::VL2Filter,
TraceEvent::NetworkCredentialRejected => TraceEventLayer::VL2, TraceEvent::NetworkCredentialRejected {..} => TraceEventLayer::VL2,
} }
} }
@ -376,17 +375,7 @@ impl TraceEvent {
pub fn parse_message(msg: &Dictionary) -> Option<TraceEvent> { pub fn parse_message(msg: &Dictionary) -> Option<TraceEvent> {
msg.get_ui(ztcore::ZT_TRACE_FIELD_TYPE).map_or(None, |mt: u64| -> Option<TraceEvent> { msg.get_ui(ztcore::ZT_TRACE_FIELD_TYPE).map_or(None, |mt: u64| -> Option<TraceEvent> {
let cl = msg.get_ui(ztcore::ZT_TRACE_FIELD_CODE_LOCATION).unwrap_or(0) as u32; let cl = msg.get_ui(ztcore::ZT_TRACE_FIELD_CODE_LOCATION).unwrap_or(0) as u32;
match mt as u32 { match mt as ztcore::ZT_TraceEventType {
_ => { // ztcore::ZT_TraceEventType_ZT_TRACE_UNEXPECTED_ERROR
Some(TraceEvent::UnexpectedError {
code_location: cl,
message: msg.get_str(ztcore::ZT_TRACE_FIELD_MESSAGE).map_or_else(|| {
format!("WARNING: unknown trace message type {}, this version may be too old!", mt)
}, |m| {
m.to_string()
}),
})
}
ztcore::ZT_TraceEventType_ZT_TRACE_VL1_RESETTING_PATHS_IN_SCOPE => { ztcore::ZT_TraceEventType_ZT_TRACE_VL1_RESETTING_PATHS_IN_SCOPE => {
Some(TraceEvent::ResetingPathsInScope { Some(TraceEvent::ResetingPathsInScope {
code_location: cl, code_location: cl,
@ -396,7 +385,7 @@ impl TraceEvent {
my_new_external: trace_optional_endpoint(msg.get(ztcore::ZT_TRACE_FIELD_NEW_ENDPOINT)), my_new_external: trace_optional_endpoint(msg.get(ztcore::ZT_TRACE_FIELD_NEW_ENDPOINT)),
scope: IpScope::from_i32(msg.get_ui(ztcore::ZT_TRACE_FIELD_RESET_ADDRESS_SCOPE).unwrap_or(0) as i32).unwrap_or(IpScope::None), scope: IpScope::from_i32(msg.get_ui(ztcore::ZT_TRACE_FIELD_RESET_ADDRESS_SCOPE).unwrap_or(0) as i32).unwrap_or(IpScope::None),
}) })
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL1_TRYING_NEW_PATH => { ztcore::ZT_TraceEventType_ZT_TRACE_VL1_TRYING_NEW_PATH => {
let tf = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT); let tf = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT);
let ep = msg.get(ztcore::ZT_TRACE_FIELD_ENDPOINT); let ep = msg.get(ztcore::ZT_TRACE_FIELD_ENDPOINT);
@ -416,7 +405,7 @@ impl TraceEvent {
} }
} }
None None
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL1_LEARNED_NEW_PATH => { ztcore::ZT_TraceEventType_ZT_TRACE_VL1_LEARNED_NEW_PATH => {
let fp = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT); let fp = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT);
if fp.is_some() { if fp.is_some() {
@ -432,7 +421,7 @@ impl TraceEvent {
} }
} }
None None
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL1_INCOMING_PACKET_DROPPED => { ztcore::ZT_TraceEventType_ZT_TRACE_VL1_INCOMING_PACKET_DROPPED => {
Some(TraceEvent::IncomingPacketDropped { Some(TraceEvent::IncomingPacketDropped {
code_location: cl, code_location: cl,
@ -444,7 +433,7 @@ impl TraceEvent {
verb: msg.get_ui(ztcore::ZT_TRACE_FIELD_PACKET_VERB).unwrap_or(0) as i32, verb: msg.get_ui(ztcore::ZT_TRACE_FIELD_PACKET_VERB).unwrap_or(0) as i32,
reason: TracePacketDropReason::from_i32(msg.get_ui(ztcore::ZT_TRACE_FIELD_REASON).unwrap_or(0) as i32).unwrap_or(TracePacketDropReason::Unspecified), reason: TracePacketDropReason::from_i32(msg.get_ui(ztcore::ZT_TRACE_FIELD_REASON).unwrap_or(0) as i32).unwrap_or(TracePacketDropReason::Unspecified),
}) })
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL2_OUTGOING_FRAME_DROPPED => { ztcore::ZT_TraceEventType_ZT_TRACE_VL2_OUTGOING_FRAME_DROPPED => {
Some(TraceEvent::OutgoingFrameDropped { Some(TraceEvent::OutgoingFrameDropped {
code_location: cl, code_location: cl,
@ -460,7 +449,7 @@ impl TraceEvent {
}), }),
reason: TraceFrameDropReason::from_i32(msg.get_ui(ztcore::ZT_TRACE_FIELD_REASON).unwrap_or(0) as i32).unwrap_or(TraceFrameDropReason::Unspecified), reason: TraceFrameDropReason::from_i32(msg.get_ui(ztcore::ZT_TRACE_FIELD_REASON).unwrap_or(0) as i32).unwrap_or(TraceFrameDropReason::Unspecified),
}) })
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL2_INCOMING_FRAME_DROPPED => { ztcore::ZT_TraceEventType_ZT_TRACE_VL2_INCOMING_FRAME_DROPPED => {
let fp = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT); let fp = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT);
if fp.is_some() { if fp.is_some() {
@ -484,13 +473,13 @@ impl TraceEvent {
} }
} }
None None
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL2_NETWORK_CONFIG_REQUESTED => { ztcore::ZT_TraceEventType_ZT_TRACE_VL2_NETWORK_CONFIG_REQUESTED => {
Some(TraceEvent::NetworkConfigRequested { Some(TraceEvent::NetworkConfigRequested {
code_location: cl, code_location: cl,
network_id: msg.get_ui(ztcore::ZT_TRACE_FIELD_NETWORK_ID).unwrap_or(0), network_id: msg.get_ui(ztcore::ZT_TRACE_FIELD_NETWORK_ID).unwrap_or(0),
}) })
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL2_NETWORK_FILTER => { ztcore::ZT_TraceEventType_ZT_TRACE_VL2_NETWORK_FILTER => {
let verdict_int = msg.get(ztcore::ZT_TRACE_FIELD_RULE_FLAG_ACCEPT).map_or_else(|| -> i32 { 0 as i32 }, |a| -> i32 { i32::from_str_radix(str::from_utf8(a).unwrap_or("0"), 16).unwrap_or(0) }); let verdict_int = msg.get(ztcore::ZT_TRACE_FIELD_RULE_FLAG_ACCEPT).map_or_else(|| -> i32 { 0 as i32 }, |a| -> i32 { i32::from_str_radix(str::from_utf8(a).unwrap_or("0"), 16).unwrap_or(0) });
let mut verdict = TraceFilterResult::Reject; let mut verdict = TraceFilterResult::Reject;
@ -518,7 +507,7 @@ impl TraceEvent {
inbound: msg.get_ui(ztcore::ZT_TRACE_FIELD_RULE_FLAG_INBOUND).unwrap_or(0) != 0, inbound: msg.get_ui(ztcore::ZT_TRACE_FIELD_RULE_FLAG_INBOUND).unwrap_or(0) != 0,
result: verdict, result: verdict,
}) })
} },
ztcore::ZT_TraceEventType_ZT_TRACE_VL2_NETWORK_CREDENTIAL_REJECTED => { ztcore::ZT_TraceEventType_ZT_TRACE_VL2_NETWORK_CREDENTIAL_REJECTED => {
let fp = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT); let fp = msg.get(ztcore::ZT_TRACE_FIELD_IDENTITY_FINGERPRINT);
if fp.is_some() { if fp.is_some() {
@ -536,7 +525,17 @@ impl TraceEvent {
} }
} }
None None
} },
_ => { // ztcore::ZT_TraceEventType_ZT_TRACE_UNEXPECTED_ERROR
Some(TraceEvent::UnexpectedError {
code_location: cl,
message: msg.get_str(ztcore::ZT_TRACE_FIELD_MESSAGE).map_or_else(|| {
format!("WARNING: unknown trace message type {}, this version may be too old!", mt)
}, |m| {
m.to_string()
}),
})
},
} }
}) })
} }

View file

@ -144,14 +144,14 @@ impl Log {
#[macro_export] #[macro_export]
macro_rules! l( macro_rules! l(
($logger:ident, $($arg:tt)*) => { ($logger:expr, $($arg:tt)*) => {
$logger.log(format!($($arg)*)) $logger.log(format!($($arg)*))
} }
); );
#[macro_export] #[macro_export]
macro_rules! d( macro_rules! d(
($logger:ident, $($arg:tt)*) => { ($logger:expr, $($arg:tt)*) => {
$logger.debug(format!($($arg)*)) $logger.debug(format!($($arg)*))
} }
); );

View file

@ -382,7 +382,7 @@ pub(crate) fn run(store: &Arc<Store>, auth_token: Option<String>) -> i32 {
d!(log, "error binding UDP socket to {}: {}", addr.0.to_string(), e.to_string()); d!(log, "error binding UDP socket to {}: {}", addr.0.to_string(), e.to_string());
}, |s| { }, |s| {
d!(log, "bound UDP socket at {}", addr.0.to_string()); d!(log, "bound UDP socket at {}", addr.0.to_string());
udp_sockets.insert(addr.0.clone(), s.unwrap()); udp_sockets.insert(addr.0.clone(), s);
}); });
} }
} }