mirror of
https://github.com/wweir/sower.git
synced 2024-04-21 12:42:15 +00:00
change ping logix
This commit is contained in:
@@ -8,12 +8,13 @@ test:
|
||||
${GO} test ./...
|
||||
|
||||
build: sower sowerd
|
||||
|
||||
.PHONY: sower
|
||||
sower:
|
||||
${GO} build -ldflags "\
|
||||
-X main.version=$(shell git describe --tags --always) \
|
||||
-X main.date=$(shell date +%Y-%m-%d)" \
|
||||
-o sower ./cmd/sower
|
||||
.PHONY: sowerd
|
||||
sowerd:
|
||||
${GO} build -ldflags "\
|
||||
-X main.version=$(shell git describe --tags --always) \
|
||||
|
||||
+22
-8
@@ -1,11 +1,11 @@
|
||||
package router
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net/http"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/wweir/deferlog"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
var pingClient = http.Client{
|
||||
@@ -30,11 +30,25 @@ type ping struct {
|
||||
}
|
||||
|
||||
func (p *ping) Fulfill(key string) error {
|
||||
// just like `curl -I http://domain.com:80`
|
||||
_, err := pingClient.Head(net.JoinHostPort(key, "80"))
|
||||
deferlog.Std.DebugWarn(err).
|
||||
Str("domain", key).
|
||||
Msg("detect if site is accessible")
|
||||
p.isAccess = (err == nil)
|
||||
wg := sync.WaitGroup{}
|
||||
wg.Add(2)
|
||||
var err80, err443 error
|
||||
go func() {
|
||||
_, err80 = pingClient.Head("http://" + key)
|
||||
wg.Done()
|
||||
}()
|
||||
go func() {
|
||||
_, err443 = pingClient.Head("https://" + key)
|
||||
wg.Done()
|
||||
}()
|
||||
wg.Wait()
|
||||
|
||||
if err80 != nil && err443 != nil {
|
||||
log.Warn().
|
||||
Errs("errs", []error{err80, err443}).
|
||||
Msg("Failed to ping")
|
||||
}
|
||||
|
||||
p.isAccess = (err80 == nil && err443 == nil)
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user