From 448f2da012f2c67ba8f95a113f2479bf3f84c558 Mon Sep 17 00:00:00 2001 From: Martin Dosch Date: Wed, 10 Jul 2024 20:35:07 +0200 Subject: [PATCH] Make legacy sendxmpp config handling more robust. --- parseconfig.go | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/parseconfig.go b/parseconfig.go index 1d2e865..a219c50 100644 --- a/parseconfig.go +++ b/parseconfig.go @@ -123,18 +123,22 @@ func parseConfig(configPath string) (configuration, error) { output.alias = column[1] default: // Try to parse legacy sendxmpp config files. - if strings.Contains(scanner.Text(), ";") { - output.username = strings.Split(column[0], ";")[0] - output.jserver = strings.Split(column[0], ";")[1] - output.password = column[1] - } else { - output.username = strings.Split(column[0], ":")[0] - jserver := strings.Split(column[0], "@")[1] - if len(jserver) < defaultLenServerConf { - log.Fatal("Couldn't parse config: ", column[0]) + if len(column) >= defaultConfigColumnSep { + if strings.Contains(scanner.Text(), ";") { + output.username = strings.Split(column[0], ";")[0] + output.jserver = strings.Split(column[0], ";")[1] + output.password = column[1] + } else { + output.username = strings.Split(column[0], ":")[0] + if strings.Contains(output.username, "@") { + jserver := strings.SplitAfter(output.username, "@")[1] + if len(jserver) < defaultLenServerConf { + log.Fatal("Couldn't parse config: ", column[0]) + } + output.jserver = jserver + } + output.password = column[1] } - output.jserver = jserver - output.password = column[1] } } }