pidl:Samba4/client: use dcerpc_ndr_request() for sync requests
authorStefan Metzmacher <metze@samba.org>
Fri, 17 Apr 2009 11:04:18 +0000 (13:04 +0200)
committerStefan Metzmacher <metze@samba.org>
Mon, 20 Apr 2009 16:15:01 +0000 (18:15 +0200)
metze

pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm

index f2a96a303778279d06dba71582d3318f674e9f8b..cb2c752acab51acfc9d1cd857ab977a4c1c7e1bb 100644 (file)
@@ -45,6 +45,7 @@ sub ParseFunctionSend($$$)
 sub ParseFunctionSync($$$)
 {
        my ($interface, $fn, $name) = @_;
+       my $uname = uc $name;
 
        my $proto = "NTSTATUS dcerpc_$name(struct dcerpc_pipe *p, TALLOC_CTX *mem_ctx, struct $name *r)";
 
@@ -55,13 +56,14 @@ sub ParseFunctionSync($$$)
                $res .= "\treturn NT_STATUS_NOT_IMPLEMENTED;\n";
        } else {
                $res .= "
-       struct rpc_request *req;
        NTSTATUS status;
-       
-       req = dcerpc_$name\_send(p, mem_ctx, r);
-       if (req == NULL) return NT_STATUS_NO_MEMORY;
 
-       status = dcerpc_ndr_request_recv(req);
+       if (p->conn->flags & DCERPC_DEBUG_PRINT_IN) {
+               NDR_PRINT_IN_DEBUG($name, r);
+       }
+
+       status = dcerpc_ndr_request(p, NULL, &ndr_table_$interface->{NAME},
+                                   NDR_$uname, mem_ctx, r);
 
        if (NT_STATUS_IS_OK(status) && (p->conn->flags & DCERPC_DEBUG_PRINT_OUT)) {
                NDR_PRINT_OUT_DEBUG($name, r);