Skip to content

Commit

Permalink
Support listening on a unix socket
Browse files Browse the repository at this point in the history
  • Loading branch information
vojta001 committed Oct 31, 2021
1 parent 08c6afe commit 04563d3
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions cmd/web/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,11 @@ import (
"html/template"
"io/fs"
"log"
"net"
"net/http"
"net/url"
"os"
"strings"
"time"
"vkane.cz/tinyquiz/pkg/model"
"vkane.cz/tinyquiz/pkg/model/ent"
Expand Down Expand Up @@ -35,8 +37,14 @@ func setDefaultTemplateData(td *templateData) {

func main() {
var addr string
var socket bool
if env, ok := os.LookupEnv("TINYQUIZ_LISTEN"); ok {
addr = env
const unixPrefix = "unix:"
if strings.HasPrefix(addr, unixPrefix) {
socket = true
addr = strings.TrimPrefix(addr, unixPrefix)
}
} else {
addr = "[::1]:8080"
}
Expand Down Expand Up @@ -127,6 +135,13 @@ func main() {
Handler: mux,
}
log.Printf("Starting server on %s\n", addr)
err := srv.ListenAndServe()
log.Fatal(err)
if socket {
if listener, err := net.Listen("unix", addr); err == nil {
log.Fatal(srv.Serve(listener))
} else {
errorLog.Fatal(err)
}
} else {
errorLog.Fatal(srv.ListenAndServe())
}
}

0 comments on commit 04563d3

Please sign in to comment.