diff options
-rw-r--r-- | source4/libcli/wrepl/winsrepl.c | 17 | ||||
-rw-r--r-- | source4/wrepl_server/wrepl_out_helpers.c | 2 |
2 files changed, 18 insertions, 1 deletions
diff --git a/source4/libcli/wrepl/winsrepl.c b/source4/libcli/wrepl/winsrepl.c index 661a8613fe..5a5719f2c1 100644 --- a/source4/libcli/wrepl/winsrepl.c +++ b/source4/libcli/wrepl/winsrepl.c @@ -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) { diff --git a/source4/wrepl_server/wrepl_out_helpers.c b/source4/wrepl_server/wrepl_out_helpers.c index 19cabd1e12..1bd996d8c2 100644 --- a/source4/wrepl_server/wrepl_out_helpers.c +++ b/source4/wrepl_server/wrepl_out_helpers.c @@ -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); |