mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
s3: Remove smbd_messaging_context() from shutdown_other_smbds()
This commit is contained in:
parent
0ea7aed746
commit
9b0fbcf35a
@ -1349,11 +1349,16 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req)
|
||||
a new session setup with VC==0 is ignored.
|
||||
****************************************************************************/
|
||||
|
||||
struct shutdown_state {
|
||||
const char *ip;
|
||||
struct messaging_context *msg_ctx;
|
||||
};
|
||||
|
||||
static int shutdown_other_smbds(const struct connections_key *key,
|
||||
const struct connections_data *crec,
|
||||
void *private_data)
|
||||
{
|
||||
const char *ip = (const char *)private_data;
|
||||
struct shutdown_state *state = (struct shutdown_state *)private_data;
|
||||
|
||||
if (!process_exists(crec->pid)) {
|
||||
return 0;
|
||||
@ -1363,22 +1368,21 @@ static int shutdown_other_smbds(const struct connections_key *key,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (strcmp(ip, crec->addr) != 0) {
|
||||
if (strcmp(state->ip, crec->addr) != 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
DEBUG(0,("shutdown_other_smbds: shutting down pid %u "
|
||||
"(IP %s)\n", (unsigned int)procid_to_pid(&crec->pid), ip));
|
||||
"(IP %s)\n", (unsigned int)procid_to_pid(&crec->pid),
|
||||
state->ip));
|
||||
|
||||
messaging_send(smbd_messaging_context(), crec->pid, MSG_SHUTDOWN,
|
||||
messaging_send(state->msg_ctx, crec->pid, MSG_SHUTDOWN,
|
||||
&data_blob_null);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void setup_new_vc_session(void)
|
||||
static void setup_new_vc_session(struct messaging_context *msg_ctx)
|
||||
{
|
||||
char addr[INET6_ADDRSTRLEN];
|
||||
|
||||
DEBUG(2,("setup_new_vc_session: New VC == 0, if NT4.x "
|
||||
"compatible we would close all old resources.\n"));
|
||||
#if 0
|
||||
@ -1386,9 +1390,12 @@ static void setup_new_vc_session(void)
|
||||
invalidate_all_vuids();
|
||||
#endif
|
||||
if (lp_reset_on_zero_vc()) {
|
||||
connections_forall_read(shutdown_other_smbds,
|
||||
CONST_DISCARD(void *,
|
||||
client_addr(get_client_fd(),addr,sizeof(addr))));
|
||||
char addr[INET6_ADDRSTRLEN];
|
||||
struct shutdown_state state;
|
||||
|
||||
state.ip = client_addr(get_client_fd(),addr,sizeof(addr));
|
||||
state.msg_ctx = msg_ctx;
|
||||
connections_forall_read(shutdown_other_smbds, &state);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1443,7 +1450,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
|
||||
}
|
||||
|
||||
if (SVAL(req->vwv+4, 0) == 0) {
|
||||
setup_new_vc_session();
|
||||
setup_new_vc_session(req->sconn->msg_ctx);
|
||||
}
|
||||
|
||||
reply_sesssetup_and_X_spnego(req);
|
||||
@ -1640,7 +1647,7 @@ void reply_sesssetup_and_X(struct smb_request *req)
|
||||
}
|
||||
|
||||
if (SVAL(req->vwv+4, 0) == 0) {
|
||||
setup_new_vc_session();
|
||||
setup_new_vc_session(req->sconn->msg_ctx);
|
||||
}
|
||||
|
||||
DEBUG(3,("sesssetupX:name=[%s]\\[%s]@[%s]\n",
|
||||
|
Loading…
Reference in New Issue
Block a user