From d65f0095c9acc11e9512c546a99af720d7dd5036 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 2 Dec 2003 03:06:21 +0000 Subject: added netr_DatabaseSync(). It doesn't work as I haven't done schannel yet, but at least the request is understood by w2k3 Also modified pidl to allow multiple branches in a union to have the same element. This is used in netlogon. (This used to be commit 983c0e9683fa9666a6e055d1776ebeef8cd2e700) --- source4/build/pidl/header.pm | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) (limited to 'source4/build') diff --git a/source4/build/pidl/header.pm b/source4/build/pidl/header.pm index cdc4522517..3277525487 100644 --- a/source4/build/pidl/header.pm +++ b/source4/build/pidl/header.pm @@ -115,29 +115,27 @@ sub HeaderEnum($$) } -##################################################################### -# parse a union element -sub HeaderUnionElement($) -{ - my($element) = shift; - $res .= "/* [case($element->{CASE})] */ "; - if ($element->{TYPE} eq "UNION_ELEMENT") { - HeaderElement($element->{DATA}); - } -} - ##################################################################### # parse a union sub HeaderUnion($$) { - my($union) = shift; - my($name) = shift; - (defined $union->{PROPERTIES}) && HeaderProperties($union->{PROPERTIES}); - $res .= "\nunion $name {\n"; - foreach my $e (@{$union->{DATA}}) { - HeaderUnionElement($e); - } - $res .= "}"; + my($union) = shift; + my($name) = shift; + my %done = (); + + (defined $union->{PROPERTIES}) && HeaderProperties($union->{PROPERTIES}); + $res .= "\nunion $name {\n"; + $tab_depth++; + foreach my $e (@{$union->{DATA}}) { + if ($e->{TYPE} eq "UNION_ELEMENT") { + if (! defined $done{$e->{DATA}->{NAME}}) { + HeaderElement($e->{DATA}); + } + $done{$e->{DATA}->{NAME}} = 1; + } + } + $tab_depth--; + $res .= "}"; } ##################################################################### -- cgit