[SCM] Samba Shared Repository - branch v3-6-test updated
Jeremy Allison
jra at samba.org
Wed Feb 2 12:50:06 MST 2011
The branch, v3-6-test has been updated
via 37a9ed0 pidl:Samba4/NDR/Parser: add support for 'ms_union' style aligment
via 66f81fc pidl:Samba4/NDR/Parser: only do the switch type alignment when we have a switch type
via 90817e4 pidl:NDR: add support for 'ms_union' property.
via e602bdd s4:torture/rpc/netlogon: add invalid level tests for netr_LogonControl2
via 713975e s4:torture/rpc/netlogon: improve comments in test_LogonControl2()
via 15f2775 s4:torture/rpc/netlogon: test invalid netr_LogonControl() level
via 108548e s4:torture/rpc/netlogon: test invalid LogonSamLogon levels
via f40571b s4:torture/rpc/netlogon: test validation levels 2 and 3
via 7843a78 netlogon.idl: remove pointless union arms of netr_DELTA_UNION
via 21931e3 netlogon.idl: use 'ms_union' as specified in [MS-NRPC]
via cc1dfd1 netlogon.idl: add missing [default]; union arms
via 037f4f2 s3:rpc_server/netlogon: add _netr_LogonSamLogon_check()
from 050e144 s3-net: prefer dcerpc_lsa_X functions in "net rpc".
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-6-test
- Log -----------------------------------------------------------------
commit 37a9ed0f923e825e961e1f24b157798c6895b2e6
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Jan 31 14:09:02 2011 +0100
pidl:Samba4/NDR/Parser: add support for 'ms_union' style aligment
metze
Autobuild-User: Stefan Metzmacher <metze at samba.org>
Autobuild-Date: Tue Feb 1 12:13:45 CET 2011 on sn-devel-104
(cherry picked from commit 9fe4b695feefb2a94559ce978048fb8a2189f5ab)
commit 66f81fcbf067fd4ca64f6662d8b97e9aee4b47bd
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Jan 31 14:05:52 2011 +0100
pidl:Samba4/NDR/Parser: only do the switch type alignment when we have a switch type
This doesn't change the logic, it just doesn't call the same aligment function
twice.
metze
(cherry picked from commit 6124148d66d90064ebe3fa2ecb2c6588705495a0)
commit 90817e47f6edacc47b01cba703be9952b0c5053d
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Jan 31 13:23:08 2011 +0100
pidl:NDR: add support for 'ms_union' property.
metze
(cherry picked from commit 76f2ddf5a9cef9e8253b11dec1304d51e47eda54)
commit e602bddaaa2e619f0e2d076b768f2294bf8b7450
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 13:04:48 2011 +0100
s4:torture/rpc/netlogon: add invalid level tests for netr_LogonControl2
metze
Autobuild-User: Stefan Metzmacher <metze at samba.org>
Autobuild-Date: Wed Feb 2 12:43:32 CET 2011 on sn-devel-104
(cherry picked from commit eca7292aeca5de494a39fff67f719d8e9c34aaf6)
commit 713975ec8553b9b7ec3f2c1919c7c164d335b007
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 13:03:49 2011 +0100
s4:torture/rpc/netlogon: improve comments in test_LogonControl2()
metze
(cherry picked from commit 1f9caef3622097965525fcbc5bf98e17228330e7)
commit 15f27754c22e50f5132bc922bc7dbeaf2f24f12b
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 12:44:59 2011 +0100
s4:torture/rpc/netlogon: test invalid netr_LogonControl() level
metze
(cherry picked from commit 89dd048bdfb463c1e9a7393f5298dc0a8125f75f)
commit 108548e271d81813170f413ca7bf87d7198a9ea1
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 08:32:40 2011 +0100
s4:torture/rpc/netlogon: test invalid LogonSamLogon levels
This proves that the invalid parameter/info class checks
need to be done before the credential chain checks.
metze
(cherry picked from commit d3e4d90d41b0fdd64bd65a2f440942b478e23e20)
commit f40571b2f7d4d7736f3b636c25b2272ae00fcf6f
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 10:52:33 2011 +0100
s4:torture/rpc/netlogon: test validation levels 2 and 3
metze
(cherry picked from commit e9807916af0b145cd85d01d90f6bab107a313812)
commit 7843a78d55e8c9c16f20f2b42c31a5449c7c189d
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 12:42:45 2011 +0100
netlogon.idl: remove pointless union arms of netr_DELTA_UNION
These were just padding, which was needed as we didn't have
'ms_union' support.
metze
(cherry picked from commit d63e7506f0be5bac014a83df4faf33c3ea0de3ea)
commit 21931e3e888dd12b473999b1c3ce61e27f0e846e
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 08:33:41 2011 +0100
netlogon.idl: use 'ms_union' as specified in [MS-NRPC]
metze
(cherry picked from commit 46348c34b77a1efe558314a8d058ebd8e05b7eed)
commit cc1dfd1295825ffae20c89b89890a6b2aecb57b8
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 10:28:28 2011 +0100
netlogon.idl: add missing [default]; union arms
metze
(cherry picked from commit 64ea7bd2c41186a877c0554968193b445de00680)
commit 037f4f2cf25c54920f042599852559a4c69b6349
Author: Stefan Metzmacher <metze at samba.org>
Date: Tue Feb 1 14:47:05 2011 +0100
s3:rpc_server/netlogon: add _netr_LogonSamLogon_check()
We need to check for invalid parameters before we check for
access denied.
metze
(cherry picked from commit 4507d2b9eb2ddabf8b101ed1c744981014298049)
-----------------------------------------------------------------------
Summary of changes:
librpc/idl/netlogon.idl | 25 ++---
pidl/lib/Parse/Pidl/NDR.pm | 61 +++++++------
pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm | 29 ++++--
pidl/tests/ndr.pl | 39 ++++----
source3/rpc_server/srv_netlog_nt.c | 101 ++++++++++++++++++---
source4/torture/rpc/netlogon.c | 147 +++++++++++++++++++++++++++---
6 files changed, 304 insertions(+), 98 deletions(-)
Changeset truncated at 500 lines:
diff --git a/librpc/idl/netlogon.idl b/librpc/idl/netlogon.idl
index ca974a6..813421e 100644
--- a/librpc/idl/netlogon.idl
+++ b/librpc/idl/netlogon.idl
@@ -16,6 +16,7 @@ cpp_quote("#define netr_SamDatabaseID8Bit netr_SamDatabaseID")
version(1.0),
endpoint("ncacn_np:[\\pipe\\netlogon]","ncacn_ip_tcp:","ncalrpc:"),
helper("../librpc/ndr/ndr_netlogon.h"),
+ ms_union,
pointer_default(unique)
]
@@ -179,6 +180,7 @@ interface netlogon
[case(NetlogonInteractiveTransitiveInformation)] netr_PasswordInfo *password;
[case(NetlogonNetworkTransitiveInformation)] netr_NetworkInfo *network;
[case(NetlogonServiceTransitiveInformation)] netr_PasswordInfo *password;
+ [default];
} netr_LogonLevel;
typedef [public,flag(NDR_PAHEX)] struct {
@@ -291,6 +293,7 @@ interface netlogon
[case(4)] netr_PacInfo *pac;
[case(NetlogonValidationGenericInfo2)] netr_GenericInfo2 *generic;
[case(NetlogonValidationSamInfo4)] netr_SamInfo6 *sam6;
+ [default];
} netr_Validation;
typedef [public, flag(NDR_PAHEX)] struct {
@@ -602,10 +605,6 @@ interface netlogon
} netr_DELTA_TRUSTED_DOMAIN;
typedef struct {
- uint16 unknown;
- } netr_DELTA_DELETE_TRUST;
-
- typedef struct {
uint32 privilege_entries;
uint32 privilege_control;
[size_is(privilege_entries)] uint32 *privilege_attrib;
@@ -625,14 +624,6 @@ interface netlogon
} netr_DELTA_ACCOUNT;
typedef struct {
- uint16 unknown;
- } netr_DELTA_DELETE_ACCOUNT;
-
- typedef struct {
- uint16 unknown;
- } netr_DELTA_DELETE_SECRET;
-
- typedef struct {
uint32 len;
uint32 maxlen;
[size_is(maxlen)][length_is(len)] uint8 *cipher_data;
@@ -694,15 +685,16 @@ interface netlogon
[case(NETR_DELTA_RENAME_ALIAS)] netr_DELTA_RENAME *rename_alias;
[case(NETR_DELTA_ALIAS_MEMBER)] netr_DELTA_ALIAS_MEMBER *alias_member;
[case(NETR_DELTA_POLICY)] netr_DELTA_POLICY *policy;
- [case(NETR_DELTA_TRUSTED_DOMAIN)] netr_DELTA_TRUSTED_DOMAIN *trusted_domain;
- [case(NETR_DELTA_DELETE_TRUST)] netr_DELTA_DELETE_TRUST delete_trust;
+ [case(NETR_DELTA_TRUSTED_DOMAIN)] netr_DELTA_TRUSTED_DOMAIN *trusted_domain;
+ [case(NETR_DELTA_DELETE_TRUST)] ; /* sid only */
[case(NETR_DELTA_ACCOUNT)] netr_DELTA_ACCOUNT *account;
- [case(NETR_DELTA_DELETE_ACCOUNT)] netr_DELTA_DELETE_ACCOUNT delete_account;
+ [case(NETR_DELTA_DELETE_ACCOUNT)] ; /* sid only */
[case(NETR_DELTA_SECRET)] netr_DELTA_SECRET *secret;
- [case(NETR_DELTA_DELETE_SECRET)] netr_DELTA_DELETE_SECRET delete_secret;
+ [case(NETR_DELTA_DELETE_SECRET)] ; /* name only */
[case(NETR_DELTA_DELETE_GROUP2)] netr_DELTA_DELETE_USER *delete_group;
[case(NETR_DELTA_DELETE_USER2)] netr_DELTA_DELETE_USER *delete_user;
[case(NETR_DELTA_MODIFY_COUNT)] udlong *modified_count;
+ [default];
} netr_DELTA_UNION;
typedef [switch_type(netr_DeltaEnum)] union {
@@ -728,6 +720,7 @@ interface netlogon
[case(NETR_DELTA_DELETE_GROUP2)] uint32 rid;
[case(NETR_DELTA_DELETE_USER2)] uint32 rid;
[case(NETR_DELTA_MODIFY_COUNT)] ;
+ [default];
} netr_DELTA_ID_UNION;
typedef struct {
diff --git a/pidl/lib/Parse/Pidl/NDR.pm b/pidl/lib/Parse/Pidl/NDR.pm
index 21b7568..3edb9b7 100644
--- a/pidl/lib/Parse/Pidl/NDR.pm
+++ b/pidl/lib/Parse/Pidl/NDR.pm
@@ -81,9 +81,9 @@ my $scalar_alignment = {
'dnsp_string' => 1
};
-sub GetElementLevelTable($$)
+sub GetElementLevelTable($$$)
{
- my ($e, $pointer_default) = @_;
+ my ($e, $pointer_default, $ms_union) = @_;
my $order = [];
my $is_deferred = 0;
@@ -307,9 +307,9 @@ sub GetElementLevelTable($$)
return $order;
}
-sub GetTypedefLevelTable($$$)
+sub GetTypedefLevelTable($$$$)
{
- my ($e, $data, $pointer_default) = @_;
+ my ($e, $data, $pointer_default, $ms_union) = @_;
my $order = [];
@@ -432,30 +432,30 @@ sub align_type($)
die("Unknown data type type $dt->{TYPE}");
}
-sub ParseElement($$)
+sub ParseElement($$$)
{
- my ($e, $pointer_default) = @_;
+ my ($e, $pointer_default, $ms_union) = @_;
$e->{TYPE} = expandAlias($e->{TYPE});
if (ref($e->{TYPE}) eq "HASH") {
- $e->{TYPE} = ParseType($e->{TYPE}, $pointer_default);
+ $e->{TYPE} = ParseType($e->{TYPE}, $pointer_default, $ms_union);
}
return {
NAME => $e->{NAME},
TYPE => $e->{TYPE},
PROPERTIES => $e->{PROPERTIES},
- LEVELS => GetElementLevelTable($e, $pointer_default),
+ LEVELS => GetElementLevelTable($e, $pointer_default, $ms_union),
REPRESENTATION_TYPE => ($e->{PROPERTIES}->{represent_as} or $e->{TYPE}),
ALIGN => align_type($e->{TYPE}),
ORIGINAL => $e
};
}
-sub ParseStruct($$)
+sub ParseStruct($$$)
{
- my ($struct, $pointer_default) = @_;
+ my ($struct, $pointer_default, $ms_union) = @_;
my @elements = ();
my $surrounding = undef;
@@ -473,7 +473,7 @@ sub ParseStruct($$)
foreach my $x (@{$struct->{ELEMENTS}})
{
- my $e = ParseElement($x, $pointer_default);
+ my $e = ParseElement($x, $pointer_default, $ms_union);
if ($x != $struct->{ELEMENTS}[-1] and
$e->{LEVELS}[0]->{IS_SURROUNDING}) {
fatal($x, "conformant member not at end of struct");
@@ -510,8 +510,10 @@ sub ParseStruct($$)
sub ParseUnion($$)
{
- my ($e, $pointer_default) = @_;
+ my ($e, $pointer_default, $ms_union) = @_;
my @elements = ();
+ my $is_ms_union = $ms_union;
+ $is_ms_union = 1 if has_property($e, "ms_union");
my $hasdefault = 0;
my $switch_type = has_property($e, "switch_type");
unless (defined($switch_type)) { $switch_type = "uint32"; }
@@ -524,6 +526,7 @@ sub ParseUnion($$)
ELEMENTS => undef,
PROPERTIES => $e->{PROPERTIES},
HAS_DEFAULT => $hasdefault,
+ IS_MS_UNION => $is_ms_union,
ORIGINAL => $e,
ALIGN => undef
} unless defined($e->{ELEMENTS});
@@ -536,7 +539,7 @@ sub ParseUnion($$)
if ($x->{TYPE} eq "EMPTY") {
$t = { TYPE => "EMPTY" };
} else {
- $t = ParseElement($x, $pointer_default);
+ $t = ParseElement($x, $pointer_default, $ms_union);
}
if (has_property($x, "default")) {
$t->{CASE} = "default";
@@ -561,6 +564,7 @@ sub ParseUnion($$)
ELEMENTS => \@elements,
PROPERTIES => $e->{PROPERTIES},
HAS_DEFAULT => $hasdefault,
+ IS_MS_UNION => $is_ms_union,
ORIGINAL => $e,
ALIGN => $align
};
@@ -568,7 +572,7 @@ sub ParseUnion($$)
sub ParseEnum($$)
{
- my ($e, $pointer_default) = @_;
+ my ($e, $pointer_default, $ms_union) = @_;
return {
TYPE => "ENUM",
@@ -580,9 +584,9 @@ sub ParseEnum($$)
};
}
-sub ParseBitmap($$)
+sub ParseBitmap($$$)
{
- my ($e, $pointer_default) = @_;
+ my ($e, $pointer_default, $ms_union) = @_;
return {
TYPE => "BITMAP",
@@ -594,9 +598,9 @@ sub ParseBitmap($$)
};
}
-sub ParseType($$)
+sub ParseType($$$)
{
- my ($d, $pointer_default) = @_;
+ my ($d, $pointer_default, $ms_union) = @_;
my $data = {
STRUCT => \&ParseStruct,
@@ -604,14 +608,14 @@ sub ParseType($$)
ENUM => \&ParseEnum,
BITMAP => \&ParseBitmap,
TYPEDEF => \&ParseTypedef,
- }->{$d->{TYPE}}->($d, $pointer_default);
+ }->{$d->{TYPE}}->($d, $pointer_default, $ms_union);
return $data;
}
sub ParseTypedef($$)
{
- my ($d, $pointer_default) = @_;
+ my ($d, $pointer_default, $ms_union) = @_;
my $data;
@@ -621,7 +625,7 @@ sub ParseTypedef($$)
$d->{PROPERTIES} = $d->{DATA}->{PROPERTIES};
}
- $data = ParseType($d->{DATA}, $pointer_default);
+ $data = ParseType($d->{DATA}, $pointer_default, $ms_union);
$data->{ALIGN} = align_type($d->{NAME});
} else {
$data = getType($d->{DATA});
@@ -631,7 +635,7 @@ sub ParseTypedef($$)
NAME => $d->{NAME},
TYPE => $d->{TYPE},
PROPERTIES => $d->{PROPERTIES},
- LEVELS => GetTypedefLevelTable($d, $data, $pointer_default),
+ LEVELS => GetTypedefLevelTable($d, $data, $pointer_default, $ms_union),
DATA => $data,
ORIGINAL => $d
};
@@ -644,9 +648,9 @@ sub ParseConst($$)
return $d;
}
-sub ParseFunction($$$)
+sub ParseFunction($$$$)
{
- my ($ndr,$d,$opnum) = @_;
+ my ($ndr,$d,$opnum,$ms_union) = @_;
my @elements = ();
my $rettype = undef;
my $thisopnum = undef;
@@ -659,7 +663,7 @@ sub ParseFunction($$$)
}
foreach my $x (@{$d->{ELEMENTS}}) {
- my $e = ParseElement($x, $ndr->{PROPERTIES}->{pointer_default});
+ my $e = ParseElement($x, $ndr->{PROPERTIES}->{pointer_default}, $ms_union);
push (@{$e->{DIRECTION}}, "in") if (has_property($x, "in"));
push (@{$e->{DIRECTION}}, "out") if (has_property($x, "out"));
@@ -720,6 +724,8 @@ sub ParseInterface($)
my @endpoints;
my $opnum = 0;
my $version;
+ my $ms_union = 0;
+ $ms_union = 1 if has_property($idl, "ms_union");
if (not has_property($idl, "pointer_default")) {
# MIDL defaults to "ptr" in DCE compatible mode (/osf)
@@ -729,11 +735,11 @@ sub ParseInterface($)
foreach my $d (@{$idl->{DATA}}) {
if ($d->{TYPE} eq "FUNCTION") {
- push (@functions, ParseFunction($idl, $d, \$opnum));
+ push (@functions, ParseFunction($idl, $d, \$opnum, $ms_union));
} elsif ($d->{TYPE} eq "CONST") {
push (@consts, ParseConst($idl, $d));
} else {
- push (@types, ParseType($d, $idl->{PROPERTIES}->{pointer_default}));
+ push (@types, ParseType($d, $idl->{PROPERTIES}->{pointer_default}, $ms_union));
FindNestedTypes(\@types, $d);
}
}
@@ -935,6 +941,7 @@ my %property_list = (
"switch_is" => ["ELEMENT"],
"switch_type" => ["ELEMENT", "UNION"],
"nodiscriminant" => ["UNION"],
+ "ms_union" => ["INTERFACE", "UNION"],
"case" => ["ELEMENT"],
"default" => ["ELEMENT"],
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
index 09518f7..72816af 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Parser.pm
@@ -1688,16 +1688,21 @@ sub ParseUnionPushPrimitives($$$$)
$self->pidl("uint32_t level = ndr_push_get_switch_value($ndr, $varname);");
- if (defined($e->{ALIGN})) {
- $self->pidl("NDR_CHECK(ndr_push_union_align($ndr, $e->{ALIGN}));");
- }
-
if (defined($e->{SWITCH_TYPE})) {
+ if (defined($e->{ALIGN})) {
+ $self->pidl("NDR_CHECK(ndr_push_union_align($ndr, $e->{ALIGN}));");
+ }
+
$self->pidl("NDR_CHECK(ndr_push_$e->{SWITCH_TYPE}($ndr, NDR_SCALARS, level));");
}
if (defined($e->{ALIGN})) {
- $self->pidl("NDR_CHECK(ndr_push_union_align($ndr, $e->{ALIGN}));");
+ if ($e->{IS_MS_UNION}) {
+ $self->pidl("/* ms_union is always aligned to the largest union arm*/");
+ $self->pidl("NDR_CHECK(ndr_push_align($ndr, $e->{ALIGN}));");
+ } else {
+ $self->pidl("NDR_CHECK(ndr_push_union_align($ndr, $e->{ALIGN}));");
+ }
}
$self->pidl("switch (level) {");
@@ -1837,11 +1842,12 @@ sub ParseUnionPullPrimitives($$$$$)
my ($self,$e,$ndr,$varname,$switch_type) = @_;
my $have_default = 0;
- if (defined($e->{ALIGN})) {
- $self->pidl("NDR_CHECK(ndr_pull_union_align($ndr, $e->{ALIGN}));");
- }
if (defined($switch_type)) {
+ if (defined($e->{ALIGN})) {
+ $self->pidl("NDR_CHECK(ndr_pull_union_align($ndr, $e->{ALIGN}));");
+ }
+
$self->pidl("NDR_CHECK(ndr_pull_$switch_type($ndr, NDR_SCALARS, &_level));");
$self->pidl("if (_level != level) {");
$self->pidl("\treturn ndr_pull_error($ndr, NDR_ERR_BAD_SWITCH, \"Bad switch value %u for $varname at \%s\", _level, __location__);");
@@ -1849,7 +1855,12 @@ sub ParseUnionPullPrimitives($$$$$)
}
if (defined($e->{ALIGN})) {
- $self->pidl("NDR_CHECK(ndr_pull_union_align($ndr, $e->{ALIGN}));");
+ if ($e->{IS_MS_UNION}) {
+ $self->pidl("/* ms_union is always aligned to the largest union arm*/");
+ $self->pidl("NDR_CHECK(ndr_push_align($ndr, $e->{ALIGN}));");
+ } else {
+ $self->pidl("NDR_CHECK(ndr_pull_union_align($ndr, $e->{ALIGN}));");
+ }
}
$self->pidl("switch (level) {");
diff --git a/pidl/tests/ndr.pl b/pidl/tests/ndr.pl
index 9c30189..b6fd489 100755
--- a/pidl/tests/ndr.pl
+++ b/pidl/tests/ndr.pl
@@ -22,7 +22,7 @@ my $e = {
'PARENT' => { TYPE => 'STRUCT' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
'IS_DEFERRED' => 0,
'LEVEL_INDEX' => 0,
@@ -33,7 +33,7 @@ is_deeply(GetElementLevelTable($e, "unique"), [
}
]);
-my $ne = ParseElement($e, "unique");
+my $ne = ParseElement($e, "unique", 0);
is($ne->{ORIGINAL}, $e);
is($ne->{NAME}, "v");
is($ne->{ALIGN}, 1);
@@ -60,7 +60,7 @@ $e = {
'TYPE' => 'uint8',
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -90,7 +90,7 @@ $e = {
'PARENT' => { TYPE => 'STRUCT' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -128,7 +128,7 @@ $e = {
'PARENT' => { TYPE => 'STRUCT' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -158,7 +158,7 @@ $e = {
'PARENT' => { TYPE => 'STRUCT' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -204,7 +204,7 @@ $e = {
'PARENT' => { TYPE => 'STRUCT' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "ref"), [
+is_deeply(GetElementLevelTable($e, "ref", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -250,7 +250,7 @@ $e = {
'PARENT' => { TYPE => 'FUNCTION' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -280,7 +280,7 @@ $e = {
'PARENT' => { TYPE => 'FUNCTION' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -326,7 +326,7 @@ $e = {
'PARENT' => { TYPE => 'FUNCTION' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "unique"), [
+is_deeply(GetElementLevelTable($e, "unique", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -372,7 +372,7 @@ $e = {
'PARENT' => { TYPE => 'FUNCTION' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "ref"), [
+is_deeply(GetElementLevelTable($e, "ref", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -418,7 +418,7 @@ $e = {
'PARENT' => { TYPE => 'FUNCTION' },
'LINE' => 42 };
-is_deeply(GetElementLevelTable($e, "ref"), [
+is_deeply(GetElementLevelTable($e, "ref", 0), [
{
LEVEL_INDEX => 0,
IS_DEFERRED => 0,
@@ -463,7 +463,7 @@ $e = {
'PARENT' => { TYPE => 'STRUCT' },
'LINE' => 42 };
-$ne = ParseElement($e, undef);
+$ne = ParseElement($e, undef, 0);
is($ne->{REPRESENTATION_TYPE}, "bar");
# representation_type
@@ -476,7 +476,7 @@ $e = {
'PARENT' => { TYPE => 'STRUCT' },
'LINE' => 42 };
--
Samba Shared Repository
More information about the samba-cvs
mailing list