pidl-wireshark: generate NDR64 enabled code for enums
[mat/samba.git] / pidl / lib / Parse / Pidl / Wireshark / NDR.pm
index 8deaf5593e5b69eb8ef4ca08ff87d566caccf79d..f409345615668458c1f3dc2a08789072b9446baf 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;");