WRONG! pidl-wireshark: generate NDR64 enabled code for enums
authorMatthieu Patou <mat@matws.net>
Sun, 29 Sep 2013 09:00:17 +0000 (02:00 -0700)
committerStefan Metzmacher <metze@samba.org>
Mon, 4 Nov 2013 11:19:25 +0000 (12:19 +0100)
Signed-off-by: Matthieu Patou <mat@matws.net>
pidl/lib/Parse/Pidl/Wireshark/NDR.pm

index 99e358b482757364fbe53711e5bb0ba8eaf0de1b..0c5340fb20e03b3a036d709206ebc0fd444d3fc9 100644 (file)
@@ -166,13 +166,15 @@ sub Enum($$$$)
        $self->pidl_code("$dissectorname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 *param _U_)");
        $self->pidl_code("{");
        $self->indent;
-       $self->pidl_code("g$e->{BASE_TYPE} parameter=0;");
+       my $type = $e->{BASE_TYPE};
+       $type = "uint1632" if ($e->{BASE_TYPE} eq "uint16");
+       $self->pidl_code("g${type} parameter=0;");
        $self->pidl_code("if(param){");
        $self->indent;
-       $self->pidl_code("parameter=(g$e->{BASE_TYPE})*param;");
+       $self->pidl_code("parameter=(g${type})*param;");
        $self->deindent;
        $self->pidl_code("}");
-       $self->pidl_code("offset = dissect_ndr_$e->{BASE_TYPE}(tvb, offset, pinfo, tree, drep, hf_index, &parameter);");
+       $self->pidl_code("offset = dissect_ndr_${type}(tvb, offset, pinfo, tree, drep, hf_index, &parameter);");
        $self->pidl_code("if(param){");
        $self->indent;
        $self->pidl_code("*param=(guint32)parameter;");