mirror of
https://git.sr.ht/~sircmpwn/tokidoki
synced 2025-12-12 06:07:22 +01:00
Add handling of SIGINT and SIGTERM
Handle exit signals so that deferred calls are executed. It's mainly to unlink the socket before exiting.
This commit is contained in:
parent
42b36e3421
commit
7969df1a38
1 changed files with 21 additions and 7 deletions
|
|
@ -8,7 +8,9 @@ import (
|
|||
"net"
|
||||
"net/http"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/emersion/go-webdav"
|
||||
"github.com/emersion/go-webdav/caldav"
|
||||
|
|
@ -189,12 +191,24 @@ func main() {
|
|||
log.Info().Str("address", addr).Msg("starting server")
|
||||
log.Debug().Msg("debug output enabled")
|
||||
|
||||
if (cert != "") && (key != "") {
|
||||
err = server.ServeTLS(ln, cert, key)
|
||||
} else {
|
||||
err = server.Serve(ln)
|
||||
}
|
||||
if err != http.ErrServerClosed {
|
||||
log.Fatal().Err(err).Msg("ListenAndServe() error")
|
||||
go func() {
|
||||
if (cert != "") && (key != "") {
|
||||
err = server.ServeTLS(ln, cert, key)
|
||||
} else {
|
||||
err = server.Serve(ln)
|
||||
}
|
||||
if err != http.ErrServerClosed {
|
||||
log.Fatal().Err(err).Msg("ListenAndServe() error")
|
||||
}
|
||||
}()
|
||||
|
||||
sigCh := make(chan os.Signal, 1)
|
||||
signal.Notify(sigCh, syscall.SIGINT, syscall.SIGTERM)
|
||||
for sig := range sigCh {
|
||||
switch sig {
|
||||
case syscall.SIGINT, syscall.SIGTERM:
|
||||
server.Shutdown(context.Background())
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue