diff options
Diffstat (limited to 'cmd/main/certs.go')
| -rw-r--r-- | cmd/main/certs.go | 26 |
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 } |
