From 7702925497a8230f50d2317c9ad41a73de0683ae Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 9 Dec 2019 18:35:51 +0100 Subject: Make SessionManager create the IMAP client This will allow SessionManager to re-connect when the IMAP server logs the user out. --- handlers.go | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) (limited to 'handlers.go') diff --git a/handlers.go b/handlers.go index 8dc3fbf..869e1c1 100644 --- a/handlers.go +++ b/handlers.go @@ -81,18 +81,11 @@ func handleLogin(ectx echo.Context) error { username := ctx.FormValue("username") password := ctx.FormValue("password") if username != "" && password != "" { - conn, err := ctx.server.connectIMAP() - if err != nil { - return err - } - - if err := conn.Login(username, password); err != nil { - conn.Logout() - return ctx.Render(http.StatusOK, "login.html", nil) - } - - token, err := ctx.server.sessions.Put(conn, username, password) + token, err := ctx.server.sessions.Put(username, password) if err != nil { + if _, ok := err.(AuthError); ok { + return ctx.Render(http.StatusOK, "login.html", nil) + } return fmt.Errorf("failed to put connection in pool: %v", err) } ctx.setToken(token) -- cgit v1.2.3-59-g8ed1b