/// <summary> /// Update SMB_COM_SESSION_SETUP response for non-extended security mode. /// </summary> /// <param name="connection">It represents the SMB connection.</param> /// <param name="sessionId"> /// Set this value to 0 to request a new session setup, or set this value to a previously established session /// identifier to request the re-authentication of an existing session. /// </param> /// <param name="messageId">This is used to associate a response with a request.</param> public static void UpdateNonExtSessionSetupResponse( SmbConnection connection, int messageId, int sessionId) { NonExtendedSessionSetupRequest request = (NonExtendedSessionSetupRequest)connection.sentRequest[messageId]; connection.sessionList.Add(sessionId, new SmbSession(sessionId, SessionState.Valid)); connection.sessionId++; connection.SutNextReceiveSequenceNumber++; if (connection.isSignEnable(connection.clientSignState, connection.sutSignState)) { if (request.accountType == AccountType.Admin) { connection.isSigningActive = true; } else if (request.accountType == AccountType.Guest) { connection.isSigningActive = false; } } connection.SutSendSequenceNumber.Remove(messageId); connection.sentRequest.Remove(messageId); }
/// <summary> /// Update SMB_COM_SESSION_SETUP request for non-extended security mode. /// </summary> /// <param name="connection">It represents the SMB connection.</param> /// <param name="smbRequest">It represents the SMB request.</param> public static void UpdateNonExtSessionSetupRequest(SmbConnection connection, SmbRequest smbRequest) { NonExtendedSessionSetupRequest req = smbRequest as NonExtendedSessionSetupRequest; connection.SutSendSequenceNumber.Add(smbRequest.messageId); connection.sentRequest.Add(smbRequest.messageId, smbRequest); connection.clientCapabilities = req.capabilities; connection.accountType = req.accountType; }