mirror of
https://github.com/samba-team/samba.git
synced 2024-12-22 13:34:15 +03:00
pidl: support HRESULT as return code in wireshark autogenerated dissectors.
Guenther Change-Id: I68b7c579c5a519e429d2f4c2b3f63247e02f24e3 Signed-off-by: Günther Deschner <gd@samba.org> Reviewed-on: https://code.wireshark.org/review/16718 Reviewed-by: Michael Mann <mmann78@netscape.net> Reviewed-by: Stefan Metzmacher <metze@samba.org>
This commit is contained in:
parent
fee1f4ce15
commit
d569bda1e5
@ -571,7 +571,7 @@ sub Function($$$)
|
||||
$self->pidl_code("{");
|
||||
$self->indent;
|
||||
if ( not defined($fn->{RETURN_TYPE})) {
|
||||
} elsif ($fn->{RETURN_TYPE} eq "NTSTATUS" or $fn->{RETURN_TYPE} eq "WERROR")
|
||||
} elsif ($fn->{RETURN_TYPE} eq "NTSTATUS" or $fn->{RETURN_TYPE} eq "WERROR" or $fn->{RETURN_TYPE} eq "HRESULT")
|
||||
{
|
||||
$self->pidl_code("guint32 status;\n");
|
||||
} elsif (my $type = getType($fn->{RETURN_TYPE})) {
|
||||
@ -607,6 +607,11 @@ sub Function($$$)
|
||||
$self->pidl_code("\tcol_append_fstr(pinfo->cinfo, COL_INFO, \", Error: %s\", val_to_str(status, WERR_errors, \"Unknown DOS error 0x%08x\"));\n");
|
||||
|
||||
$return_types{$ifname}->{"werror"} = ["WERROR", "Windows Error"];
|
||||
} elsif ($fn->{RETURN_TYPE} eq "HRESULT") {
|
||||
$self->pidl_code("offset = dissect_ndr_uint32(tvb, offset, pinfo, tree, di, drep, hf\_$ifname\_hresult, &status);\n");
|
||||
$self->pidl_code("if (status != 0)");
|
||||
$self->pidl_code("\tcol_append_fstr(pinfo->cinfo, COL_INFO, \", Error: %s\", val_to_str(status, HRES_errors, \"Unknown HRES error 0x%08x\"));\n");
|
||||
$return_types{$ifname}->{"hresult"} = ["HRESULT", "HRES Windows Error"];
|
||||
} elsif (my $type = getType($fn->{RETURN_TYPE})) {
|
||||
if ($type->{DATA}->{TYPE} eq "ENUM") {
|
||||
my $return_type = "g".Parse::Pidl::Typelist::enum_type_fn($type->{DATA});
|
||||
@ -1099,6 +1104,8 @@ sub Initialize($$)
|
||||
"offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, \@HF\@, \@PARAM\@);","FT_UINT32", "BASE_DEC", 0, "VALS(WERR_errors)", 4);
|
||||
$self->register_type("NTSTATUS",
|
||||
"offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, \@HF\@, \@PARAM\@);","FT_UINT32", "BASE_DEC", 0, "VALS(NT_errors)", 4);
|
||||
$self->register_type("HRESULT",
|
||||
"offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, di, drep, \@HF\@, \@PARAM\@);","FT_UINT32", "BASE_DEC", 0, "VALS(HRES_errors)", 4);
|
||||
$self->register_type("ipv6address", "proto_tree_add_item(tree, \@HF\@, tvb, offset, 16, ENC_NA); offset += 16;", "FT_IPv6", "BASE_NONE", 0, "NULL", 16);
|
||||
$self->register_type("ipv4address", "proto_tree_add_item(tree, \@HF\@, tvb, offset, 4, ENC_BIG_ENDIAN); offset += 4;", "FT_IPv4", "BASE_NONE", 0, "NULL", 4);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user