summaryrefslogtreecommitdiff
path: root/source4/pidl/lib/Parse/Pidl
diff options
context:
space:
mode:
authorJulien Kerihuel <j.kerihuel@openchange.org>2008-02-13 02:24:11 +0100
committerJelmer Vernooij <jelmer@samba.org>2008-02-13 02:24:11 +0100
commitd4006e799ac1305092c2d292c9237f58938268a2 (patch)
tree57c43d6fec3356a0908701e80b1264ac080cf0bc /source4/pidl/lib/Parse/Pidl
parentdcd890bd46a158ed42e025f5687c18d9b37097d8 (diff)
downloadsamba-d4006e799ac1305092c2d292c9237f58938268a2.tar.gz
samba-d4006e799ac1305092c2d292c9237f58938268a2.tar.bz2
samba-d4006e799ac1305092c2d292c9237f58938268a2.zip
Support ETT_FIELD keyword.
(This used to be commit ec8bd3991f76cf8746cf77c277c3491725711f9d)
Diffstat (limited to 'source4/pidl/lib/Parse/Pidl')
-rw-r--r--source4/pidl/lib/Parse/Pidl/Wireshark/Conformance.pm19
-rw-r--r--source4/pidl/lib/Parse/Pidl/Wireshark/NDR.pm4
2 files changed, 23 insertions, 0 deletions
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_FIELD> ett
+
+Register a custom ett field
+
=item I<STRIP_PREFIX> 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) {