mirror of
https://git.sr.ht/~sircmpwn/tokidoki
synced 2025-12-12 06:07:22 +01:00
Add Unix socket support
This commit is contained in:
parent
4ca7d8c4e7
commit
42b36e3421
2 changed files with 21 additions and 3 deletions
|
|
@ -5,8 +5,10 @@ import (
|
|||
"encoding/base64"
|
||||
"flag"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"github.com/emersion/go-webdav"
|
||||
"github.com/emersion/go-webdav/caldav"
|
||||
|
|
@ -163,6 +165,22 @@ func main() {
|
|||
mux.Mount("/{user}/contacts", &carddavHandler)
|
||||
mux.Mount("/{user}/calendar", &caldavHandler)
|
||||
|
||||
var ln net.Listener
|
||||
if a := strings.TrimPrefix(addr, "unix://"); a != addr {
|
||||
ln, err = net.Listen("unix", a)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("failed to listen")
|
||||
}
|
||||
if err = os.Chmod(a, 0775); err != nil {
|
||||
log.Warn().Err(err).Msg("failed to set socket mode")
|
||||
}
|
||||
} else {
|
||||
ln, err = net.Listen("tcp", addr)
|
||||
if err != nil {
|
||||
log.Fatal().Err(err).Msg("failed to listen")
|
||||
}
|
||||
}
|
||||
|
||||
server := http.Server{
|
||||
Addr: addr,
|
||||
Handler: mux,
|
||||
|
|
@ -172,9 +190,9 @@ func main() {
|
|||
log.Debug().Msg("debug output enabled")
|
||||
|
||||
if (cert != "") && (key != "") {
|
||||
err = server.ListenAndServeTLS(cert, key)
|
||||
err = server.ServeTLS(ln, cert, key)
|
||||
} else {
|
||||
err = server.ListenAndServe()
|
||||
err = server.Serve(ln)
|
||||
}
|
||||
if err != http.ErrServerClosed {
|
||||
log.Fatal().Err(err).Msg("ListenAndServe() error")
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ Regular logs are sent to stderr, HTTP logs are sent to stdout.
|
|||
|
||||
*-addr* _addr_
|
||||
Bind to the specified address/port. Default: ":8080" (port 8080 on all
|
||||
interfaces.
|
||||
interfaces. Use "unix:///path/to/socket" to bind to a Unix socket.
|
||||
|
||||
*-auth.url* _url_
|
||||
Auth backend URL (required). See AUTH BACKENDS below.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue