r14223: Couple of small fixes:
authorJelmer Vernooij <jelmer@samba.org>
Sat, 11 Mar 2006 23:20:37 +0000 (23:20 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 18:57:05 +0000 (13:57 -0500)
 - 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
source4/pidl/lib/Parse/Pidl/Samba3/Template.pm
source4/pidl/lib/Parse/Pidl/Samba3/Types.pm
source4/pidl/pidl

index 480a6c8e4411d64da5bc2a1e1fdfbb8798d2bac0..c479b14afa4ef3ab8dfc1ab1b83d293a9419b5dc 100644 (file)
@@ -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};";
index 072aa07850366805ed15f3bb8ba8e4e75041cdc7..47d565dce66fd00fab45abfd23ebb69de0fba642 100644 (file)
@@ -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");
index c31f406a380bac689417f38c7bf27a8636e13719..666d23e669557f36c41a56e5c3088628eef13e6f 100644 (file)
@@ -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",
index dcf58507747aeb31e2e215b8fb478b455e5ed93e..1c70b35e02b8728d840a9fbe30a79978f5fb0996 100755 (executable)
@@ -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);