continue
}
- switch cmd {
+ switch strings.ToUpper(cmd) {
case "QUIT":
conn.doQUIT()
break
return
}
- if _, err := fmt.Sscanf(conn.line, "USER %s", &conn.user); err != nil {
- conn.err(errSyntax)
- return
- }
-
+ conn.user = conn.line[len("USER "):]
conn.ok("")
}
return
}
- pass := strings.TrimPrefix(conn.line, "PASS ")
+ pass := conn.line[len("PASS "):]
if mbox, err := conn.po.OpenMailbox(conn.user, pass); err == nil {
conn.state = stateTxn
conn.mb = mbox
{"QUIT", responseOK},
})
}
+
+func TestCaseSensitivty(t *testing.T) {
+ s := newTestServer()
+ s.mb.msgs[999] = &testMessage{999, 1, false}
+
+ clientServerTest(t, s, []requestResponse{
+ {"user u", responseOK},
+ {"PasS p", responseOK},
+ {"sTaT", responseOK},
+ {"retr 1", responseERR},
+ {"dele 999", responseOK},
+ {"QUIT", responseOK},
+ })
+}