From 9edbad7a36a2a7e61439eba9cd043adf81f70468 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 11 Mar 2006 23:20:37 +0000 Subject: r14223: Couple of small fixes: - properly support --samba3-header argument used alone - support `security_descriptor' data type - only print pidl warnings, not perl warnings on erratic input - insert copyright header in templates (This used to be commit db1d7358b2ba9b104c1a96762af89b500b79172f) --- source4/pidl/lib/Parse/Pidl/Samba3/Header.pm | 3 ++- source4/pidl/lib/Parse/Pidl/Samba3/Template.pm | 36 +++++++++++++++++++------- source4/pidl/lib/Parse/Pidl/Samba3/Types.pm | 9 +++++++ source4/pidl/pidl | 2 +- 4 files changed, 38 insertions(+), 12 deletions(-) diff --git a/source4/pidl/lib/Parse/Pidl/Samba3/Header.pm b/source4/pidl/lib/Parse/Pidl/Samba3/Header.pm index 480a6c8e44..c479b14afa 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba3/Header.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba3/Header.pm @@ -32,7 +32,8 @@ sub ParseElement($) pidl "\tuint32 ptr$l->{POINTER_INDEX}_$e->{NAME};"; } elsif ($l->{TYPE} eq "SWITCH") { } elsif ($l->{TYPE} eq "DATA") { - pidl "\t" . DeclShort($e) . ";"; + my $n = DeclShort($e); + pidl "\t$n;" if ($n); } elsif ($l->{TYPE} eq "ARRAY" and $l->{IS_ZERO_TERMINATED}) { my ($t,$f) = StringType($e,$l); pidl "\t" . uc($t) . " $e->{NAME};"; diff --git a/source4/pidl/lib/Parse/Pidl/Samba3/Template.pm b/source4/pidl/lib/Parse/Pidl/Samba3/Template.pm index 072aa07850..47d565dce6 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba3/Template.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba3/Template.pm @@ -45,16 +45,32 @@ sub Parse($$) $res = ""; - pidl "/*"; - pidl " * Unix SMB/CIFS implementation."; - pidl " * template auto-generated by pidl. Modify to your needs"; - pidl " */"; - pidl ""; - pidl "#include \"includes.h\""; - pidl ""; - pidl "#undef DBGC_CLASS"; - pidl "#define DBGC_CLASS DBGC_MSRPC"; - pidl ""; + pidl "/* + * Unix SMB/CIFS implementation. + **** template auto-generated by pidl. Modify to your needs **** + * RPC Pipe client / server routines + * Copyright (C) YOUR NAME YEAR. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +#include \"includes.h\" + +#undef DBGC_CLASS +#define DBGC_CLASS DBGC_MSRPC +"; foreach (@$ndr) { ParseInterface($_) if ($_->{TYPE} eq "INTERFACE"); diff --git a/source4/pidl/lib/Parse/Pidl/Samba3/Types.pm b/source4/pidl/lib/Parse/Pidl/Samba3/Types.pm index c31f406a38..666d23e669 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba3/Types.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba3/Types.pm @@ -205,6 +205,15 @@ my $known_types = return "smb_io_pol_hnd(\"$e->{NAME}\", &n, ps, depth)"; } }, + security_descriptor => + { + DECL => "SEC_DESC", + INIT => "", + DISSECT_P => sub { + my ($e,$l,$n,$w,$a) = @_; + return "sec_io_desc(\"$e->{NAME}\", &n, ps, depth)"; + } + }, hyper => { DECL => "uint64", diff --git a/source4/pidl/pidl b/source4/pidl/pidl index dcf5850774..1c70b35e02 100755 --- a/source4/pidl/pidl +++ b/source4/pidl/pidl @@ -648,7 +648,7 @@ sub process_file($) defined($opt_client) or defined($opt_server) or defined($opt_ndr_parser) or defined($opt_ejs) or defined($opt_dump_ndr_tree) or defined($opt_samba3_header) or - defined($opt_samba3_header) or defined($opt_samba3_server) or + defined($opt_samba3_parser) or defined($opt_samba3_server) or defined($opt_samba3_template) or defined($opt_samba3_client)) { require Parse::Pidl::NDR; $ndr = Parse::Pidl::NDR::Parse($pidl); -- cgit