mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
r23181: prevent attempts to reopen the connection twice at the same time
This commit is contained in:
parent
32a6c268a7
commit
a25c27dbae
@ -54,6 +54,7 @@ struct benchlock_state {
|
||||
int lastcount;
|
||||
struct smbcli_request *req;
|
||||
struct smb_composite_connect reconnect;
|
||||
struct timed_event *te;
|
||||
|
||||
/* these are used for reconnections */
|
||||
int dest_port;
|
||||
@ -148,9 +149,10 @@ static void reopen_connection_complete(struct composite_context *ctx)
|
||||
|
||||
status = smb_composite_connect_recv(ctx, state->mem_ctx);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
talloc_free(state->te);
|
||||
state->te = event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -218,9 +220,10 @@ static void lock_completion(struct smbcli_request *req)
|
||||
state->tree = NULL;
|
||||
num_connected--;
|
||||
DEBUG(0,("reopening connection to %s\n", state->dest_host));
|
||||
event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
talloc_free(state->te);
|
||||
state->te = event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
} else {
|
||||
DEBUG(0,("Lock failed - %s\n", nt_errstr(status)));
|
||||
lock_failed++;
|
||||
@ -256,9 +259,10 @@ static void echo_completion(struct smbcli_request *req)
|
||||
state->tree = NULL;
|
||||
num_connected--;
|
||||
DEBUG(0,("reopening connection to %s\n", state->dest_host));
|
||||
event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
talloc_free(state->te);
|
||||
state->te = event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,6 +57,7 @@ struct benchopen_state {
|
||||
struct smbcli_request *req_open;
|
||||
struct smbcli_request *req_close;
|
||||
struct smb_composite_connect reconnect;
|
||||
struct timed_event *te;
|
||||
|
||||
/* these are used for reconnections */
|
||||
int dest_port;
|
||||
@ -81,9 +82,10 @@ static void reopen_connection_complete(struct composite_context *ctx)
|
||||
|
||||
status = smb_composite_connect_recv(ctx, state->mem_ctx);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
talloc_free(state->te);
|
||||
state->te = event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -210,9 +212,10 @@ static void open_completed(struct smbcli_request *req)
|
||||
state->cli = NULL;
|
||||
num_connected--;
|
||||
DEBUG(0,("reopening connection to %s\n", state->dest_host));
|
||||
event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
talloc_free(state->te);
|
||||
state->te = event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -262,9 +265,10 @@ static void close_completed(struct smbcli_request *req)
|
||||
state->cli = NULL;
|
||||
num_connected--;
|
||||
DEBUG(0,("reopening connection to %s\n", state->dest_host));
|
||||
event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
talloc_free(state->te);
|
||||
state->te = event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -289,9 +293,10 @@ static void echo_completion(struct smbcli_request *req)
|
||||
state->tree = NULL;
|
||||
num_connected--;
|
||||
DEBUG(0,("reopening connection to %s\n", state->dest_host));
|
||||
event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
talloc_free(state->te);
|
||||
state->te = event_add_timed(state->ev, state->mem_ctx,
|
||||
timeval_current_ofs(1,0),
|
||||
reopen_connection, state);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user