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"
|
"encoding/base64"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/emersion/go-webdav"
|
"github.com/emersion/go-webdav"
|
||||||
"github.com/emersion/go-webdav/caldav"
|
"github.com/emersion/go-webdav/caldav"
|
||||||
|
|
@ -163,6 +165,22 @@ func main() {
|
||||||
mux.Mount("/{user}/contacts", &carddavHandler)
|
mux.Mount("/{user}/contacts", &carddavHandler)
|
||||||
mux.Mount("/{user}/calendar", &caldavHandler)
|
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{
|
server := http.Server{
|
||||||
Addr: addr,
|
Addr: addr,
|
||||||
Handler: mux,
|
Handler: mux,
|
||||||
|
|
@ -172,9 +190,9 @@ func main() {
|
||||||
log.Debug().Msg("debug output enabled")
|
log.Debug().Msg("debug output enabled")
|
||||||
|
|
||||||
if (cert != "") && (key != "") {
|
if (cert != "") && (key != "") {
|
||||||
err = server.ListenAndServeTLS(cert, key)
|
err = server.ServeTLS(ln, cert, key)
|
||||||
} else {
|
} else {
|
||||||
err = server.ListenAndServe()
|
err = server.Serve(ln)
|
||||||
}
|
}
|
||||||
if err != http.ErrServerClosed {
|
if err != http.ErrServerClosed {
|
||||||
log.Fatal().Err(err).Msg("ListenAndServe() error")
|
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_
|
*-addr* _addr_
|
||||||
Bind to the specified address/port. Default: ":8080" (port 8080 on all
|
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.url* _url_
|
||||||
Auth backend URL (required). See AUTH BACKENDS below.
|
Auth backend URL (required). See AUTH BACKENDS below.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue