Skip to content
This repository was archived by the owner on Apr 15, 2019. It is now read-only.

Commit

Permalink
cmd/dkim-milter: close listener on shutdown
Browse files Browse the repository at this point in the history
Fixes #12
  • Loading branch information
emersion committed Mar 11, 2019
1 parent 5e37417 commit 90a28fb
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 5 deletions.
19 changes: 15 additions & 4 deletions cmd/dkim-milter/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"net"
"net/textproto"
"os"
"os/signal"
"strings"

"github.com/emersion/go-dkim"
Expand Down Expand Up @@ -160,7 +161,7 @@ func main() {
var err error
identity, err = os.Hostname()
if err != nil {
log.Fatal("Failed to read hostname:", err)
log.Fatal("Failed to read hostname: ", err)
}
}

Expand All @@ -180,11 +181,21 @@ func main() {

ln, err := net.Listen(listenNetwork, listenAddr)
if err != nil {
log.Fatal("Failed to setup listener:", err)
log.Fatal("Failed to setup listener: ", err)
}

// Closing the listener will unlink the unix socket, if any
sigs := make(chan os.Signal, 1)
signal.Notify(sigs, os.Interrupt, os.Kill)
go func() {
<-sigs
if err := s.Close(); err != nil {
log.Fatal("Failed to close server: ", err)
}
}()

log.Println("Milter listening at", listenURI)
if err := s.Serve(ln); err != nil {
log.Fatal("Failed to serve:", err)
if err := s.Serve(ln); err != nil && err != milter.ErrServerClosed {
log.Fatal("Failed to serve: ", err)
}
}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ module github.com/emersion/go-dkim
go 1.12

require (
github.com/emersion/go-milter v0.0.0-20190307185503-a9e6c51fc5dc
github.com/emersion/go-milter v0.0.0-20190311184326-c3095a41a6fe
github.com/emersion/go-msgauth v0.0.0-20190307192406-8646172ce7a5
)

0 comments on commit 90a28fb

Please sign in to comment.