From ef616ff25b44c10b7148b9dfa2b702d19b791da1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Mon, 13 Oct 2014 15:12:01 +0200 Subject: [PATCH] Better handling of wrong config files --- cmd/syncthing/main.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/syncthing/main.go b/cmd/syncthing/main.go index 1c17755a..bce934b5 100644 --- a/cmd/syncthing/main.go +++ b/cmd/syncthing/main.go @@ -346,13 +346,20 @@ func syncthingMain() { // Load the configuration file, if it exists. // If it does not, create a template. - cfg, err = config.Load(cfgFile, myID) - if err == nil { - myCfg := cfg.Devices()[myID] - if myCfg.Name == "" { - myName, _ = os.Hostname() + if info, err := os.Stat(cfgFile); err == nil { + if info.IsDir() { + l.Fatalln("config file is a directory!") + } + cfg, err = config.Load(cfgFile, myID) + if err == nil { + myCfg := cfg.Devices()[myID] + if myCfg.Name == "" { + myName, _ = os.Hostname() + } else { + myName = myCfg.Name + } } else { - myName = myCfg.Name + l.Fatalln("Could not load config file, refusing to replace with empty defaults") } } else { l.Infoln("No config file; starting with empty defaults")