47 lines
582 B
Go
47 lines
582 B
Go
package rpc
|
|
|
|
import (
|
|
"google.golang.org/grpc"
|
|
"net"
|
|
"os"
|
|
)
|
|
|
|
const unixPathDefault = "/tmp/indra.sock"
|
|
|
|
var (
|
|
isUnixSockEnabled bool = false
|
|
unixSock net.Listener
|
|
)
|
|
|
|
func startUnixSocket(srv *grpc.Server) (err error) {
|
|
|
|
if !isUnixSockEnabled {
|
|
return
|
|
}
|
|
|
|
if unixSock, err = net.Listen("unix", o.unixPath); err != nil {
|
|
return
|
|
}
|
|
|
|
go srv.Serve(unixSock)
|
|
|
|
return
|
|
}
|
|
|
|
func stopUnixSocket() (err error) {
|
|
|
|
if !isUnixSockEnabled {
|
|
return
|
|
}
|
|
|
|
if unixSock != nil {
|
|
if err = unixSock.Close(); err != nil {
|
|
// continue
|
|
}
|
|
}
|
|
|
|
os.Remove(o.unixPath)
|
|
|
|
return
|
|
}
|