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] } } }