private void HandleReset(Msg.ReceiveLine msg) { var undeleted = _mailDrop.UndeleteAll(); SendOkResponse("{0} messages undeleted, {1} messages now in maildrop.", undeleted, _mailDrop.Messages.Count()); }
public static string GetArgs(this Msg.ReceiveLine line) { var idx = line.Line.IndexOf(' '); if (idx == -1) { return(""); } return(line.Line.Substring(idx + 1).Trim()); }
private void HandleDelete(Msg.ReceiveLine msg) { var mailMsg = GetMailMessage(msg); if (mailMsg != null) { mailMsg.IsDeleted = true; SendOkResponse("message {0} marked as deleted.", mailMsg.Number); } }
private void HandleReceiveLine(Msg.ReceiveLine message) { if (message.Line == null) { Console.WriteLine("Client disconnected, shutting down..."); _connectionManager.Tell(new Msg.ConnectionClosed()); return; } Console.WriteLine("incoming: " + message.Line); _stateHandler.Tell(message); ReadNextLine(); }
private void HandleRetrieve(Msg.ReceiveLine msg) { var mailMsg = GetMailMessage(msg); if (mailMsg != null) { SendOkResponse("{0} octets", mailMsg.Size); ConnectionHandler.Tell(new Msg.SendFile { Path = mailMsg.Path }); } }
private void ReceivePass(Msg.ReceiveLine msg) { if (msg.GetArgs() == "P@ssword1") { ConnectionHandler.Tell(new Msg.UserAuthenticated { User = _userName, OkMessage = String.Format("+OK user {0} is authenticated.", _userName) }); } else { SendErrResponse("invalid password."); } }
public void ReceiveUser(Msg.ReceiveLine msg) { var user = msg.GetArgs(); if (user == "User1") { SendOkResponse("found mailbox for {0}.", user); _userName = user; Become(ExpectPassCommand); } else { SendErrResponse("no such user: {0}.", user); } }
private void HandleList(Msg.ReceiveLine msg) { var args = msg.GetArgs(); if (args == "") { var messages = _mailDrop.Messages.ToArray(); SendMultilineResponse(String.Format("{0} messages ({1} octets)", messages.Length, messages.Sum(m => m.Size)), messages.Select(m => String.Format("{0} {1}", m.Number, m.Size)).ToArray()); return; } var mailMessage = GetMailMessage(msg); if (mailMessage != null) { SendOkResponse("{0} {1}", mailMessage.Number, mailMessage.Size); } }
private MailMessage GetMailMessage(Msg.ReceiveLine msg, bool includeDeleted = false) { MailMessage message = null; var args = msg.GetArgs(); int msgNum; if (args == "") { SendErrResponse("message number required."); } else if (!Int32.TryParse(args, out msgNum)) { SendErrResponse("invalid argument: {0}", args); } else { message = _mailDrop.GetMessage(msgNum, includeDeleted); if (message == null) { SendErrResponse("no such message."); } } return(message); }
public static string GetCommand(this Msg.ReceiveLine line) { return(line.Line.Split(' ')[0]); }
private void HandleStat(Msg.ReceiveLine msg) { var messages = _mailDrop.Messages.ToArray(); SendOkResponse("{0} {1}", messages.Count(), messages.Sum(m => m.Size)); }
public void ReceiveUnknown(Msg.ReceiveLine msg) { SendErrResponse("Unknown command: {0}", msg.Line); }