From dfd0812cfc936840cbf9b127e562d490f0b61e60 Mon Sep 17 00:00:00 2001
From: Bruce Leidl <bruce@subgraph.com>
Date: Wed, 14 Sep 2016 20:09:19 +0000
Subject: [PATCH] Don't crash if socks config file doesn't exist

---
 main.go | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/main.go b/main.go
index 4ce5107..6b0ed55 100644
--- a/main.go
+++ b/main.go
@@ -187,13 +187,6 @@ func getSocksChainConfig(config *SocksJsonConfig) *socksChainConfig {
 }
 
 func main() {
-	// XXX should this really be hardcoded?
-	// or should i add a CLI to specify config file location?
-	config, err := loadConfiguration("/etc/fw-daemon-socks.json")
-	if err != nil {
-		panic(err)
-	}
-	socksConfig := getSocksChainConfig(config)
 
 	logBackend := setupLoggerBackend()
 	log.SetBackend(logBackend)
@@ -232,8 +225,16 @@ func main() {
 	*/
 
 	wg := sync.WaitGroup{}
-	chain := NewSocksChain(socksConfig, &wg, fw)
-	chain.start()
+
+	config, err := loadConfiguration("/etc/fw-daemon-socks.json")
+	if err != nil && !os.IsNotExist(err) {
+		panic(err)
+	}
+	if config != nil {
+		socksConfig := getSocksChainConfig(config)
+		chain := NewSocksChain(socksConfig, &wg, fw)
+		chain.start()
+	}
 
 	fw.runFilter()