// Token: 0x060000F6 RID: 246 RVA: 0x00004394 File Offset: 0x00002594 internal ConnectResponse Execute(ConnectRequest connectRequest, IServerCapabilities requiredCapabilities) { ConnectResponse connectResponse = this.Execute(connectRequest); connectResponse.UserSmtpAddressString = base.EasConnectionSettings.EasEndpointSettings.UserSmtpAddressString; if (connectResponse.ConnectStatus != ConnectStatus.Success || requiredCapabilities == null) { return(connectResponse); } OptionsCommand optionsCommand = new OptionsCommand(base.EasConnectionSettings); OptionsResponse optionsResponse = optionsCommand.Execute(new OptionsRequest()); connectResponse.OptionsResponse = optionsResponse; EasServerCapabilities easServerCapabilities = optionsResponse.EasServerCapabilities; if (easServerCapabilities.Supports(requiredCapabilities)) { base.EasConnectionSettings.ExtensionCapabilities = optionsResponse.EasExtensionCapabilities; return(connectResponse); } IEnumerable <string> values = requiredCapabilities.NotIn(easServerCapabilities); string text = string.Join(", ", values); base.EasConnectionSettings.Log.Debug("ConnectCommand, missing capabilities: '{0}'.", new object[] { text }); throw new MissingCapabilitiesException(text); }
// Token: 0x06000040 RID: 64 RVA: 0x000031E4 File Offset: 0x000013E4 public OperationStatusCode TestLogon(ImapServerParameters serverParameters, ImapAuthenticationParameters authenticationParameters, IServerCapabilities capabilities) { base.CheckDisposed(); this.ThrowIfConnected(); OperationStatusCode result; try { this.ConnectAndAuthenticate(serverParameters, authenticationParameters, capabilities); result = OperationStatusCode.Success; } catch (ImapConnectionException) { result = OperationStatusCode.ErrorCannotCommunicateWithRemoteServer; } catch (ImapAuthenticationException ex) { if (ex.InnerException == null) { result = OperationStatusCode.ErrorInvalidCredentials; } else { result = OperationStatusCode.ErrorInvalidRemoteServer; } } catch (ImapCommunicationException) { result = OperationStatusCode.ErrorInvalidRemoteServer; } catch (MissingCapabilitiesException) { result = OperationStatusCode.ErrorUnsupportedProtocolVersion; } finally { if (this.IsConnected()) { ImapConnectionCore.LogOff(this.ConnectionContext, null, null); } } return(result); }
// Token: 0x0600003F RID: 63 RVA: 0x0000317C File Offset: 0x0000137C public void ConnectAndAuthenticate(ImapServerParameters serverParameters, ImapAuthenticationParameters authenticationParameters, IServerCapabilities capabilities = null) { base.CheckDisposed(); this.ThrowIfConnected(); ImapConnectionContext imapConnectionContext = this.ConnectionContext; imapConnectionContext.AuthenticationParameters = authenticationParameters; imapConnectionContext.ServerParameters = serverParameters; imapConnectionContext.NetworkFacade = this.CreateNetworkFacade.Value(this.ConnectionContext, serverParameters); AsyncOperationResult <DBNull> asyncOperationResult = ImapConnectionCore.ConnectAndAuthenticate(this.ConnectionContext, capabilities, null, null); this.ThrowIfExceptionNotNull(asyncOperationResult.Exception); }
partial void ServerCapabilities_SetCondition(ref IIServerDataProvider instance, ref IServerCapabilities setValue);
ConnectResponse IEasConnection.Connect(ConnectRequest connectRequest, IServerCapabilities capabilities) { ConnectCommand connectCommand = new ConnectCommand(this.EasConnectionSettings); return(connectCommand.Execute(connectRequest, capabilities ?? EasConnection.DefaultCapabilities)); }
// Token: 0x06000078 RID: 120 RVA: 0x00002904 File Offset: 0x00000B04 public IEnumerable <string> NotIn(IServerCapabilities desiredCapabilities) { return(this.Capabilities.Except(desiredCapabilities.Capabilities, StringComparer.OrdinalIgnoreCase)); }
// Token: 0x06000077 RID: 119 RVA: 0x000028E4 File Offset: 0x00000AE4 public bool Supports(IServerCapabilities desiredCapabilities) { IEnumerable <string> source = desiredCapabilities.NotIn(this); return(!source.Any <string>()); }
// Token: 0x06000070 RID: 112 RVA: 0x00002846 File Offset: 0x00000A46 internal ServerCapabilities(IServerCapabilities capabilities) { this.Capabilities = new List <string>(capabilities.Capabilities); }
ConnectResponse IEasConnection.Connect(ConnectRequest connectRequest, IServerCapabilities capabilities) { return(this.innerConnection.Connect(connectRequest, null)); }
/// <summary> /// Gets the instance. /// </summary> /// <param name="src">The source.</param> /// <returns>ServerCapabilities.</returns> public static ServerCapabilities GetInstance(IServerCapabilities src) { return(default(ServerCapabilities)); }