// Token: 0x06000816 RID: 2070 RVA: 0x000272D8 File Offset: 0x000254D8 internal void GenerateMapiExceptionIfRequired(Guid dbGuid, AmServerName serverName) { if (!this.IsEnabled) { return; } int num = 0; this.ReadDbOperationProperty <int>(dbGuid, serverName, "GenerateMapiError", out num, 0); if (num == 0) { return; } AmTrace.Debug("AmInject: GenerateMapiError enabled for {0},{1}", new object[] { dbGuid, AmServerName.IsNullOrEmpty(serverName) ? "<null>" : serverName.NetbiosName }); int num2 = 0; int num3 = 0; bool flag = this.ReadDbOperationProperty <int>(dbGuid, serverName, "MapiHResult", out num2, 0); bool flag2 = this.ReadDbOperationProperty <int>(dbGuid, serverName, "MapiLowLevelError", out num3, 0); if (flag && flag2) { AmTrace.Debug("AmInject: Generating mapi exception (hr={0}, ec={1})", new object[] { num2, num3 }); MapiExceptionHelper.ThrowIfError(string.Format("Database operation failed with Mapi error. (hr={0}, ec={1})", num2, num3), num2, num3); } }
private static bool GetAccountNameAndType(SecurityIdentifier sid, out string domainName, out string accountName) { string systemName = null; byte[] array = new byte[sid.BinaryLength]; sid.GetBinaryForm(array, 0); uint capacity = 64U; uint capacity2 = 64U; StringBuilder stringBuilder = new StringBuilder((int)capacity); StringBuilder stringBuilder2 = new StringBuilder((int)capacity2); int num = 0; int num2; if (!DatabaseEvent.LookupAccountSid(systemName, array, stringBuilder, ref capacity, stringBuilder2, ref capacity2, out num2) && (num = Marshal.GetLastWin32Error()) == 122) { stringBuilder = new StringBuilder((int)capacity); stringBuilder2 = new StringBuilder((int)capacity2); DatabaseEvent.LookupAccountSid(systemName, array, stringBuilder, ref capacity, stringBuilder2, ref capacity2, out num2); num = Marshal.GetLastWin32Error(); } if (num == 0) { domainName = stringBuilder2.ToString(); accountName = stringBuilder.ToString(); return(true); } if (num == 8) { throw MapiExceptionHelper.OutOfMemoryException("LookupAccountSid failure."); } accountName = "=unknown="; domainName = "=unknown="; return(false); }
// Token: 0x060020F7 RID: 8439 RVA: 0x00097D88 File Offset: 0x00095F88 private void CallExRpcWithTimeout(string operationName, TimeSpan timeout, Action exRpcAction) { try { InvokeWithTimeout.Invoke(exRpcAction, timeout); } catch (TimeoutException ex) { throw MapiExceptionHelper.TimeoutException(ReplayStrings.ReplayTestStoreConnectivityTimedoutException(operationName, ex.Message), ex); } }
private static Exception FaultInjectionCallback(string exceptionType) { LocalizedString localizedString = new LocalizedString("Fault injection."); if (exceptionType.Equals("Microsoft.Exchange.Data.Storage.StoragePermanentException", StringComparison.OrdinalIgnoreCase)) { return(new StoragePermanentException(localizedString)); } if (exceptionType.Equals("Microsoft.Exchange.Data.Storage.StorageTransientException", StringComparison.OrdinalIgnoreCase)) { return(new StorageTransientException(localizedString)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionSessionLimit", StringComparison.OrdinalIgnoreCase)) { Exception innerException = MapiExceptionHelper.SessionLimitException(localizedString); return(new TooManyObjectsOpenedException(localizedString, innerException)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionUnconfigured", StringComparison.OrdinalIgnoreCase)) { Exception innerException2 = MapiExceptionHelper.UnconfiguredException(localizedString); return(new MailboxUnavailableException(localizedString, innerException2)); } if (exceptionType.Equals("CannotGetSiteInfoException", StringComparison.OrdinalIgnoreCase)) { return(new StoragePermanentException(localizedString, new CannotGetSiteInfoException(localizedString))); } if (exceptionType.Equals("System.ArgumentException", StringComparison.OrdinalIgnoreCase)) { return(new ArgumentException(localizedString)); } if (exceptionType.StartsWith("Microsoft.Mapi.MapiException", StringComparison.OrdinalIgnoreCase)) { return(FaultInjectionHelper.CreateXsoExceptionFromMapiException(exceptionType, localizedString)); } return(new ApplicationException(localizedString)); }
// Token: 0x060020F5 RID: 8437 RVA: 0x00097D50 File Offset: 0x00095F50 protected override Exception GetOperationTimedOutException(string operationName, TimeoutException timeoutEx) { return(MapiExceptionHelper.TimeoutException(ReplayStrings.ReplayTestStoreConnectivityTimedoutException(operationName, timeoutEx.Message), timeoutEx)); }
// Token: 0x060020F4 RID: 8436 RVA: 0x00097D3D File Offset: 0x00095F3D protected override Exception GetOperationCanceledException(string operationName, OperationAbortedException abortedEx) { return(MapiExceptionHelper.CancelException(ReplayStrings.ReplayStoreOperationAbortedException(operationName), abortedEx)); }
private static Exception FaultInjectionCallback(string exceptionType) { LocalizedString localizedString = new LocalizedString("Fault injection."); if (exceptionType.Equals("Microsoft.Exchange.Data.Storage.MailboxRules.InvalidRuleException", StringComparison.OrdinalIgnoreCase)) { return(new InvalidRuleException(localizedString)); } if (exceptionType.Equals("Microsoft.Exchange.Data.Storage.StoragePermanentException", StringComparison.OrdinalIgnoreCase)) { return(new StoragePermanentException(localizedString)); } if (exceptionType.Equals("Microsoft.Exchange.Data.Storage.StorageTransientException", StringComparison.OrdinalIgnoreCase)) { return(new StorageTransientException(localizedString)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionSessionLimit", StringComparison.OrdinalIgnoreCase)) { Exception innerException = MapiExceptionHelper.SessionLimitException(localizedString); return(new TooManyObjectsOpenedException(localizedString, innerException)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionRpcServerTooBusy", StringComparison.OrdinalIgnoreCase)) { Exception innerException2 = MapiExceptionHelper.RpcServerTooBusyException(localizedString); return(new StorageTransientException(localizedString, innerException2)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionNotEnoughMemory", StringComparison.OrdinalIgnoreCase)) { Exception innerException3 = MapiExceptionHelper.NotEnoughMemoryException(localizedString); return(new StorageTransientException(localizedString, innerException3)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionMaxThreadsPerMdbExceeded", StringComparison.OrdinalIgnoreCase)) { Exception innerException4 = MapiExceptionHelper.MaxThreadsPerMdbExceededException(localizedString); return(new StorageTransientException(localizedString, innerException4)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionMaxThreadsPerSCTExceeded", StringComparison.OrdinalIgnoreCase)) { Exception innerException5 = MapiExceptionHelper.MaxThreadsPerSCTExceededException(localizedString); return(new StorageTransientException(localizedString, innerException5)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionUnconfigured", StringComparison.OrdinalIgnoreCase)) { Exception innerException6 = MapiExceptionHelper.UnconfiguredException(localizedString); return(new MailboxUnavailableException(localizedString, innerException6)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionUnknownUser", StringComparison.OrdinalIgnoreCase)) { Exception innerException7 = MapiExceptionHelper.UnknownUserException(localizedString); return(new StoragePermanentException(localizedString, innerException7)); } if (exceptionType.Equals("CannotGetSiteInfoException", StringComparison.OrdinalIgnoreCase)) { return(new StoragePermanentException(localizedString, new CannotGetSiteInfoException(localizedString))); } if (exceptionType.Equals("System.ArgumentException", StringComparison.OrdinalIgnoreCase)) { return(new ArgumentException(localizedString)); } if (exceptionType.Equals("Microsoft.Exchange.Data.Directory.ADTransientException", StringComparison.OrdinalIgnoreCase)) { return(new ADTransientException(localizedString)); } if (exceptionType.Equals("StoreDriverAgentTransientException", StringComparison.OrdinalIgnoreCase)) { return(new StoreDriverAgentTransientException(Strings.StoreDriverAgentTransientExceptionEmail)); } if (exceptionType.Equals("UnexpectedMessageCountException", StringComparison.OrdinalIgnoreCase)) { return(new UnexpectedMessageCountException("Fault injection.")); } if (exceptionType.Equals("Microsoft.Exchange.Data.Storage.MailboxInSiteFailoverException", StringComparison.OrdinalIgnoreCase)) { return(new MailboxInSiteFailoverException(localizedString)); } if (exceptionType.Equals("Microsoft.Mapi.MapiExceptionDuplicateDelivery", StringComparison.OrdinalIgnoreCase)) { return(new StoragePermanentException(localizedString, new MapiExceptionDuplicateDelivery(localizedString, 0, 0, null, null))); } if (exceptionType.Equals("Microsoft.Exchange.MailboxTransport.StoreDriverCommon.SmtpResponseException", StringComparison.OrdinalIgnoreCase)) { return(new SmtpResponseException(AckReason.ApprovalUpdateSuccess, "TestSource")); } if (exceptionType.Equals("Microsoft.Exchange.Data.Storage.MailboxInfoStaleException", StringComparison.OrdinalIgnoreCase)) { return(new MailboxInfoStaleException(localizedString, new DatabaseNotFoundException(localizedString))); } if (exceptionType.StartsWith("Microsoft.Mapi.MapiException", StringComparison.OrdinalIgnoreCase)) { return(FaultInjectionHelper.CreateXsoExceptionFromMapiException(exceptionType, localizedString)); } return(new ApplicationException(localizedString)); }