Support unix domain sockets in redis clients, too.

This commit is contained in:
Sascha L. Teichmann
2017-03-05 14:38:30 +01:00
parent ba2dd15280
commit e68e762322
4 changed files with 30 additions and 5 deletions

View File

@ -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 {

View File

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