summaryrefslogtreecommitdiff
path: root/source4/pidl
diff options
context:
space:
mode:
authorVolker Lendecke <vlendec@samba.org>2005-11-02 05:34:17 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:45:41 -0500
commit66d3ee9ccb9807ca443962ef2a887627505c537c (patch)
tree44802dcc76d9271d0ba02408c9fd87423623cf7e /source4/pidl
parent66caa3234d14321b579e5d8befa3a12579c6a68e (diff)
downloadsamba-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')
-rw-r--r--source4/pidl/lib/Parse/Pidl/NDR.pm5
-rw-r--r--source4/pidl/lib/Parse/Pidl/Samba/NDR/Parser.pm5
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 "";