diff options
author | Volker Lendecke <vlendec@samba.org> | 2005-11-02 05:34:17 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 13:45:41 -0500 |
commit | 66d3ee9ccb9807ca443962ef2a887627505c537c (patch) | |
tree | 44802dcc76d9271d0ba02408c9fd87423623cf7e /source4/pidl/lib/Parse | |
parent | 66caa3234d14321b579e5d8befa3a12579c6a68e (diff) | |
download | samba-66d3ee9ccb9807ca443962ef2a887627505c537c.tar.gz samba-66d3ee9ccb9807ca443962ef2a887627505c537c.tar.bz2 samba-66d3ee9ccb9807ca443962ef2a887627505c537c.zip |
r11473: Based on work by Jelmer, implement the [async] flag for rpc requests. If it's
not there (it's not yet on *any* call... :-)), the rpc client strictly
sequences calls to an rpc pipe. Might need some more work on the exact
sequencing semantics when a pipe with both sync and async calls is actually
deployed, but I want it in for winbind simplification.
Volker
(This used to be commit b8f324e4f000971b7dafc263c16dd4af958ee7f9)
Diffstat (limited to 'source4/pidl/lib/Parse')
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/NDR.pm | 5 | ||||
-rw-r--r-- | source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/source4/pidl/lib/Parse/Pidl/NDR.pm b/source4/pidl/lib/Parse/Pidl/NDR.pm index d0b6708bf6..8405873589 100644 --- a/source4/pidl/lib/Parse/Pidl/NDR.pm +++ b/source4/pidl/lib/Parse/Pidl/NDR.pm @@ -529,10 +529,14 @@ sub ParseFunction($$$) $rettype = $d->{RETURN_TYPE}; } + my $async = 0; + if (has_property($d, "async")) { $async = 1; } + return { NAME => $d->{NAME}, TYPE => "FUNCTION", OPNUM => $thisopnum, + ASYNC => $async, RETURN_TYPE => $rettype, PROPERTIES => $d->{PROPERTIES}, ELEMENTS => \@elements, @@ -744,6 +748,7 @@ my %property_list = ( "noopnum" => ["FUNCTION"], "in" => ["ELEMENT"], "out" => ["ELEMENT"], + "async" => ["FUNCTION"], # pointer "ref" => ["ELEMENT"], diff --git a/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm b/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm index 0454f90c9a..05946b44f5 100644 --- a/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm +++ b/source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm @@ -2160,11 +2160,12 @@ sub FunctionTable($) pidl "\t\tsizeof(struct $d->{NAME}),"; pidl "\t\t(ndr_push_flags_fn_t) ndr_push_$d->{NAME},"; pidl "\t\t(ndr_pull_flags_fn_t) ndr_pull_$d->{NAME},"; - pidl "\t\t(ndr_print_function_t) ndr_print_$d->{NAME}"; + pidl "\t\t(ndr_print_function_t) ndr_print_$d->{NAME},"; + pidl "\t\t".($d->{ASYNC}?"True":"False").","; pidl "\t},"; $count++; } - pidl "\t{ NULL, 0, NULL, NULL, NULL }"; + pidl "\t{ NULL, 0, NULL, NULL, NULL, False }"; pidl "};"; pidl ""; |