summaryrefslogtreecommitdiff
path: root/internal/ctlsock
diff options
context:
space:
mode:
authorJakob Unterwurzacher2016-12-10 14:54:06 +0100
committerJakob Unterwurzacher2016-12-10 14:54:06 +0100
commit6af725ff099e78fab2920f060c127415aa3b1893 (patch)
treef376bb15a52b9711e9f7072490e902d441d3df18 /internal/ctlsock
parente1833fa26a2a42e61aeff6f6e350714133dee378 (diff)
ctlsock: exit early if socket cannot be created; delete on exit
Both are achieved by opening the socket from main and passing it to the ctlsock package instead of passing the path.
Diffstat (limited to 'internal/ctlsock')
-rw-r--r--internal/ctlsock/ctlsock_serve.go13
1 files changed, 4 insertions, 9 deletions
diff --git a/internal/ctlsock/ctlsock_serve.go b/internal/ctlsock/ctlsock_serve.go
index 63515c0..45b1e5b 100644
--- a/internal/ctlsock/ctlsock_serve.go
+++ b/internal/ctlsock/ctlsock_serve.go
@@ -46,19 +46,14 @@ type ctlSockHandler struct {
socket *net.UnixListener
}
-// CreateAndServe creates an unix socket at "path" and serves incoming
-// connections in a new goroutine.
-func CreateAndServe(path string, fs Interface) error {
- sock, err := net.Listen("unix", path)
- if err != nil {
- return err
- }
+// Serve serves incoming connections on "sock". This call blocks so you
+// probably want to run it in a new goroutine.
+func Serve(sock net.Listener, fs Interface) {
handler := ctlSockHandler{
fs: fs,
socket: sock.(*net.UnixListener),
}
- go handler.acceptLoop()
- return nil
+ handler.acceptLoop()
}
func (ch *ctlSockHandler) acceptLoop() {