diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2006-03-11 23:20:37 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:57:05 -0500 |
commit | 9edbad7a36a2a7e61439eba9cd043adf81f70468 (patch) | |
tree | 7495b43c6aa928b20209e725a7920917bb947696 | |
parent | 39f1f55610594c4b82c4b0f1ec7c9611b2f3f8a4 (diff) | |
download | samba-9edbad7a36a2a7e61439eba9cd043adf81f70468.tar.gz samba-9edbad7a36a2a7e61439eba9cd043adf81f70468.tar.bz2 samba-9edbad7a36a2a7e61439eba9cd043adf81f70468.zip |
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)
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba3/Header.pm | 3 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba3/Template.pm | 36 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba3/Types.pm | 9 | ||||
-rwxr-xr-x | 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); |