#!/usr/bin/perl -w
###################################################
-# package to parse IDL files and generate code for
+# package to parse IDL files and generate code for
# rpc functions in Samba
# Copyright tridge@samba.org 2000-2003
# released under the GNU GPL
--dump dump a pidl file back to idl
--header create a C header file
--parser create a C parser
- --server create server boilterplate
+ --server create server boilerplate
--template print a template for a pipe
--eparser create an ethereal parser
--diff run diff on the idl and dumped output
IdlValidator::Validate($pidl);
if ($opt_keep && !util::SaveStructure($pidl_file, $pidl)) {
die "Failed to save $pidl_file\n";
- }
+ }
} else {
$pidl = util::LoadStructure($pidl_file);
+ defined $pidl || die "Failed to load $pidl_file - maybe you need --parse\n";
}
-
+
if ($opt_dump) {
print IdlDump::Dump($pidl);
}
-
+
if ($opt_header) {
my($header) = util::ChangeExtension($output, ".h");
util::FileSave($header, IdlHeader::Parse($pidl));
my($server) = util::ChangeExtension($output, "_s.c");
util::FileSave($server, IdlServer::Parse($pidl));
}
-
+
if ($opt_parser) {
my($parser) = util::ChangeExtension($output, ".c");
IdlParser::Parse($pidl, $parser);
}
-
+
if ($opt_eparser) {
- my($parser) = util::ChangeExtension($output, ".c");
- util::FileSave($parser, IdlEParser::Parse($pidl));
+ my($parser) = dirname($output) . "/packet-dcerpc-$basename.c";
+ IdlEParser::Parse($pidl, $parser);
}
-
+
if ($opt_diff) {
my($tempfile) = util::ChangeExtension($output, ".tmp");
util::FileSave($tempfile, IdlDump::Dump($pidl));