aboutsummaryrefslogtreecommitdiff
path: root/blockd.go
diff options
context:
space:
mode:
Diffstat (limited to 'blockd.go')
-rw-r--r--blockd.go27
1 files changed, 16 insertions, 11 deletions
diff --git a/blockd.go b/blockd.go
index f1d4b9b..021f7c3 100644
--- a/blockd.go
+++ b/blockd.go
@@ -5,6 +5,7 @@ package rescached
import (
"bytes"
+ "context"
"fmt"
"io"
"log"
@@ -100,13 +101,7 @@ func (hb *Blockd) update() (err error) {
return nil
}
- var (
- logp = "Blockd.update"
-
- res *http.Response
- body []byte
- errClose error
- )
+ var logp = `Blockd.update`
fmt.Printf("%s %s: updating ...\n", logp, hb.Name)
@@ -115,17 +110,27 @@ func (hb *Blockd) update() (err error) {
return fmt.Errorf("%s %s: %w", logp, hb.Name, err)
}
- res, err = http.Get(hb.URL)
+ var (
+ req *http.Request
+ res *http.Response
+ )
+ req, err = http.NewRequestWithContext(context.Background(), http.MethodGet, hb.URL, nil)
+ if err != nil {
+ return fmt.Errorf(`%s %s: %w`, logp, hb.Name, err)
+ }
+ res, err = http.DefaultClient.Do(req)
if err != nil {
return fmt.Errorf("%s %s: %w", logp, hb.Name, err)
}
defer func() {
- errClose = res.Body.Close()
+ var errClose = res.Body.Close()
if errClose != nil {
log.Printf("%s %q: %s", logp, hb.Name, err)
}
}()
+ var body []byte
+
body, err = io.ReadAll(res.Body)
if err != nil {
return fmt.Errorf("%s %q: %w", logp, hb.Name, err)
@@ -134,9 +139,9 @@ func (hb *Blockd) update() (err error) {
body = bytes.ReplaceAll(body, []byte("\r\n"), []byte("\n"))
if hb.IsEnabled {
- err = os.WriteFile(hb.file, body, 0644)
+ err = os.WriteFile(hb.file, body, 0600)
} else {
- err = os.WriteFile(hb.fileDisabled, body, 0644)
+ err = os.WriteFile(hb.fileDisabled, body, 0600)
}
if err != nil {
return fmt.Errorf("%s %q: %w", logp, hb.Name, err)