in capi/capi.go [268:302]
func verifyFromCertificateDetails(resp http.ResponseWriter, req *http.Request) {
body, err := ioutil.ReadAll(req.Body)
if err != nil {
//@TODO
}
var records model.CCADBRecords
err = json.Unmarshal(body, &records)
if err != nil {
//@TODO
}
answers := make(chan model.TestWebsiteResult, len(records.CertificateDetails))
work := make(chan model.CCADBRecord, len(records.CertificateDetails))
for _, record := range records.CertificateDetails {
work <- record
}
close(work)
wg := sync.WaitGroup{}
for i := 0; i < 10; i++ {
wg.Add(1)
go func() {
defer wg.Done()
for record := range work {
root := record.PEM
answers <- test(record.TestWebsiteValid, root, service.Valid).SetRecordID(record.RecordID)
answers <- test(record.TestWebsiteExpired, root, service.Expired).SetRecordID(record.RecordID)
answers <- test(record.TestWebsiteRevoked, root, service.Revoked).SetRecordID(record.RecordID)
}
}()
}
go func() {
wg.Wait()
close(answers)
}()
streamJsonArray(resp, answers, len(records.CertificateDetails)*3)
}