Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-pages.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Vosmaer (GitLab) <jacob@gitlab.com>2018-04-23 18:00:24 +0300
committerNick Thomas <nick@gitlab.com>2018-04-23 18:00:24 +0300
commitfd06fc02844a15bfaa78502f6b7c36588f66cd42 (patch)
tree65bf11c76d4ab6b09f7cbf9dee088e980bcec7c9 /helpers.go
parentc2fb2a8f8aa79e390b920f7b7c061e2951e69566 (diff)
Add gRPC admin health check
Diffstat (limited to 'helpers.go')
-rw-r--r--helpers.go33
1 files changed, 29 insertions, 4 deletions
diff --git a/helpers.go b/helpers.go
index f83f4db5..8cc66da9 100644
--- a/helpers.go
+++ b/helpers.go
@@ -3,6 +3,7 @@ package main
import (
"io/ioutil"
"net"
+ "os"
)
func readFile(file string) (result []byte) {
@@ -13,17 +14,41 @@ func readFile(file string) (result []byte) {
return
}
-func createSocket(addr string) (l net.Listener, fd uintptr) {
+// Be careful: if you let either of the return values get garbage
+// collected by Go they will be closed automatically.
+func createSocket(addr string) (net.Listener, *os.File) {
l, err := net.Listen("tcp", addr)
if err != nil {
fatal(err)
}
- f, err := l.(*net.TCPListener).File()
+ return l, fileForListener(l)
+}
+
+// Be careful: if you let either of the return values get garbage
+// collected by Go they will be closed automatically.
+func createUnixSocket(addr string) (net.Listener, *os.File) {
+ if err := os.Remove(addr); err != nil && !os.IsNotExist(err) {
+ fatal(err)
+ }
+
+ l, err := net.Listen("unix", addr)
if err != nil {
fatal(err)
}
- fd = f.Fd()
- return
+ return l, fileForListener(l)
+}
+
+func fileForListener(l net.Listener) *os.File {
+ type filer interface {
+ File() (*os.File, error)
+ }
+
+ f, err := l.(filer).File()
+ if err != nil {
+ fatal(err)
+ }
+
+ return f
}