in plugin/plugin.go [56:88]
func (m *PluginManager) Start() (*grpc.Server, <-chan error) {
errCh := make(chan error, 1)
sendError := func(err error) {
defer close(errCh)
select {
case errCh <- err:
default:
}
}
if err := m.cleanSockFile(); err != nil {
sendError(fmt.Errorf("failed to cleanup socket file: %w", err))
return nil, errCh
}
listener, err := net.Listen(netProtocol, m.unixSocketFilePath)
if err != nil {
sendError(fmt.Errorf("failed to create listener: %w", err))
return nil, errCh
}
m.Listener = listener
glog.Infof("Listening on unix domain socket: %s", m.unixSocketFilePath)
m.server = grpc.NewServer()
m.plugin.Register(m.server)
go func() {
defer m.cleanSockFile()
sendError(m.server.Serve(m.Listener))
}()
return m.server, errCh
}