/// <summary> /// Make an EHLO command from the given enumerator. /// </summary> /// <param name="enumerator">The enumerator to create the command from.</param> /// <param name="command">The EHLO command that is defined within the token enumerator.</param> /// <param name="errorResponse">The error that indicates why the command could not be made.</param> /// <returns>Returns true if a command could be made, false if not.</returns> public bool TryMakeEhlo(TokenEnumerator enumerator, out SmtpCommand command, out SmtpResponse errorResponse) { Debug.Assert(enumerator.Peek() == new Token(TokenKind.Text, "EHLO")); command = null; errorResponse = null; enumerator.Take(); enumerator.TakeWhile(TokenKind.Space); string domain; if (_parser.TryMakeDomain(enumerator, out domain)) { command = new EhloCommand(domain, _options); return(true); } string address; if (_parser.TryMakeAddressLiteral(enumerator, out address)) { command = new EhloCommand(address, _options); return(true); } errorResponse = SmtpResponse.SyntaxError; return(false); }
/// <summary> /// Make an EHLO command from the given enumerator. /// </summary> /// <param name="command">The EHLO command that is defined within the token enumerator.</param> /// <param name="errorResponse">The error that indicates why the command could not be made.</param> /// <returns>Returns true if a command could be made, false if not.</returns> public bool TryMakeEhlo(out SmtpCommand command, out SmtpResponse errorResponse) { Debug.Assert(Enumerator.Peek() == new Token(TokenKind.Text, "EHLO")); command = null; errorResponse = null; Enumerator.Take(); Enumerator.Skip(TokenKind.Space); string domain; if (TryMakeDomain(out domain)) { command = new EhloCommand(_options, domain); return(true); } string address; if (TryMakeAddressLiteral(out address)) { command = new EhloCommand(_options, address); return(true); } errorResponse = SmtpResponse.SyntaxError; return(false); }
/// <summary> /// Make an EHLO command from the given enumerator. /// </summary> /// <param name="command">The EHLO command that is defined within the token enumerator.</param> /// <param name="errorResponse">The error that indicates why the command could not be made.</param> /// <returns>Returns true if a command could be made, false if not.</returns> public bool TryMakeEhlo(out SmtpCommand command, out SmtpResponse errorResponse) { command = null; errorResponse = null; Enumerator.Take(); Enumerator.Skip(TokenKind.Space); if (TryMakeDomain(out var domain)) { command = new EhloCommand(_options, domain); return(true); } if (TryMakeAddressLiteral(out var address)) { command = new EhloCommand(_options, address); return(true); } errorResponse = SmtpResponse.SyntaxError; return(false); }
/// <summary> /// Make an EHLO command from the given enumerator. /// </summary> /// <param name="enumerator">The enumerator to create the command from.</param> /// <param name="command">The EHLO command that is defined within the token enumerator.</param> /// <param name="errorResponse">The error that indicates why the command could not be made.</param> /// <returns>Returns true if a command could be made, false if not.</returns> public bool TryMakeEhlo(TokenEnumerator enumerator, out SmtpCommand command, out SmtpResponse errorResponse) { Debug.Assert(enumerator.Peek() == new Token(TokenKind.Text, "EHLO")); command = null; errorResponse = null; enumerator.Take(); enumerator.TakeWhile(TokenKind.Space); string domain; if (_parser.TryMakeDomain(enumerator, out domain)) { command = new EhloCommand(domain, _options); return true; } string address; if (_parser.TryMakeAddressLiteral(enumerator, out address)) { command = new EhloCommand(address, _options); return true; } errorResponse = SmtpResponse.SyntaxError; return false; }
/// <summary> /// Visit an EHLO command. /// </summary> /// <param name="command">The command that is being visited.</param> protected virtual void Visit(EhloCommand command) { }