};
/***********************************************************
- Turn on signing after sending an oplock break.
+ Turn signing off or on for oplock break code.
************************************************************/
-void srv_enable_signing(void)
+BOOL srv_oplock_set_signing(BOOL onoff)
{
- srv_sign_info.doing_signing = True;
-}
-
-/***********************************************************
- Turn off signing before sending an oplock break.
-************************************************************/
-
-void srv_disable_signing(void)
-{
- srv_sign_info.doing_signing = False;
+ BOOL ret = srv_sign_info.doing_signing;
+ srv_sign_info.doing_signing = onoff;
+ return ret;
}
/***********************************************************
time_t start_time;
BOOL shutdown_server = False;
BOOL oplock_timeout = False;
+ BOOL sign_state;
connection_struct *saved_user_conn;
connection_struct *saved_fsp_conn;
int saved_vuid;
/* Remember if we just sent a break to level II on this file. */
fsp->sent_oplock_break = using_levelII? LEVEL_II_BREAK_SENT:EXCLUSIVE_BREAK_SENT;
- srv_disable_signing();
+ /* Save the server smb signing state. */
+ sign_state = srv_oplock_set_signing(False);
+
if (!send_smb(smbd_server_fd(), outbuf)) {
- srv_enable_signing();
+ srv_oplock_set_signing(sign_state);
exit_server("oplock_break: send_smb failed.");
}
- srv_enable_signing();
+
+ /* Restore the sign state to what it was. */
+ srv_oplock_set_signing(sign_state);
/* We need this in case a readraw crosses on the wire. */
global_oplock_break = True;