added support for listening on unix socket #4030 (#8221)

This commit is contained in:
Mitja Z
2017-04-27 08:54:21 +02:00
committed by Torkel Ödegaard
parent d4f7a2bc99
commit c92d719a72
4 changed files with 28 additions and 3 deletions

View File

@@ -5,6 +5,7 @@ import (
"crypto/tls"
"errors"
"fmt"
"net"
"net/http"
"os"
"path"
@@ -49,7 +50,7 @@ func (hs *HttpServer) Start(ctx context.Context) error {
hs.streamManager.Run(ctx)
listenAddr := fmt.Sprintf("%s:%s", setting.HttpAddr, setting.HttpPort)
hs.log.Info("Initializing HTTP Server", "address", listenAddr, "protocol", setting.Protocol, "subUrl", setting.AppSubUrl)
hs.log.Info("Initializing HTTP Server", "address", listenAddr, "protocol", setting.Protocol, "subUrl", setting.AppSubUrl, "socket", setting.SocketPath)
hs.httpSrv = &http.Server{Addr: listenAddr, Handler: hs.macaron}
switch setting.Protocol {
@@ -65,6 +66,18 @@ func (hs *HttpServer) Start(ctx context.Context) error {
hs.log.Debug("server was shutdown gracefully")
return nil
}
case setting.SOCKET:
ln, err := net.Listen("unix", setting.SocketPath)
if err != nil {
hs.log.Debug("server was shutdown gracefully")
return nil
}
err = hs.httpSrv.Serve(ln)
if err != nil {
hs.log.Debug("server was shutdown gracefully")
return nil
}
default:
hs.log.Error("Invalid protocol", "protocol", setting.Protocol)
err = errors.New("Invalid Protocol")