From fa3f96f54398d6fb31c98bbbc6b1bcb87248fb4b Mon Sep 17 00:00:00 2001
From: Guillem Jover <gjover@sipwise.com>
Date: Fri, 17 Aug 2018 17:38:05 +0200
Subject: [PATCH 5/5] influx: Make the client default to the Unix socket if it
 is present

---
 client/influxdb.go | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/client/influxdb.go b/client/influxdb.go
index e28ac70fe..f1d8ba019 100644
--- a/client/influxdb.go
+++ b/client/influxdb.go
@@ -11,6 +11,7 @@ import (
 	"net"
 	"net/http"
 	"net/url"
+	"os"
 	"strconv"
 	"strings"
 	"time"
@@ -25,6 +26,9 @@ const (
 	// DefaultPort is the default port used to connect to an InfluxDB instance
 	DefaultPort = 8086
 
+	// DefaultUnixSocket is the default unix socket used to connect to an InfluxDB instance
+	DefaultUnixSocket = "/run/influxdb/influxdb.sock"
+
 	// DefaultTimeout is the default connection timeout used to connect to an InfluxDB instance
 	DefaultTimeout = 0
 )
@@ -139,6 +143,13 @@ func NewClient(c Config) (*Client, error) {
 		TLSClientConfig: tlsConfig,
 	}
 
+	if c.UnixSocket == "" {
+		fi, err := os.Stat(DefaultUnixSocket)
+		if (err == nil && fi.Mode() & os.ModeSocket != 0) {
+			c.UnixSocket = DefaultUnixSocket
+		}
+	}
+
 	if c.UnixSocket != "" {
 		// No need for compression in local communications.
 		tr.DisableCompression = true
-- 
2.18.0

