From e68e762322a1c3eabca2d075f20a6406e51364bc Mon Sep 17 00:00:00 2001 From: "Sascha L. Teichmann" Date: Sun, 5 Mar 2017 14:38:30 +0100 Subject: [PATCH] Support unix domain sockets in redis clients, too. --- cmd/mtseeder/main.go | 8 +++++++- cmd/mttilemapper/main.go | 10 ++++++++-- cmd/mtwebmapper/main.go | 8 +++++++- cmd/mtwebmapper/tilesupdater.go | 9 ++++++++- 4 files changed, 30 insertions(+), 5 deletions(-) diff --git a/cmd/mtseeder/main.go b/cmd/mtseeder/main.go index 0cbb0f9..8af83df 100644 --- a/cmd/mtseeder/main.go +++ b/cmd/mtseeder/main.go @@ -8,6 +8,7 @@ import ( "flag" "fmt" "log" + "strings" "bitbucket.org/s_l_teichmann/mtsatellite/common" ) @@ -71,7 +72,12 @@ func main() { if !skipBaseLevel { td := common.Clamp32f(float32(transparentDim/100.0), 0.0, 1.0) - address := fmt.Sprintf("%s:%d", host, port) + var address string + if strings.ContainsRune(host, '/') { + address = host + } else { + address = fmt.Sprintf("%s:%d", host, port) + } if err := createBaseLevel( address, xMin, yMin, zMin, xMax, yMax, zMax, diff --git a/cmd/mttilemapper/main.go b/cmd/mttilemapper/main.go index e394df5..55d6ffc 100644 --- a/cmd/mttilemapper/main.go +++ b/cmd/mttilemapper/main.go @@ -11,6 +11,7 @@ import ( "log" "os" "runtime/pprof" + "strings" "bitbucket.org/s_l_teichmann/mtsatellite/common" ) @@ -84,11 +85,16 @@ func main() { colors.TransparentDim = common.Clamp32f( float32(transparentDim/100.0), 0.0, 100.0) - address := fmt.Sprintf("%s:%d", host, port) + var proto, address string + if strings.ContainsRune(host, '/') { + proto, address = "unix", host + } else { + proto, address = "tcp", fmt.Sprintf("%s:%d", host, port) + } var client *common.RedisClient - if client, err = common.NewRedisClient("tcp", address); err != nil { + if client, err = common.NewRedisClient(proto, address); err != nil { log.Fatalf("Cannot connect to '%s': %s", address, err) } defer client.Close() diff --git a/cmd/mtwebmapper/main.go b/cmd/mtwebmapper/main.go index 8276422..690d2fb 100644 --- a/cmd/mtwebmapper/main.go +++ b/cmd/mtwebmapper/main.go @@ -10,6 +10,7 @@ import ( "log" "net" "net/http" + "strings" "bitbucket.org/s_l_teichmann/mtsatellite/common" @@ -113,7 +114,12 @@ func main() { } colors.TransparentDim = common.Clamp32f( float32(transparentDim/100.0), 0.0, 100.0) - redisAddress := fmt.Sprintf("%s:%d", redisHost, redisPort) + var redisAddress string + if strings.ContainsRune(redisHost, '/') { + redisAddress = redisHost + } else { + redisAddress = fmt.Sprintf("%s:%d", redisHost, redisPort) + } var allowedUpdateIps []net.IP if allowedUpdateIps, err = ipsFromHosts(updateHosts); err != nil { diff --git a/cmd/mtwebmapper/tilesupdater.go b/cmd/mtwebmapper/tilesupdater.go index 9f5b14e..6982183 100644 --- a/cmd/mtwebmapper/tilesupdater.go +++ b/cmd/mtwebmapper/tilesupdater.go @@ -196,10 +196,17 @@ func (tu *tileUpdater) doUpdates() { jobs := make(chan *xzc) var done sync.WaitGroup + var proto string + if strings.ContainsRune(tu.redisAddress, '/') { + proto = "unix" + } else { + proto = "tcp" + } + for i, n := 0, common.Min(tu.workers, len(changes)); i < n; i++ { var client *common.RedisClient var err error - if client, err = common.NewRedisClient("tcp", tu.redisAddress); err != nil { + if client, err = common.NewRedisClient(proto, tu.redisAddress); err != nil { log.Printf("WARN: Cannot connect to redis server: %s\n", err) continue }