=head1 SEE ALSO
-L<http://msdn.microsoft.com/library/en-us/rpc/rpc/field_attributes.asp>,
-L<http://wiki.wireshark.org/DCE/RPC>,
-L<http://www.samba.org/>,
+L<https://msdn.microsoft.com/en-us/library/windows/desktop/aa373864%28v=vs.85%29.aspx>
+L<https://wiki.wireshark.org/DCE/RPC>,
+L<https://www.samba.org/>,
L<yapp(1)>
=head1 LICENSE
-pidl is licensed under the GNU General Public License L<http://www.gnu.org/licenses/gpl.html>.
+pidl is licensed under the GNU General Public License L<https://www.gnu.org/licenses/gpl.html>.
=head1 AUTHOR
use strict;
+use warnings;
use FindBin qw($RealBin $Script);
use lib "$RealBin/lib";
use Getopt::Long;
my($opt_client);
my($opt_typelib);
my($opt_server);
+my($opt_server_compat);
my($opt_ndr_parser);
my($opt_tdr_parser);
my($opt_ws_parser);
'samba3-template' => \$opt_samba3_template,
'header:s' => \$opt_header,
'server:s' => \$opt_server,
+ 'server-compat:s' => \$opt_server_compat,
'typelib:s' => \$opt_typelib,
'tdr-parser:s' => \$opt_tdr_parser,
'template' => \$opt_template,
if (defined($opt_ws_parser) or
defined($opt_client) or
defined($opt_server) or
+ defined($opt_server_compat) or
defined($opt_header) or
defined($opt_ndr_parser) or
defined($opt_python) or
if (defined($opt_python)) {
require Parse::Pidl::Samba4::Python;
my $generator = new Parse::Pidl::Samba4::Python();
+ if (!defined($opt_client)) {
+ $c_header = undef;
+ }
my ($prsr) = $generator->Parse($basename, $ndr,
- "$outputdir/ndr_$basename\_c.h", $h_filename);
+ $c_header, $h_filename);
FileSave("$outputdir/py_$basename.c", $prsr);
}
FileSave($header, $h_code);
}
+ if (defined($opt_server_compat)) {
+ require Parse::Pidl::Samba4::NDR::ServerCompat;
+
+ my $c_scompat = ($opt_server_compat or "$outputdir/ndr_$basename\_scompat.c");
+ my $h_scompat = $c_scompat;
+ $h_scompat =~ s/\.c$/.h/;
+
+ my $generator = new Parse::Pidl::Samba4::NDR::ServerCompat();
+ my ($source, $header) = $generator->Parse($ndr, $h_scompat, $h_filename);
+
+ FileSave($c_scompat, $source);
+ FileSave($h_scompat, $header);
+ }
}
if (scalar(@ARGV) == 0) {