From 06ce860435c11d46d44274272015b9e14a2a2e36 Mon Sep 17 00:00:00 2001 From: James Hillyerd Date: Thu, 12 Sep 2013 17:00:08 -0700 Subject: [PATCH] Impl deletes, update SMTP session tracing --- pop3d/handler.go | 8 +++++++- smtpd/handler.go | 12 ++++++------ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/pop3d/handler.go b/pop3d/handler.go index a1a4299..01f10e5 100644 --- a/pop3d/handler.go +++ b/pop3d/handler.go @@ -492,7 +492,13 @@ func (ses *Session) retainAll() { // indicates that the session was closed cleanly and that deletes should be // processed. func (ses *Session) processDeletes() { - ses.trace("Processing deletes") + ses.info("Processing deletes") + for i, msg := range ses.messages { + if !ses.retain[i] { + ses.trace("Deleting %v", msg) + msg.Delete() + } + } } func (ses *Session) enterState(state State) { diff --git a/smtpd/handler.go b/smtpd/handler.go index 2986fb2..918df0a 100644 --- a/smtpd/handler.go +++ b/smtpd/handler.go @@ -83,12 +83,12 @@ func (ss *Session) String() string { /* Session flow: * 1. Send initial greeting * 2. Receive cmd - * 3. If good cmd, respond, optionally change state + * 3. If good cmd, respond, optionally change state * 4. If bad cmd, respond error * 5. Goto 2 */ func (s *Server) startSession(id int, conn net.Conn) { - log.Info("Connection from %v, starting session <%v>", conn.RemoteAddr(), id) + log.Info("SMTP Connection from %v, starting session <%v>", conn.RemoteAddr(), id) expConnectsCurrent.Add(1) defer func() { conn.Close() @@ -512,21 +512,21 @@ func (ss *Session) ooSeq(cmd string) { // Session specific logging methods func (ss *Session) trace(msg string, args ...interface{}) { - log.Trace("%v<%v> %v", ss.remoteHost, ss.id, fmt.Sprintf(msg, args...)) + log.Trace("SMTP<%v> %v", ss.id, fmt.Sprintf(msg, args...)) } func (ss *Session) info(msg string, args ...interface{}) { - log.Info("%v<%v> %v", ss.remoteHost, ss.id, fmt.Sprintf(msg, args...)) + log.Info("SMTP<%v> %v", ss.id, fmt.Sprintf(msg, args...)) } func (ss *Session) warn(msg string, args ...interface{}) { // Update metrics expWarnsTotal.Add(1) - log.Warn("%v<%v> %v", ss.remoteHost, ss.id, fmt.Sprintf(msg, args...)) + log.Warn("SMTP<%v> %v", ss.id, fmt.Sprintf(msg, args...)) } func (ss *Session) error(msg string, args ...interface{}) { // Update metrics expErrorsTotal.Add(1) - log.Error("%v<%v> %v", ss.remoteHost, ss.id, fmt.Sprintf(msg, args...)) + log.Error("SMTP<%v> %v", ss.id, fmt.Sprintf(msg, args...)) }