Skip to content

Commit

Permalink
wireshark-dissector: Add names like tw.sys.info
Browse files Browse the repository at this point in the history
Fixes #39.
  • Loading branch information
heinrich5991 committed Jul 18, 2023
1 parent 092281c commit aff9b03
Show file tree
Hide file tree
Showing 3 changed files with 368 additions and 4 deletions.
19 changes: 19 additions & 0 deletions wireshark-dissector/src/spec.rs
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ pub struct Flag {
}
#[derive(Debug)]
pub struct Message {
pub id: FieldId,
pub name: Interned,
pub identifier: Interned,
pub members: Vec<Member>,
}
#[derive(Debug)]
Expand Down Expand Up @@ -518,7 +520,9 @@ impl Message {
let name = intern(&format!("{}.{}", sys_prefix, m.name.snake()));
let prefix = intern(&format!("{}.{}", prefix, name));
Ok(Message {
id: Default::default(),
name,
identifier: prefix,
members: m.members.into_iter().map(
|member| Member::from_gamenet(context, prefix, member)
).collect::<Result<_, _>>()?,
Expand All @@ -528,7 +532,9 @@ impl Message {
let name = intern(&format!("connless.{}", m.name.snake()));
let prefix = intern(&format!("{}.{}", prefix, name));
Ok(Message {
id: Default::default(),
name,
identifier: prefix,
members: m.members.into_iter().map(
|member| Member::from_gamenet(context, prefix, member)
).collect::<Result<_, _>>()?,
Expand All @@ -538,6 +544,15 @@ impl Message {
FH: FnMut(sys::hf_register_info),
FT: FnMut(*mut c_int),
{
h(sys::hf_register_info {
p_id: self.id.as_ptr(),
hfinfo: sys::_header_field_info {
name: self.name.c(),
abbrev: self.identifier.c(),
type_: sys::FT_NONE,
..HFRI_DEFAULT
},
});
for m in &self.members {
m.field_register_info(h, t);
}
Expand All @@ -548,6 +563,10 @@ impl Message {
tvb: *mut sys::tvbuff_t,
p: &mut Unpacker<'a>,
) -> Result<(), ()> {
let item = sys::proto_tree_add_none_format(tree, self.id.get(), tvb, 0, 0, c("\0"));
if !item.is_null() {
(*(*item).finfo).flags |= sys::FI_HIDDEN;
}
for m in &self.members {
m.type_.dissect(m.description, tree, tvb, p)?;
}
Expand Down
5 changes: 3 additions & 2 deletions wireshark-dissector/sys/generate
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,18 @@ bindgen \
--allowlist-var '^COL_INFO$' \
--allowlist-var '^ENC_BIG_ENDIAN$' \
--allowlist-var '^ENC_NA$' \
--allowlist-var '^FI_HIDDEN$' \
--no-prepend-enum-name \
--opaque-type 'GByteArray' \
--opaque-type 'GHashTable' \
--opaque-type 'GRegex' \
--opaque-type 'GSList' \
--opaque-type '_item_label_t' \
--opaque-type 'address' \
--opaque-type 'epan_column_info' \
--opaque-type 'epan_session' \
--opaque-type 'frame_data' \
--opaque-type 'proto_item' \
--opaque-type 'proto_tree' \
--opaque-type 'fvalue_t' \
--opaque-type 'tvbuff_t' \
--opaque-type 'wmem_allocator_t' \
--opaque-type 'wmem_list_t' \
Expand Down
Loading

0 comments on commit aff9b03

Please sign in to comment.