s4:dsdb/repl: make use of dcerpc_binding_handle_is_connected()
authorStefan Metzmacher <metze@samba.org>
Wed, 22 Jan 2014 13:14:12 +0000 (14:14 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Mon, 24 Mar 2014 23:45:28 +0000 (00:45 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
source4/dsdb/repl/drepl_out_helpers.c

index 0bec88fcd84e2c89e0a0b482d02b5b1e1c4c9b29..fd7284cf673d75281041164e5e9e60e8f40919fe 100644 (file)
@@ -67,14 +67,17 @@ struct tevent_req *dreplsrv_out_drsuapi_send(TALLOC_CTX *mem_ctx,
        state->conn     = conn;
        state->drsuapi  = conn->drsuapi;
 
-       if (state->drsuapi && !state->drsuapi->pipe->conn->dead) {
-               tevent_req_done(req);
-               return tevent_req_post(req, ev);
-       }
+       if (state->drsuapi != NULL) {
+               struct dcerpc_binding_handle *b =
+                       state->drsuapi->pipe->binding_handle;
+               bool is_connected = dcerpc_binding_handle_is_connected(b);
+
+               if (is_connected) {
+                       tevent_req_done(req);
+                       return tevent_req_post(req, ev);
+               }
 
-       if (state->drsuapi && state->drsuapi->pipe->conn->dead) {
-               talloc_free(state->drsuapi);
-               conn->drsuapi = NULL;
+               TALLOC_FREE(conn->drsuapi);
        }
 
        state->drsuapi = talloc_zero(state, struct dreplsrv_drsuapi_connection);