use crate::jsonbuilder::{JsonBuilder, JsonError};
use crate::snmp::snmp::SNMPTransaction;
-use crate::snmp::snmp_parser::{NetworkAddress,PduType};
+use crate::snmp::snmp_parser::{NetworkAddress, PduType};
use std::borrow::Cow;
-fn str_of_pdu_type(t:&PduType) -> Cow<str> {
+fn str_of_pdu_type(t: &PduType) -> Cow<str> {
match t {
&PduType::GetRequest => Cow::Borrowed("get_request"),
&PduType::GetNextRequest => Cow::Borrowed("get_next_request"),
}
}
-fn snmp_log_response(jsb: &mut JsonBuilder, tx: &mut SNMPTransaction) -> Result<(), JsonError>
-{
+fn snmp_log_response(jsb: &mut JsonBuilder, tx: &SNMPTransaction) -> Result<(), JsonError> {
jsb.open_object("snmp")?;
jsb.set_uint("version", tx.version as u64)?;
if tx.encrypted {
jsb.set_string("trap_type", &format!("{:?}", trap_type))?;
jsb.set_string("trap_oid", &oid.to_string())?;
match address {
- NetworkAddress::IPv4(ip) => {jsb.set_string("trap_address", &ip.to_string())?;},
+ NetworkAddress::IPv4(ip) => {
+ jsb.set_string("trap_address", &ip.to_string())?;
+ }
}
}
if !info.vars.is_empty() {
}
#[no_mangle]
-pub extern "C" fn SCSnmpLogJsonResponse(tx: &mut SNMPTransaction, jsb: &mut JsonBuilder) -> bool
-{
+pub unsafe extern "C" fn SCSnmpLogJsonResponse(
+ tx: *const std::os::raw::c_void, jsb: *mut std::os::raw::c_void,
+) -> bool {
+ let tx = cast_pointer!(tx, SNMPTransaction);
+ let jsb = cast_pointer!(jsb, JsonBuilder);
snmp_log_response(jsb, tx).is_ok()
}