s4:librpc/rpc: also notify requests which are not shipped about a dead connection
authorStefan Metzmacher <metze@samba.org>
Wed, 14 Mar 2012 13:59:45 +0000 (14:59 +0100)
committerStefan Metzmacher <metze@samba.org>
Thu, 15 Mar 2012 06:35:28 +0000 (07:35 +0100)
metze

source4/librpc/rpc/dcerpc.c

index ed527b8055a8ae18fd4b30f7b551da5f970960c0..32436447218b519d643463fd461ba3516fe2af91 100644 (file)
@@ -1015,6 +1015,17 @@ static void dcerpc_connection_dead(struct dcecli_connection *conn, NTSTATUS stat
                }
        }       
 
+       /* all requests, which are not shipped */
+       while (conn->request_queue) {
+               struct rpc_request *req = conn->request_queue;
+               dcerpc_req_dequeue(req);
+               req->state = RPC_REQUEST_DONE;
+               req->status = status;
+               if (req->async.callback) {
+                       req->async.callback(req);
+               }
+       }
+
        talloc_set_destructor(conn, NULL);
        if (conn->free_skipped) {
                talloc_free(conn);