diff options
-rw-r--r-- | source4/build/pidl/README | 6 | ||||
-rw-r--r-- | source4/build/pidl/ndr_client.pm (renamed from source4/build/pidl/client.pm) | 2 | ||||
-rw-r--r-- | source4/build/pidl/ndr_header.pm | 11 | ||||
-rwxr-xr-x | source4/build/pidl/pidl.pl | 8 |
4 files changed, 12 insertions, 15 deletions
diff --git a/source4/build/pidl/README b/source4/build/pidl/README index 4b675ce210..e087888840 100644 --- a/source4/build/pidl/README +++ b/source4/build/pidl/README @@ -18,12 +18,12 @@ dump.pm - Converts the parse tree back to an IDL file validator.pm - Validates the parse tree -- DCE/RPC+NDR -- -client.pm - Generates client call functions in C +ndr_client.pm - Generates client call functions in C using the NDR parser eparser.pm - Generates a parser for the ethereal network sniffer by applying regexes to the output of parser.pm swig.pm - Generates SWIG interface files (.i) -header.pm - Generates a header file with structures -parser.pm - Generates pull/push functions for parsing +ndr_header.pm - Generates a header file with structures +ndr.pm - Generates pull/push functions for parsing NDR server.pm - Generates server side implementation in C template.pm - Generates stubs in C for server implementation diff --git a/source4/build/pidl/client.pm b/source4/build/pidl/ndr_client.pm index 1be895208f..e5d4cc1569 100644 --- a/source4/build/pidl/client.pm +++ b/source4/build/pidl/ndr_client.pm @@ -3,7 +3,7 @@ # Copyright tridge@samba.org 2003 # released under the GNU GPL -package IdlClient; +package NdrClient; use strict; diff --git a/source4/build/pidl/ndr_header.pm b/source4/build/pidl/ndr_header.pm index c928ee1db3..3e673466e0 100644 --- a/source4/build/pidl/ndr_header.pm +++ b/source4/build/pidl/ndr_header.pm @@ -61,15 +61,12 @@ sub HeaderElement($) HeaderType($element, $element->{TYPE}, ""); pidl " "; if ($element->{POINTERS} && $element->{TYPE} ne "string") { - my($n) = $element->{POINTERS}; - for (my($i)=$n; $i > 0; $i--) { + for (my($i)=$element->{POINTERS}; $i > 0; $i--) { pidl "*"; } - } - if (defined $element->{ARRAY_LEN} && - !util::is_constant($element->{ARRAY_LEN}) && - !$element->{POINTERS}) { - # conformant arrays are ugly! I choose to implement them with + } elsif (NdrParser::is_surrounding_array($element) || + defined $element->{ARRAY_LEN} && !util::is_constant($element->{ARRAY_LEN})) { + # surrounding arrays are ugly! I choose to implement them with # pointers instead of the [1] method pidl "*"; } diff --git a/source4/build/pidl/pidl.pl b/source4/build/pidl/pidl.pl index f7b213dcb0..6bbb2ec78c 100755 --- a/source4/build/pidl/pidl.pl +++ b/source4/build/pidl/pidl.pl @@ -15,10 +15,10 @@ use Getopt::Long; use File::Basename; use idl; use dump; +use ndr_client; use ndr_header; use ndr; use server; -use client; use dcom_proxy; use dcom_stub; use com_header; @@ -75,9 +75,9 @@ sub ShowHelp() --output OUTNAME put output in OUTNAME.* --parse parse a idl file to a .pidl file --dump dump a pidl file back to idl - --header create a C header file + --header create a C NDR header file --parser create a C NDR parser - --client create a C client + --client create a C NDR client --server create server boilerplate --template print a template for a pipe --eparser create an ethereal parser @@ -213,7 +213,7 @@ sub process_file($) $res .= "#include \"$h_filename\"\n\n"; foreach my $x (@{$pidl}) { - $res .= IdlClient::ParseInterface($x); + $res .= NdrClient::ParseInterface($x); } util::FileSave($client, $res); |