aboutsummaryrefslogtreecommitdiff
path: root/cmd/main/certs.go
diff options
context:
space:
mode:
Diffstat (limited to 'cmd/main/certs.go')
-rw-r--r--cmd/main/certs.go26
1 files changed, 17 insertions, 9 deletions
diff --git a/cmd/main/certs.go b/cmd/main/certs.go
index 66fe0cd..41ed1a8 100644
--- a/cmd/main/certs.go
+++ b/cmd/main/certs.go
@@ -13,12 +13,16 @@ type certCheck struct {
Window time.Duration
}
-func certWorker(jobs <-chan certCheck, msg chan<- *string) {
+func certWorker(jobs <-chan certCheck, msg chan<- *jobResponse) {
for cc := range jobs {
conn, err := checkup.CertExpiresSoon(cc.Host, cc.Port, cc.Window)
if err != nil {
- s := fmt.Sprintf("%s:%s --> %s\n", cc.Host, cc.Port, err)
- msg <- &s
+ s := fmt.Sprintf("%s:%s --> %s", cc.Host, cc.Port, err)
+ msg <- &jobResponse{
+ Id: cc.Host + ":" + cc.Port,
+ Message: s,
+ Err: err,
+ }
continue
}
conn.Close()
@@ -26,11 +30,11 @@ func certWorker(jobs <-chan certCheck, msg chan<- *string) {
}
}
-func checkCerts(conf *Config) {
+func checkCerts(conf *Config) map[string]*jobResponse {
buf := &bytes.Buffer{}
cc := make(chan certCheck)
- msgs := make(chan *string)
+ msgs := make(chan *jobResponse)
for i := 1; i <= conf.Workers; i++ {
go certWorker(cc, msgs)
@@ -47,12 +51,16 @@ func checkCerts(conf *Config) {
close(cc)
}()
+ out := make(map[string]*jobResponse)
for i := 0; i < len(conf.CheckCerts); i++ {
- m := <-msgs
- if m != nil {
- buf.Write([]byte(*m))
+ resp := <-msgs
+ if resp != nil {
+ buf.Write([]byte(resp.Message))
+ out[resp.Id] = resp
}
}
- notify(conf, buf.Bytes())
+ // notify(conf, buf.Bytes())
+
+ return out
}