aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--brokenlinks/worker.go13
1 files changed, 8 insertions, 5 deletions
diff --git a/brokenlinks/worker.go b/brokenlinks/worker.go
index a286362..4a9a1d9 100644
--- a/brokenlinks/worker.go
+++ b/brokenlinks/worker.go
@@ -57,7 +57,7 @@ type worker struct {
func newWorker(opts Options) (wrk *worker, err error) {
var logp = `newWorker`
var netDial = &net.Dialer{
- Timeout: 30 * time.Second,
+ Timeout: 10 * time.Second,
KeepAlive: 30 * time.Second,
}
var tlsConfig = &tls.Config{
@@ -327,28 +327,31 @@ func (wrk *worker) scan(linkq jarink.Link) (resultq map[string]jarink.Link) {
func (wrk *worker) fetch(linkq jarink.Link) (httpResp *http.Response, err error) {
const maxRetry = 5
var retry int
+ var method string
for retry < 5 {
if linkq.Kind == int(atom.Img) {
- wrk.log.Printf("fetch: HEAD %s", linkq.Url)
+ method = `HEAD`
httpResp, err = wrk.httpc.Head(linkq.Url)
} else {
- wrk.log.Printf("fetch: GET %s", linkq.Url)
+ method = `GET`
httpResp, err = wrk.httpc.Get(linkq.Url)
}
if err == nil {
+ wrk.log.Printf(`fetch: %s %s: %d`, method, linkq.Url, httpResp.StatusCode)
return httpResp, nil
}
var errDNS *net.DNSError
if !errors.As(err, &errDNS) {
- return nil, err
+ break
}
if errDNS.Timeout() {
retry++
- wrk.log.Printf(`fetch %s: %s (%d/%d)`, linkq.Url, err, retry, maxRetry)
+ wrk.log.Printf(`[ERROR] fetch %s: %s (retry %d/%d)`, linkq.Url, err, retry, maxRetry)
continue
}
break
}
+ wrk.log.Printf(`[ERROR] fetch: %s %s: %s`, method, linkq.Url, err)
return nil, err
}