1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-25 06:04:04 +03:00

r550: Remove clientfns.pm module - it was a bad idea.

Start to resurrect eparser.pm for auto-generating ethereal dissectors
for rpc.
(This used to be commit 993a18dd35fb0b09c088eb2bb38d3e14ff755130)
This commit is contained in:
Tim Potter 2004-05-07 11:57:31 +00:00 committed by Gerald (Jerry) Carter
parent 7e921fb96d
commit dee25d910e
3 changed files with 2 additions and 137 deletions

View File

@ -1,127 +0,0 @@
###################################################
# clientfs boilerplate generator
# Copyright tpot@samba.org 2004
# released under the GNU GPL
package IdlClientFns;
use strict;
my($res);
sub pidl($)
{
$res .= shift;
}
#use Data::Dumper;
#####################################################################
# produce boilerplate code for a interface
sub Boilerplate_ClientFns($)
{
my($interface) = shift;
my($data) = $interface->{DATA};
my $name = $interface->{NAME};
foreach my $d (@{$data}) {
if ($d->{TYPE} eq "FUNCTION") {
pidl "/*\n";
# pidl Dumper($d);
pidl "\n*/\n\n";
pidl "$d->{RETURN_TYPE} $d->{NAME}(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx";
my $count = 0, my $i = 0;
foreach my $a (@{$d->{DATA}}) {
$count++;
}
pidl ", ", if $count > 0;
foreach my $a (@{$d->{DATA}}) {
pidl "/* [";
if ($a->{PROPERTIES}->{in}) {
pidl "in";
if ($a->{PROPERTIES}->{out} or
$a->{PROPERTIES}->{ref}) {
pidl ",";
}
}
if ($a->{PROPERTIES}->{out}) {
pidl "out";
if ($a->{PROPERTIES}->{ref}) {
pidl ",";
}
}
if ($a->{PROPERTIES}->{ref}) {
pidl "ref";
}
pidl "] */ ";
pidl "struct ", if $a->{TYPE} eq "policy_handle";
pidl "$a->{TYPE} ";
if ($a->{PROPERTIES}->{out}) {
pidl "*";
}
if (!$a->{PROPERTIES}->{ref}) {
pidl "*", if $a->{POINTERS};
}
pidl "$a->{NAME}";
$i++;
pidl ", ", if $i < $count;
}
pidl ")\n";
pidl "{\n";
pidl "\tstruct $d->{NAME} r;\n";
pidl "\tNTSTATUS status;\n";
pidl "\n";
foreach $a (@{$d->{DATA}}) {
if ($a->{PROPERTIES}->{in}) {
pidl "\tr.in.$a->{NAME} = $a->{NAME};\n";
}
if ($a->{PROPERTIES}->{out}) {
pidl "\tr.out.$a->{NAME} = $a->{NAME};\n";
}
}
pidl "\n";
pidl "\tstatus = dcerpc_$d->{NAME}(p, mem_ctx, &r);\n";
pidl "\n";
pidl "\treturn NT_STATUS_OK;\n";
pidl "}\n\n";
}
}
}
#####################################################################
# parse a parsed IDL structure back into an IDL file
sub Parse($)
{
my($idl) = shift;
$res = "/* dcerpc client functions generated by pidl */\n\n";
$res .= "#include \"includes.h\"\n\n";
foreach my $x (@{$idl}) {
if ($x->{TYPE} eq "INTERFACE") {
Boilerplate_ClientFns($x);
}
}
return $res;
}
1;

View File

@ -4,7 +4,7 @@
# Copyright tridge@samba.org 2000
# released under the GNU GPL
package eparser;
package IdlEParser;
use strict;

View File

@ -17,7 +17,6 @@ use idl;
use dump;
use header;
use server;
use clientfns;
use parser;
use eparser;
use validator;
@ -32,7 +31,6 @@ my($opt_header) = 0;
my($opt_template) = 0;
my($opt_server) = 0;
my($opt_parser) = 0;
my($opt_clientfns) = 0;
my($opt_eparser) = 0;
my($opt_keep) = 0;
my($opt_output);
@ -86,7 +84,6 @@ GetOptions (
'server' => \$opt_server,
'template' => \$opt_template,
'parser' => \$opt_parser,
'clientfns' => \$opt_clientfns,
'eparser' => \$opt_eparser,
'diff' => \$opt_diff,
'keep' => \$opt_keep
@ -146,13 +143,8 @@ sub process_file($)
IdlParser::Parse($pidl, $parser);
}
if ($opt_clientfns) {
my($clientfns) = util::ChangeExtension($output, "_c.c");
util::FileSave($clientfns, IdlClientFns::Parse($pidl));
}
if ($opt_eparser) {
my($parser) = util::ChangeExtension($output, ".c");
my($parser) = util::ChangeExtension($output, "_ethereal.c");
util::FileSave($parser, IdlEParser::Parse($pidl));
}