From e26ed8b3e2e6b30de424dea27ed7ca55f2b50c05 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Wed, 13 Sep 2006 13:45:36 +0000 Subject: [PATCH] r18470: Remove obsolete client generator code for Samba3 (we're now using the new code that uses libndr) (This used to be commit ea0ef1542f78e3a58d86b5693ec17c145050526b) --- source4/pidl/lib/Parse/Pidl/Samba3/Client.pm | 137 ------------------- source4/pidl/pidl | 17 +-- 2 files changed, 2 insertions(+), 152 deletions(-) delete mode 100644 source4/pidl/lib/Parse/Pidl/Samba3/Client.pm diff --git a/source4/pidl/lib/Parse/Pidl/Samba3/Client.pm b/source4/pidl/lib/Parse/Pidl/Samba3/Client.pm deleted file mode 100644 index 9e26e9a21e6..00000000000 --- a/source4/pidl/lib/Parse/Pidl/Samba3/Client.pm +++ /dev/null @@ -1,137 +0,0 @@ -################################################### -# Samba3 NDR client generator for IDL structures -# Copyright jelmer@samba.org 2005 -# released under the GNU GPL - -package Parse::Pidl::Samba3::Client; - -use strict; -use Parse::Pidl::Typelist qw(hasType getType mapType); -use Parse::Pidl::Util qw(has_property ParseExpr); -use Parse::Pidl::NDR qw(GetPrevLevel GetNextLevel ContainsDeferred); -use Parse::Pidl::Samba3::Types qw(DeclLong); - -use vars qw($VERSION); -$VERSION = '0.01'; - -my $res = ""; -my $tabs = ""; -sub indent() { $tabs.="\t"; } -sub deindent() { $tabs = substr($tabs, 1); } -sub pidl($) { $res .= $tabs.(shift)."\n"; } -sub fatal($$) { my ($e,$s) = @_; die("$e->{ORIGINAL}->{FILE}:$e->{ORIGINAL}->{LINE}: $s\n"); } -sub warning($$) { my ($e,$s) = @_; warn("$e->{ORIGINAL}->{FILE}:$e->{ORIGINAL}->{LINE}: $s\n"); } - -sub CopyLevel($$$$) -{ - sub CopyLevel($$$$); - my ($e,$l,$argument,$member) = @_; - - if ($l->{TYPE} eq "DATA") { - pidl "*$argument = $member;"; - } elsif ($l->{TYPE} eq "POINTER") { - pidl "if (r.ptr$l->{POINTER_INDEX}_$e->{NAME}) {"; - indent; - pidl "*$argument = talloc_size(mem_ctx, sizeof(void *));"; - CopyLevel($e,GetNextLevel($e,$l),"*$argument", $member); - deindent; - pidl "}"; - } elsif ($l->{TYPE} eq "SWITCH") { - CopyLevel($e,GetNextLevel($e,$l),$argument,$member); - } elsif ($l->{TYPE} eq "ARRAY") { - pidl "*$argument = $member;"; - } -} - -sub ParseFunction($$) -{ - my ($if,$fn) = @_; - - my $inargs = ""; - my $defargs = ""; - foreach (@{$fn->{ELEMENTS}}) { - $defargs .= ", " . DeclLong($_); - if (grep(/in/, @{$_->{DIRECTION}})) { - $inargs .= ", $_->{NAME}"; - } - } - - my $uif = uc($if->{NAME}); - my $ufn = uc($fn->{NAME}); - - pidl "NTSTATUS rpccli_$fn->{NAME}(struct rpc_pipe_client *cli, TALLOC_CTX *mem_ctx$defargs)"; - pidl "{"; - indent; - pidl "prs_struct qbuf, rbuf;"; - pidl "$uif\_Q_$ufn q;"; - pidl "$uif\_R_$ufn r;"; - pidl ""; - pidl "ZERO_STRUCT(q);"; - pidl "ZERO_STRUCT(r);"; - pidl ""; - pidl "/* Marshall data and send request */"; - pidl ""; - pidl "if (!init_$if->{NAME}_q_$fn->{NAME}(&q$inargs))"; - pidl "\treturn NT_STATUS_INVALID_PARAMETER;"; - pidl ""; - pidl "CLI_DO_RPC(cli, mem_ctx, PI_$uif, $ufn,"; - pidl "\tq, r,"; - pidl "\tqbuf, rbuf, "; - pidl "\t$if->{NAME}_io_q_$fn->{NAME},"; - pidl "\t$if->{NAME}_io_r_$fn->{NAME},"; - pidl "\tNT_STATUS_UNSUCCESSFUL);"; - pidl ""; - pidl "/* Return variables */"; - foreach my $e (@{$fn->{ELEMENTS}}) { - next unless (grep(/out/, @{$e->{DIRECTION}})); - - CopyLevel($e, $e->{LEVELS}[1], $e->{NAME}, "r.$e->{NAME}"); - } - - pidl""; - pidl "/* Return result */"; - if (not $fn->{RETURN_TYPE}) { - pidl "return NT_STATUS_OK;"; - } elsif ($fn->{RETURN_TYPE} eq "NTSTATUS") { - pidl "return r.status;"; - } elsif ($fn->{RETURN_TYPE} eq "WERROR") { - pidl "return werror_to_ntstatus(r.status);"; - } else { - pidl "/* Sorry, don't know how to convert $fn->{RETURN_TYPE} to NTSTATUS */"; - pidl "return NT_STATUS_OK;"; - } - - deindent; - pidl "}"; - pidl ""; -} - -sub ParseInterface($) -{ - my $if = shift; - - ParseFunction($if, $_) foreach (@{$if->{FUNCTIONS}}); -} - -sub Parse($$) -{ - my($ndr,$filename) = @_; - - $res = ""; - - pidl "/*"; - pidl " * Unix SMB/CIFS implementation."; - pidl " * client auto-generated by pidl. DO NOT MODIFY!"; - pidl " */"; - pidl ""; - pidl "#include \"includes.h\""; - pidl ""; - - foreach (@$ndr) { - ParseInterface($_) if ($_->{TYPE} eq "INTERFACE"); - } - - return $res; -} - -1; diff --git a/source4/pidl/pidl b/source4/pidl/pidl index 4d23060f6e4..7159ed94cf2 100755 --- a/source4/pidl/pidl +++ b/source4/pidl/pidl @@ -470,7 +470,6 @@ my($opt_samba3_header); my($opt_samba3_parser); my($opt_samba3_server); my($opt_samba3_template); -my($opt_samba3_client); my($opt_samba3_ndr_client); my($opt_template) = 0; my($opt_client); @@ -552,7 +551,6 @@ my $result = GetOptions ( 'samba3-parser:s' => \$opt_samba3_parser, 'samba3-server:s' => \$opt_samba3_server, 'samba3-template:s' => \$opt_samba3_template, - 'samba3-client:s' => \$opt_samba3_client, 'samba3-ndr-client:s' => \$opt_samba3_ndr_client, 'header:s' => \$opt_header, 'server:s' => \$opt_server, @@ -580,11 +578,6 @@ if ($opt_help) { exit(0); } -if ($opt_samba3_client and $opt_samba3_ndr_client) { - print "--samba3-client and --samba3-ndr-client can not be used together\n"; - exit(1); -} - sub process_file($) { my $idl_file = shift; @@ -660,7 +653,7 @@ sub process_file($) defined($opt_ndr_parser) or defined($opt_ejs) or defined($opt_dump_ndr_tree) or defined($opt_samba3_header) or defined($opt_samba3_parser) or defined($opt_samba3_server) or - defined($opt_samba3_template) or defined($opt_samba3_client) or + defined($opt_samba3_template) or defined($opt_swig) or defined($opt_samba3_ndr_client)) { require Parse::Pidl::NDR; $ndr = Parse::Pidl::NDR::Parse($pidl); @@ -773,7 +766,7 @@ $dcom } if (defined($opt_samba3_header) or defined($opt_samba3_parser) or - defined($opt_samba3_server) or defined($opt_samba3_client) or + defined($opt_samba3_server) or defined($opt_samba3_ndr_client) or defined($opt_samba3_template)) { require Parse::Pidl::Samba3::Types; Parse::Pidl::Samba3::Types::LoadTypes($ndr); @@ -803,12 +796,6 @@ $dcom FileSave($header, Parse::Pidl::Samba3::Template::Parse($ndr, $basename)); } - if (defined($opt_samba3_client)) { - my $header = ($opt_samba3_client or "$outputdir/cli_$basename.c"); - require Parse::Pidl::Samba3::Client; - FileSave($header, Parse::Pidl::Samba3::Client::Parse($ndr, $basename)); - } - if (defined($opt_samba3_ndr_client)) { my $client = ($opt_samba3_ndr_client or "$outputdir/cli_$basename.c"); my $header = $client; $header =~ s/\.c$/\.h/; -- 2.34.1