184.108.40.206 Receiving Any Message
In addition to the global processing rules for a client that receives any message, as specified in [MS-CIFS] section 220.127.116.11, the following processing rules apply to the extensions presented in this document.
If a message is received and Client.Connection.IsSigningActive is TRUE for the connection, the client uses Client.Connection.ClientResponseSequenceNumber[PID,MID] as the sequence number in signature verification, as specified in section 18.104.22.168. If signature verification fails, then the message MUST be discarded and not processed. The client SHOULD disconnect the underlying connection and tear down all states associated with this connection. If the message is an oplock break, the signature is never verified, as specified in [MS-CIFS] section 22.214.171.124.
Session Expiration and Re-authentication
If the request passed a valid authenticated session identifier in the SMB_Header.UID field and the status code in the SMB header of the response is STATUS_NETWORK_SESSION_EXPIRED, then the client MUST look up the Client.Connection.SessionTable [UID], set Client.Session.AuthenticationState to Expired, and attempt to re-authenticate this session. Re-authentication follows the steps as specified in section 126.96.36.199.4, except that the UID sent in the SMB header of the SMB_COM_SESSION_SETUP_ANDX request MUST be set to the UID that represents the expired Session. Also, as described in section 188.8.131.52, the existing Client.Session.SessionKey MUST NOT be modified during re-authentication after a session expiry.
If the authentication fails, then the resulting error code MUST be returned for whichever operation failed with STATUS_NETWORK_SESSION_EXPIRED and the session associated with this UID is removed from the Client.Connection.SessionTable. If authentication succeeds, then the client MUST set Client.Session.AuthenticationState to Valid and retry the operation that failed with STATUS_NETWORK_SESSION_EXPIRED.