Add pidl --samba3-libnetapi option.
[samba.git] / source / pidl / pidl
index 220d62cd715f8be269b5f62412124a3f86d9d41f..82fee06dc570d03121adf0c0e7cd7137e3cb437b 100755 (executable)
@@ -469,6 +469,7 @@ my($opt_samba3_parser);
 my($opt_samba3_server);
 my($opt_samba3_ndr_client);
 my($opt_samba3_ndr_server);
+my($opt_samba3_libnetapi);
 my($opt_template) = 0;
 my($opt_client);
 my($opt_typelib);
@@ -529,6 +530,8 @@ Samba 3 output:
                             using Samba4's NDR code [cli_BASENAME.c]
  --samba3-ndr-server[=OUTF] create server call wrapper for Samba3 
                             using Samba4's NDR code [srv_BASENAME.c]
+ --samba3-libnetapi[=OUTF] create libnetapi call wrapper for Samba3
+                            using Samba4's NDR code [libnetapi_BASENAME.c]
 
 Wireshark parsers:
  --ws-parser[=OUTFILE]  create Wireshark parser and header
@@ -554,6 +557,7 @@ my $result = GetOptions (
                'dump-ndr-tree:s' => \$opt_dump_ndr_tree,
                'samba3-ndr-client:s' => \$opt_samba3_ndr_client,
                'samba3-ndr-server:s' => \$opt_samba3_ndr_server,
+               'samba3-libnetapi:s' => \$opt_samba3_libnetapi,
                'header:s' => \$opt_header,
            'server:s' => \$opt_server,
                'typelib:s' => \$opt_typelib,
@@ -642,6 +646,7 @@ sub process_file($)
            defined($opt_samba3_header) or 
            defined($opt_samba3_parser) or 
            defined($opt_samba3_server) or 
+           defined($opt_samba3_libnetapi) or
            defined($opt_swig) or
            defined($opt_samba3_ndr_client) or
            defined($opt_samba3_ndr_server)) {
@@ -770,6 +775,16 @@ sub process_file($)
                FileSave($header, $h_code);
        }
 
+       if (defined($opt_samba3_libnetapi)) {
+               my $client = ($opt_samba3_libnetapi or "$outputdir/libnetapi_$basename.c");
+               my $header = $client; $header =~ s/\.c$/\.h/;
+               require Parse::Pidl::Samba3::libnetapi;
+               my $generator = new Parse::Pidl::Samba3::libnetapi();
+               my ($c_code,$h_code) = $generator->Parse($ndr, $header, $h_filename);
+               FileSave($client, $c_code);
+               FileSave($header, $h_code);
+       }
+
 }
 
 if (scalar(@ARGV) == 0) {