if (!add_deferred_open(mid, ptv, dev, inode, global_oplock_port, fname)) {
remove_sharing_violation_open_smb_message(mid);
}
+
+ /*
+ * Push the MID of this packet on the signing queue.
+ * We only do this once, the first time we push the packet
+ * onto the deferred open queue, as this has a side effect
+ * of incrementing the response sequence number.
+ */
+
+ srv_defer_sign_response(mid);
+
SAFE_FREE(de_array);
}
DLIST_ADD_END(smb_sharing_violation_queue, msg, tmp_msg);
}
- /* Push the MID of this packet on the signing queue. */
- srv_defer_sign_response(SVAL(buf,smb_mid));
-
DEBUG(10,("push_message: pushed message length %u on queue %s\n",
(unsigned int)msg_len,
qt == OPLOCK_QUEUE ? "smb_oplock_queue" : "smb_sharing_violation_queue" ));
BOOL push_oplock_pending_smb_message(char *buf, int msg_len)
{
- return push_queued_message(OPLOCK_QUEUE, buf, msg_len, NULL, NULL, 0);
+ BOOL ret = push_queued_message(OPLOCK_QUEUE, buf, msg_len, NULL, NULL, 0);
+ if (ret) {
+ /* Push the MID of this packet on the signing queue. */
+ srv_defer_sign_response(SVAL(buf,smb_mid));
+ }
+ return ret;
}
/****************************************************************************