use libc::{c_char, c_int, size_t, timeval};
use super::scamper_addr::ScamperAddrT;
use super::scamper_list::{ScamperListT, ScamperCycleT};
#[repr(C)]
pub struct ScamperDealiasT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasMercatorT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasAllyT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasRadargunT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasPrefixscanT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasBumpT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasMidarestT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasMidardiscT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasMidardiscRoundT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasProbeT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasProbedefUdpT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasProbedefIcmpT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasProbedefTcpT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasProbedefT {
_opaque: [u8; 0],
}
#[repr(C)]
pub struct ScamperDealiasReplyT {
_opaque: [u8; 0],
}
unsafe extern "C" {
pub fn scamper_dealias_tojson(
dealias: *const ScamperDealiasT,
l: *mut size_t,
) -> *mut c_char;
pub fn scamper_dealias_totext(
dealias: *const ScamperDealiasT,
l: *mut size_t,
) -> *mut c_char;
pub fn scamper_dealias_free(dealias: *mut ScamperDealiasT);
pub fn scamper_dealias_list_get(dealias: *const ScamperDealiasT) -> *mut ScamperListT;
pub fn scamper_dealias_cycle_get(dealias: *const ScamperDealiasT) -> *mut ScamperCycleT;
pub fn scamper_dealias_userid_get(dealias: *const ScamperDealiasT) -> u32;
pub fn scamper_dealias_start_get(dealias: *const ScamperDealiasT) -> *const timeval;
pub fn scamper_dealias_errmsg_get(dealias: *const ScamperDealiasT) -> *const c_char;
pub fn scamper_dealias_ally_get(
dealias: *const ScamperDealiasT,
) -> *mut ScamperDealiasAllyT;
pub fn scamper_dealias_mercator_get(
dealias: *const ScamperDealiasT,
) -> *mut ScamperDealiasMercatorT;
pub fn scamper_dealias_radargun_get(
dealias: *const ScamperDealiasT,
) -> *mut ScamperDealiasRadargunT;
pub fn scamper_dealias_prefixscan_get(
dealias: *const ScamperDealiasT,
) -> *mut ScamperDealiasPrefixscanT;
pub fn scamper_dealias_bump_get(
dealias: *const ScamperDealiasT,
) -> *mut ScamperDealiasBumpT;
pub fn scamper_dealias_midarest_get(
dealias: *const ScamperDealiasT,
) -> *mut ScamperDealiasMidarestT;
pub fn scamper_dealias_midardisc_get(
dealias: *const ScamperDealiasT,
) -> *mut ScamperDealiasMidardiscT;
pub fn scamper_dealias_probe_get(
dealias: *const ScamperDealiasT,
i: u32,
) -> *mut ScamperDealiasProbeT;
pub fn scamper_dealias_probec_get(dealias: *const ScamperDealiasT) -> u32;
pub fn scamper_dealias_method_is_mercator(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_method_is_ally(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_method_is_radargun(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_method_is_prefixscan(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_method_is_bump(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_method_is_midarest(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_method_is_midardisc(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_result_get(dealias: *const ScamperDealiasT) -> u8;
pub fn scamper_dealias_result_is_aliases(dealias: *const ScamperDealiasT) -> c_int;
pub fn scamper_dealias_mercator_def_get(
mc: *const ScamperDealiasMercatorT,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_mercator_attempts_get(mc: *const ScamperDealiasMercatorT) -> u8;
pub fn scamper_dealias_mercator_wait_timeout_get(
mc: *const ScamperDealiasMercatorT,
) -> *const timeval;
pub fn scamper_dealias_ally_def0_get(
ally: *const ScamperDealiasAllyT,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_ally_def1_get(
ally: *const ScamperDealiasAllyT,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_ally_wait_probe_get(
ally: *const ScamperDealiasAllyT,
) -> *const timeval;
pub fn scamper_dealias_ally_wait_timeout_get(
ally: *const ScamperDealiasAllyT,
) -> *const timeval;
pub fn scamper_dealias_ally_attempts_get(ally: *const ScamperDealiasAllyT) -> u8;
pub fn scamper_dealias_ally_flags_get(ally: *const ScamperDealiasAllyT) -> u8;
pub fn scamper_dealias_ally_fudge_get(ally: *const ScamperDealiasAllyT) -> u16;
pub fn scamper_dealias_ally_is_nobs(ally: *const ScamperDealiasAllyT) -> c_int;
pub fn scamper_dealias_radargun_def_get(
rg: *const ScamperDealiasRadargunT,
i: u32,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_radargun_defc_get(rg: *const ScamperDealiasRadargunT) -> u32;
pub fn scamper_dealias_radargun_rounds_get(rg: *const ScamperDealiasRadargunT) -> u16;
pub fn scamper_dealias_radargun_wait_probe_get(
rg: *const ScamperDealiasRadargunT,
) -> *const timeval;
pub fn scamper_dealias_radargun_wait_round_get(
rg: *const ScamperDealiasRadargunT,
) -> *const timeval;
pub fn scamper_dealias_radargun_wait_timeout_get(
rg: *const ScamperDealiasRadargunT,
) -> *const timeval;
pub fn scamper_dealias_radargun_flags_get(rg: *const ScamperDealiasRadargunT) -> u8;
pub fn scamper_dealias_prefixscan_a_get(
pf: *const ScamperDealiasPrefixscanT,
) -> *mut ScamperAddrT;
pub fn scamper_dealias_prefixscan_b_get(
pf: *const ScamperDealiasPrefixscanT,
) -> *mut ScamperAddrT;
pub fn scamper_dealias_prefixscan_ab_get(
pf: *const ScamperDealiasPrefixscanT,
) -> *mut ScamperAddrT;
pub fn scamper_dealias_prefixscan_xs_get(
pf: *const ScamperDealiasPrefixscanT,
i: u16,
) -> *mut ScamperAddrT;
pub fn scamper_dealias_prefixscan_xc_get(pf: *const ScamperDealiasPrefixscanT) -> u16;
pub fn scamper_dealias_prefixscan_prefix_get(pf: *const ScamperDealiasPrefixscanT) -> u8;
pub fn scamper_dealias_prefixscan_attempts_get(pf: *const ScamperDealiasPrefixscanT) -> u8;
pub fn scamper_dealias_prefixscan_replyc_get(pf: *const ScamperDealiasPrefixscanT) -> u8;
pub fn scamper_dealias_prefixscan_fudge_get(pf: *const ScamperDealiasPrefixscanT) -> u16;
pub fn scamper_dealias_prefixscan_wait_probe_get(
pf: *const ScamperDealiasPrefixscanT,
) -> *const timeval;
pub fn scamper_dealias_prefixscan_wait_timeout_get(
pf: *const ScamperDealiasPrefixscanT,
) -> *const timeval;
pub fn scamper_dealias_prefixscan_flags_get(pf: *const ScamperDealiasPrefixscanT) -> u8;
pub fn scamper_dealias_prefixscan_def_get(
pf: *const ScamperDealiasPrefixscanT,
i: u16,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_prefixscan_defc_get(pf: *const ScamperDealiasPrefixscanT) -> u16;
pub fn scamper_dealias_prefixscan_is_csa(pf: *const ScamperDealiasPrefixscanT) -> c_int;
pub fn scamper_dealias_prefixscan_is_nobs(pf: *const ScamperDealiasPrefixscanT) -> c_int;
pub fn scamper_dealias_bump_def0_get(
bump: *const ScamperDealiasBumpT,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_bump_def1_get(
bump: *const ScamperDealiasBumpT,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_bump_wait_probe_get(
bump: *const ScamperDealiasBumpT,
) -> *const timeval;
pub fn scamper_dealias_bump_limit_get(
bump: *const ScamperDealiasBumpT,
) -> *const timeval;
pub fn scamper_dealias_bump_attempts_get(bump: *const ScamperDealiasBumpT) -> u8;
pub fn scamper_dealias_midarest_def_get(
me: *const ScamperDealiasMidarestT,
i: u16,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_midarest_defc_get(me: *const ScamperDealiasMidarestT) -> u16;
pub fn scamper_dealias_midarest_rounds_get(me: *const ScamperDealiasMidarestT) -> u8;
pub fn scamper_dealias_midarest_wait_probe_get(
me: *const ScamperDealiasMidarestT,
) -> *const timeval;
pub fn scamper_dealias_midarest_wait_round_get(
me: *const ScamperDealiasMidarestT,
) -> *const timeval;
pub fn scamper_dealias_midarest_wait_timeout_get(
me: *const ScamperDealiasMidarestT,
) -> *const timeval;
pub fn scamper_dealias_midardisc_def_get(
md: *const ScamperDealiasMidardiscT,
i: u32,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_midardisc_defc_get(md: *const ScamperDealiasMidardiscT) -> u32;
pub fn scamper_dealias_midardisc_wait_timeout_get(
md: *const ScamperDealiasMidardiscT,
) -> *const timeval;
pub fn scamper_dealias_midardisc_startat_get(
md: *const ScamperDealiasMidardiscT,
) -> *const timeval;
pub fn scamper_dealias_midardisc_round_alloc() -> *mut ScamperDealiasMidardiscRoundT;
pub fn scamper_dealias_midardisc_round_free(r: *mut ScamperDealiasMidardiscRoundT);
pub fn scamper_dealias_midardisc_round_begin_set(
r: *mut ScamperDealiasMidardiscRoundT,
begin: u32,
);
pub fn scamper_dealias_midardisc_round_end_set(
r: *mut ScamperDealiasMidardiscRoundT,
end: u32,
);
pub fn scamper_dealias_midardisc_round_start_set(
r: *mut ScamperDealiasMidardiscRoundT,
start: *const timeval,
);
pub fn scamper_dealias_midardisc_round_begin_get(
r: *const ScamperDealiasMidardiscRoundT,
) -> u32;
pub fn scamper_dealias_midardisc_round_end_get(
r: *const ScamperDealiasMidardiscRoundT,
) -> u32;
pub fn scamper_dealias_midardisc_round_start_get(
r: *const ScamperDealiasMidardiscRoundT,
) -> *const timeval;
pub fn scamper_dealias_probe_def_get(
probe: *const ScamperDealiasProbeT,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_probe_seq_get(probe: *const ScamperDealiasProbeT) -> u32;
pub fn scamper_dealias_probe_tx_get(probe: *const ScamperDealiasProbeT) -> *const timeval;
pub fn scamper_dealias_probe_reply_get(
probe: *const ScamperDealiasProbeT,
i: u16,
) -> *mut ScamperDealiasReplyT;
pub fn scamper_dealias_probe_replyc_get(probe: *const ScamperDealiasProbeT) -> u16;
pub fn scamper_dealias_probe_ipid_get(probe: *const ScamperDealiasProbeT) -> u16;
pub fn scamper_dealias_probedef_src_get(
pd: *const ScamperDealiasProbedefT,
) -> *mut ScamperAddrT;
pub fn scamper_dealias_probedef_dst_get(
pd: *const ScamperDealiasProbedefT,
) -> *mut ScamperAddrT;
pub fn scamper_dealias_probedef_id_get(pd: *const ScamperDealiasProbedefT) -> u32;
pub fn scamper_dealias_probedef_method_get(pd: *const ScamperDealiasProbedefT) -> u8;
pub fn scamper_dealias_probedef_method_tostr(
pd: *const ScamperDealiasProbedefT,
buf: *mut c_char,
l: size_t,
) -> *mut c_char;
pub fn scamper_dealias_probedef_method_fromstr(
buf: *const c_char,
meth: *mut u8,
) -> c_int;
pub fn scamper_dealias_probedef_is_udp(pd: *const ScamperDealiasProbedefT) -> c_int;
pub fn scamper_dealias_probedef_is_icmp(pd: *const ScamperDealiasProbedefT) -> c_int;
pub fn scamper_dealias_probedef_is_tcp(pd: *const ScamperDealiasProbedefT) -> c_int;
pub fn scamper_dealias_probedef_ttl_get(pd: *const ScamperDealiasProbedefT) -> u8;
pub fn scamper_dealias_probedef_tos_get(pd: *const ScamperDealiasProbedefT) -> u8;
pub fn scamper_dealias_probedef_size_get(pd: *const ScamperDealiasProbedefT) -> u16;
pub fn scamper_dealias_probedef_mtu_get(pd: *const ScamperDealiasProbedefT) -> u16;
pub fn scamper_dealias_probedef_udp_get(
pd: *const ScamperDealiasProbedefT,
) -> *mut ScamperDealiasProbedefUdpT;
pub fn scamper_dealias_probedef_tcp_get(
pd: *const ScamperDealiasProbedefT,
) -> *mut ScamperDealiasProbedefTcpT;
pub fn scamper_dealias_probedef_icmp_get(
pd: *const ScamperDealiasProbedefT,
) -> *mut ScamperDealiasProbedefIcmpT;
pub fn scamper_dealias_probedef_udp_sport_get(
udp: *const ScamperDealiasProbedefUdpT,
) -> u16;
pub fn scamper_dealias_probedef_udp_dport_get(
udp: *const ScamperDealiasProbedefUdpT,
) -> u16;
pub fn scamper_dealias_probedef_icmp_csum_get(
icmp: *const ScamperDealiasProbedefIcmpT,
) -> u16;
pub fn scamper_dealias_probedef_icmp_id_get(
icmp: *const ScamperDealiasProbedefIcmpT,
) -> u16;
pub fn scamper_dealias_probedef_tcp_sport_get(
tcp: *const ScamperDealiasProbedefTcpT,
) -> u16;
pub fn scamper_dealias_probedef_tcp_dport_get(
tcp: *const ScamperDealiasProbedefTcpT,
) -> u16;
pub fn scamper_dealias_probedef_tcp_flags_get(
tcp: *const ScamperDealiasProbedefTcpT,
) -> u8;
pub fn scamper_dealias_probedef_alloc() -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_probedef_method_set(
pd: *mut ScamperDealiasProbedefT,
meth: *const c_char,
) -> c_int;
pub fn scamper_dealias_probedef_src_set(
pd: *mut ScamperDealiasProbedefT,
src: *mut ScamperAddrT,
) -> c_int;
pub fn scamper_dealias_probedef_dst_set(
pd: *mut ScamperDealiasProbedefT,
dst: *mut ScamperAddrT,
) -> c_int;
pub fn scamper_dealias_probedef_ttl_set(pd: *mut ScamperDealiasProbedefT, ttl: u8);
pub fn scamper_dealias_probedef_tos_set(pd: *mut ScamperDealiasProbedefT, tos: u8);
pub fn scamper_dealias_probedef_size_set(pd: *mut ScamperDealiasProbedefT, size: u16);
pub fn scamper_dealias_probedef_mtu_set(pd: *mut ScamperDealiasProbedefT, mtu: u16);
pub fn scamper_dealias_probedef_icmp_csum_set(
icmp: *mut ScamperDealiasProbedefIcmpT,
cs: u16,
);
pub fn scamper_dealias_probedef_icmp_id_set(
icmp: *mut ScamperDealiasProbedefIcmpT,
icmp_id: u16,
);
pub fn scamper_dealias_probedef_udp_sport_set(
udp: *mut ScamperDealiasProbedefUdpT,
sp: u16,
);
pub fn scamper_dealias_probedef_udp_dport_set(
udp: *mut ScamperDealiasProbedefUdpT,
dp: u16,
);
pub fn scamper_dealias_probedef_tcp_sport_set(
tcp: *mut ScamperDealiasProbedefTcpT,
sp: u16,
);
pub fn scamper_dealias_probedef_tcp_dport_set(
tcp: *mut ScamperDealiasProbedefTcpT,
dp: u16,
);
pub fn scamper_dealias_reply_src_get(
reply: *const ScamperDealiasReplyT,
) -> *mut ScamperAddrT;
pub fn scamper_dealias_reply_rx_get(reply: *const ScamperDealiasReplyT) -> *const timeval;
pub fn scamper_dealias_reply_flags_get(reply: *const ScamperDealiasReplyT) -> u8;
pub fn scamper_dealias_reply_proto_get(reply: *const ScamperDealiasReplyT) -> u8;
pub fn scamper_dealias_reply_ttl_get(reply: *const ScamperDealiasReplyT) -> u8;
pub fn scamper_dealias_reply_size_get(reply: *const ScamperDealiasReplyT) -> u16;
pub fn scamper_dealias_reply_icmp_type_get(reply: *const ScamperDealiasReplyT) -> u8;
pub fn scamper_dealias_reply_icmp_code_get(reply: *const ScamperDealiasReplyT) -> u8;
pub fn scamper_dealias_reply_icmp_q_ttl_get(reply: *const ScamperDealiasReplyT) -> u8;
pub fn scamper_dealias_reply_tcp_flags_get(reply: *const ScamperDealiasReplyT) -> u8;
pub fn scamper_dealias_reply_ipid_get(reply: *const ScamperDealiasReplyT) -> u16;
pub fn scamper_dealias_reply_ipid32_get(reply: *const ScamperDealiasReplyT) -> u32;
pub fn scamper_dealias_reply_is_ipid32(reply: *const ScamperDealiasReplyT) -> c_int;
pub fn scamper_dealias_reply_is_icmp(reply: *const ScamperDealiasReplyT) -> c_int;
pub fn scamper_dealias_reply_is_icmp_q(reply: *const ScamperDealiasReplyT) -> c_int;
pub fn scamper_dealias_reply_is_icmp_unreach(reply: *const ScamperDealiasReplyT) -> c_int;
pub fn scamper_dealias_reply_is_icmp_unreach_port(
reply: *const ScamperDealiasReplyT,
) -> c_int;
pub fn scamper_dealias_reply_is_icmp_ttl_exp(reply: *const ScamperDealiasReplyT) -> c_int;
pub fn scamper_dealias_reply_is_icmp_echo_reply(
reply: *const ScamperDealiasReplyT,
) -> c_int;
pub fn scamper_dealias_reply_is_tcp(reply: *const ScamperDealiasReplyT) -> c_int;
pub fn scamper_dealias_reply_from_target(
probe: *const ScamperDealiasProbeT,
reply: *const ScamperDealiasReplyT,
) -> c_int;
pub fn scamper_dealias_probe_use(
probe: *mut ScamperDealiasProbeT,
) -> *mut ScamperDealiasProbeT;
pub fn scamper_dealias_probe_free(probe: *mut ScamperDealiasProbeT);
pub fn scamper_dealias_probedef_use(
pd: *mut ScamperDealiasProbedefT,
) -> *mut ScamperDealiasProbedefT;
pub fn scamper_dealias_probedef_free(pd: *mut ScamperDealiasProbedefT);
pub fn scamper_dealias_reply_use(
reply: *mut ScamperDealiasReplyT,
) -> *mut ScamperDealiasReplyT;
pub fn scamper_dealias_reply_free(reply: *mut ScamperDealiasReplyT);
pub fn scamper_dealias_mercator_use(
mc: *mut ScamperDealiasMercatorT,
) -> *mut ScamperDealiasMercatorT;
pub fn scamper_dealias_mercator_free(mc: *mut ScamperDealiasMercatorT);
pub fn scamper_dealias_ally_use(
ally: *mut ScamperDealiasAllyT,
) -> *mut ScamperDealiasAllyT;
pub fn scamper_dealias_ally_free(ally: *mut ScamperDealiasAllyT);
pub fn scamper_dealias_radargun_use(
rg: *mut ScamperDealiasRadargunT,
) -> *mut ScamperDealiasRadargunT;
pub fn scamper_dealias_radargun_free(rg: *mut ScamperDealiasRadargunT);
pub fn scamper_dealias_prefixscan_use(
pf: *mut ScamperDealiasPrefixscanT,
) -> *mut ScamperDealiasPrefixscanT;
pub fn scamper_dealias_prefixscan_free(pf: *mut ScamperDealiasPrefixscanT);
}