}
if (procid_is_me(&e->pid)) {
+ struct smbd_server_connection *sconn;
/*
* We need to notify ourself to retry the open. Do
* this by finding the queued SMB record, moving it to
* the head of the queue and changing the wait time to
* zero.
*/
- schedule_deferred_open_message_smb(e->op_mid);
+ sconn = msg_ctx_to_sconn(msg_ctx);
+ if (sconn != NULL) {
+ schedule_deferred_open_message_smb(
+ sconn, e->op_mid);
+ }
} else {
char msg[MSG_SMB_SHARE_MODE_ENTRY_SIZE];
DATA_BLOB *data)
{
struct share_mode_entry msg;
+ struct smbd_server_connection *sconn;
if (data->data == NULL) {
DEBUG(0, ("Got NULL buffer\n"));
server_id_str(talloc_tos(), &src), file_id_string_tos(&msg.id),
msg.share_file_id, (unsigned long long)msg.op_mid));
- schedule_deferred_open_message_smb(msg.op_mid);
+ sconn = msg_ctx_to_sconn(msg_ctx);
+ if (sconn != NULL) {
+ schedule_deferred_open_message_smb(sconn, msg.op_mid);
+ }
}
static void process_open_retry_message(struct messaging_context *msg_ctx,
DATA_BLOB *data)
{
struct share_mode_entry msg;
+ struct smbd_server_connection *sconn;
if (data->data == NULL) {
DEBUG(0, ("Got NULL buffer\n"));
server_id_str(talloc_tos(), &src), file_id_string_tos(&msg.id),
(unsigned long long)msg.op_mid));
- schedule_deferred_open_message_smb(msg.op_mid);
+ sconn = msg_ctx_to_sconn(msg_ctx);
+ if (sconn != NULL) {
+ schedule_deferred_open_message_smb(sconn, msg.op_mid);
+ }
}
/****************************************************************************
schedule it for immediate processing.
****************************************************************************/
-void schedule_deferred_open_message_smb(uint64_t mid)
+void schedule_deferred_open_message_smb(struct smbd_server_connection *sconn,
+ uint64_t mid)
{
struct pending_message_list *pml;
int i = 0;
- if (smbd_server_conn->using_smb2) {
- schedule_deferred_open_message_smb2(smbd_server_conn, mid);
+ if (sconn->using_smb2) {
+ schedule_deferred_open_message_smb2(sconn, mid);
return;
}
bool zero);
void remove_deferred_open_message_smb(struct smbd_server_connection *sconn,
uint64_t mid);
-void schedule_deferred_open_message_smb(uint64_t mid);
+void schedule_deferred_open_message_smb(struct smbd_server_connection *sconn,
+ uint64_t mid);
bool open_was_deferred(uint64_t mid);
bool get_deferred_open_message_state(struct smb_request *smbreq,
struct timeval *p_request_time,