From d4006e799ac1305092c2d292c9237f58938268a2 Mon Sep 17 00:00:00 2001 From: Julien Kerihuel Date: Wed, 13 Feb 2008 02:24:11 +0100 Subject: Support ETT_FIELD keyword. (This used to be commit ec8bd3991f76cf8746cf77c277c3491725711f9d) --- source4/pidl/lib/Parse/Pidl/Wireshark/Conformance.pm | 19 +++++++++++++++++++ source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm | 4 ++++ 2 files changed, 23 insertions(+) (limited to 'source4/pidl/lib/Parse') diff --git a/source4/pidl/lib/Parse/Pidl/Wireshark/Conformance.pm b/source4/pidl/lib/Parse/Pidl/Wireshark/Conformance.pm index b53c56e741..a240bbf9cd 100644 --- a/source4/pidl/lib/Parse/Pidl/Wireshark/Conformance.pm +++ b/source4/pidl/lib/Parse/Pidl/Wireshark/Conformance.pm @@ -52,6 +52,10 @@ use old_hf_name. This can be used in conjunction with HF_FIELD in order to make more than one element use the same filter name. +=item I ett + +Register a custom ett field + =item I prefix Remove the specified prefix from all function names (if present). @@ -313,6 +317,20 @@ sub handle_import }; } +sub handle_ett_field +{ + my $pos = shift @_; + my $data = shift @_; + my $ett = shift @_; + + unless(defined($ett)) { + error($pos, "incomplete ETT_FIELD command"); + return; + }; + + push (@{$data->{ett}}, $ett); +} + my %field_handlers = ( TYPE => \&handle_type, NOEMIT => \&handle_noemit, @@ -320,6 +338,7 @@ my %field_handlers = ( PARAM_VALUE => \&handle_param_value, HF_FIELD => \&handle_hf_field, HF_RENAME => \&handle_hf_rename, + ETT_FIELD => \&handle_ett_field, TFS => \&handle_tfs, STRIP_PREFIX => \&handle_strip_prefix, PROTOCOL => \&handle_protocol, diff --git a/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm b/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm index ffe104c941..8846b740ab 100644 --- a/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm +++ b/source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm @@ -940,6 +940,10 @@ sub Parse($$$$$) $self->{res}->{headers} .= "#include \"$h_basename\"\n"; $self->pidl_code(""); + if (defined($self->{conformance}->{ett})) { + register_ett($self,$_) foreach(@{$self->{conformance}->{ett}}) + } + # Wireshark protocol registration foreach (@$ndr) { -- cgit