https://src.bluestatic.org
/
mailpopbox.git
/ commitdiff
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
ac3f007
)
Add better logging in the pop3 connection.
author
Robert Sesek <rsesek@bluestatic.org>
Mon, 2 Jan 2017 06:05:02 +0000
(
01:05
-0500)
committer
Robert Sesek <rsesek@bluestatic.org>
Mon, 2 Jan 2017 06:05:02 +0000
(
01:05
-0500)
pop3/conn.go
patch
|
blob
|
history
diff --git
a/pop3/conn.go
b/pop3/conn.go
index 5071e78817f5f4d6c09aedd7f922297a4e421429..b16dcc40e2ca1941c46007d24572ad412295cf56 100644
(file)
--- a/
pop3/conn.go
+++ b/
pop3/conn.go
@@
-41,16
+41,19
@@
type connection struct {
}
func AcceptConnection(netConn net.Conn, po PostOffice, log zap.Logger) {
}
func AcceptConnection(netConn net.Conn, po PostOffice, log zap.Logger) {
+ log = log.With(zap.Stringer("client", netConn.RemoteAddr()))
conn := connection{
po: po,
tp: textproto.NewConn(netConn),
state: stateAuth,
conn := connection{
po: po,
tp: textproto.NewConn(netConn),
state: stateAuth,
- log: log
.With(zap.Stringer("client", netConn.RemoteAddr()))
,
+ log: log,
}
}
- var err error
+ conn.log.Info("accepted connection")
conn.ok(fmt.Sprintf("POP3 (mailpopbox) server %s", po.Name()))
conn.ok(fmt.Sprintf("POP3 (mailpopbox) server %s", po.Name()))
+ var err error
+
for {
conn.line, err = conn.tp.ReadLine()
if err != nil {
for {
conn.line, err = conn.tp.ReadLine()
if err != nil {
@@
-65,6
+68,8
@@
func AcceptConnection(netConn net.Conn, po PostOffice, log zap.Logger) {
continue
}
continue
}
+ conn.log = log.With(zap.String("command", cmd))
+
switch strings.ToUpper(cmd) {
case "QUIT":
conn.doQUIT()
switch strings.ToUpper(cmd) {
case "QUIT":
conn.doQUIT()
@@
-86,6
+91,7
@@
func AcceptConnection(netConn net.Conn, po PostOffice, log zap.Logger) {
case "RSET":
conn.doRSET()
default:
case "RSET":
conn.doRSET()
default:
+ conn.log.Error("unknown command")
conn.err("unknown command")
}
}
conn.err("unknown command")
}
}
@@
-99,6
+105,7
@@
func (conn *connection) ok(msg string) {
}
func (conn *connection) err(msg string) {
}
func (conn *connection) err(msg string) {
+ conn.log.Error("error", zap.String("message", msg))
if len(msg) > 0 {
msg = " " + msg
conn.tp.PrintfLine("-ERR%s", msg)
if len(msg) > 0 {
msg = " " + msg
conn.tp.PrintfLine("-ERR%s", msg)
@@
-146,7
+153,7
@@
func (conn *connection) doPASS() {
conn.mb = mbox
conn.ok("")
} else {
conn.mb = mbox
conn.ok("")
} else {
- conn.log.Error("
PASS
", zap.Error(err))
+ conn.log.Error("
failed to open mailbox
", zap.Error(err))
conn.err(err.Error())
}
}
conn.err(err.Error())
}
}
@@
-159,7
+166,7
@@
func (conn *connection) doSTAT() {
msgs, err := conn.mb.ListMessages()
if err != nil {
msgs, err := conn.mb.ListMessages()
if err != nil {
- conn.log.Error("
STAT
", zap.Error(err))
+ conn.log.Error("
failed to list messages
", zap.Error(err))
conn.err(err.Error())
return
}
conn.err(err.Error())
return
}
@@
-185,7
+192,7
@@
func (conn *connection) doLIST() {
msgs, err := conn.mb.ListMessages()
if err != nil {
msgs, err := conn.mb.ListMessages()
if err != nil {
- conn.log.Error("
LIST
", zap.Error(err))
+ conn.log.Error("
failed to list messages
", zap.Error(err))
conn.err(err.Error())
return
}
conn.err(err.Error())
return
}
@@
-215,7
+222,7
@@
func (conn *connection) doRETR() {
rc, err := conn.mb.Retrieve(msg)
if err != nil {
rc, err := conn.mb.Retrieve(msg)
if err != nil {
- conn.log.Error("
RETR
", zap.Error(err))
+ conn.log.Error("
failed to retrieve messages
", zap.Error(err))
conn.err(err.Error())
return
}
conn.err(err.Error())
return
}
@@
-244,7
+251,7
@@
func (conn *connection) doDELE() {
}
if err := conn.mb.Delete(msg); err != nil {
}
if err := conn.mb.Delete(msg); err != nil {
- conn.log.Error("
DELE
", zap.Error(err))
+ conn.log.Error("
failed to delete message
", zap.Error(err))
conn.err(err.Error())
} else {
conn.ok("")
conn.err(err.Error())
} else {
conn.ok("")