s4:libcli/wrepl: add wrepl_socket_is_connected()
authorStefan Metzmacher <metze@samba.org>
Fri, 5 Mar 2010 15:03:23 +0000 (16:03 +0100)
committerStefan Metzmacher <metze@samba.org>
Sun, 7 Mar 2010 15:52:38 +0000 (16:52 +0100)
metze

source4/libcli/wrepl/winsrepl.c
source4/wrepl_server/wrepl_out_helpers.c

index 661a8613fef5fbeb925f17fb6ff4e75589928165..5a5719f2c1097fac0e3c6161876af9f40d492bdd 100644 (file)
@@ -101,6 +101,23 @@ static void wrepl_socket_dead(struct wrepl_socket *wrepl_socket, NTSTATUS status
        }
 }
 
+bool wrepl_socket_is_connected(struct wrepl_socket *wrepl_sock)
+{
+       if (!wrepl_sock) {
+               return false;
+       }
+
+       if (wrepl_sock->dead) {
+               return false;
+       }
+
+       if (!wrepl_sock->sock) {
+               return false;
+       }
+
+       return true;
+}
+
 static void wrepl_request_timeout_handler(struct tevent_context *ev, struct tevent_timer *te,
                                          struct timeval t, void *ptr)
 {
index 19cabd1e12b87b5eabb66307663c63458b0bb5fc..1bd996d8c2648aa1fdcdfbf3ef24276906a186f6 100644 (file)
@@ -166,7 +166,7 @@ static struct composite_context *wreplsrv_out_connect_send(struct wreplsrv_partn
 
        /* we have a connection already, so use it */
        if (wreplconn) {
-               if (!wreplconn->sock->dead) {
+               if (wrepl_socket_is_connected(wreplconn->sock)) {
                        state->stage    = WREPLSRV_OUT_CONNECT_STAGE_DONE;
                        state->wreplconn= wreplconn;
                        composite_done(c);