s4:librpc/rpc: pass async as argument to dcerpc_ndr_request_send()
authorStefan Metzmacher <metze@samba.org>
Fri, 17 Apr 2009 09:48:31 +0000 (11:48 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 20 Apr 2009 16:15:06 +0000 (18:15 +0200)
The caller should decide if async is desired it should be harcoded per call.

metze

source4/librpc/rpc/dcerpc.c
source4/librpc/rpc/dcerpc.h

index 6ebbc79fcfbdbf914d10324baa0bc05ae2573e76..c8add30ef849606e1b3488c3d2b34a7d4bfaecfc 100644 (file)
@@ -1348,11 +1348,12 @@ static NTSTATUS dcerpc_ndr_validate_out(struct dcerpc_connection *c,
  send a rpc request given a dcerpc_call structure 
  */
 struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p,
-                                               const struct GUID *object,
-                                               const struct ndr_interface_table *table,
-                                               uint32_t opnum, 
-                                               TALLOC_CTX *mem_ctx, 
-                                               void *r)
+                                           const struct GUID *object,
+                                           const struct ndr_interface_table *table,
+                                           uint32_t opnum,
+                                           bool async,
+                                           TALLOC_CTX *mem_ctx,
+                                           void *r)
 {
        const struct ndr_interface_call *call;
        struct ndr_push *push;
@@ -1401,8 +1402,7 @@ struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p,
        dump_data(10, request.data, request.length);
 
        /* make the actual dcerpc request */
-       req = dcerpc_request_send(p, object, opnum, table->calls[opnum].async,
-                                 &request);
+       req = dcerpc_request_send(p, object, opnum, async, &request);
 
        if (req != NULL) {
                req->ndr.table = table;
@@ -1519,7 +1519,7 @@ _PUBLIC_ NTSTATUS dcerpc_ndr_request(struct dcerpc_pipe *p,
 {
        struct rpc_request *req;
 
-       req = dcerpc_ndr_request_send(p, object, table, opnum, mem_ctx, r);
+       req = dcerpc_ndr_request_send(p, object, table, opnum, false, mem_ctx, r);
        if (req == NULL) {
                return NT_STATUS_NO_MEMORY;
        }
index 5b82a0ac7b0ace9edd63e9d944813eed1dfe8207..7f573f0e84f81a4f8db321239b80b9751a8f520b 100644 (file)
@@ -256,6 +256,7 @@ struct rpc_request *dcerpc_ndr_request_send(struct dcerpc_pipe *p,
                                                const struct GUID *object,
                                                const struct ndr_interface_table *table,
                                                uint32_t opnum, 
+                                               bool async,
                                                TALLOC_CTX *mem_ctx, 
                                                void *r);
 const char *dcerpc_server_name(struct dcerpc_pipe *p);