From 285dd67e780f0c7d142eb958e46052b02dc07445 Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Tue, 14 Feb 2023 18:03:38 -0800 Subject: [PATCH] detect server connection failure on startup and re-prompt for login --- ui/controller/controller.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/ui/controller/controller.go b/ui/controller/controller.go index 4fcd49a..adc7753 100644 --- a/ui/controller/controller.go +++ b/ui/controller/controller.go @@ -9,6 +9,7 @@ import ( "fyne.io/fyne/v2" "fyne.io/fyne/v2/canvas" + "fyne.io/fyne/v2/dialog" "fyne.io/fyne/v2/widget" ) @@ -93,7 +94,13 @@ func (c Controller) DoConnectToServerWorkflow(server *backend.ServerConfig) { log.Printf("error getting password from keyring: %v", err) c.PromptForLoginAndConnect() } else { - c.tryConnectToServer(server, pass) + if err := c.tryConnectToServer(server, pass); err != nil { + dlg := dialog.NewError(err, c.MainWindow) + dlg.SetOnClosed(func() { + c.PromptForLoginAndConnect() + }) + dlg.Show() + } } } @@ -143,6 +150,9 @@ func (c Controller) trySetPasswordAndConnectToServer(server *backend.ServerConfi } func (c Controller) tryConnectToServer(server *backend.ServerConfig, password string) error { + if err := c.App.ServerManager.TestConnectionAndAuth(server.Hostname, server.Username, password); err != nil { + return err + } if err := c.App.ServerManager.ConnectToServer(server, password); err != nil { log.Printf("error connecting to server: %v", err) return err