88package crtsh
99
1010import (
11+ "context"
1112 "database/sql"
1213 "fmt"
1314 "log"
@@ -57,8 +58,8 @@ func (c *crtshCertDriver) GetRelated() ([]string, error) {
5758 return nil , nil // Return nil instead of empty slice for better memory efficiency
5859}
5960
60- func (c * crtshCertDriver ) QueryCert (fp fingerprint.Fingerprint ) (* driver.CertResult , error ) {
61- return c .driver .QueryCert (fp )
61+ func (c * crtshCertDriver ) QueryCert (ctx context. Context , fp fingerprint.Fingerprint ) (* driver.CertResult , error ) {
62+ return c .driver .QueryCert (ctx , fp )
6263}
6364
6465// Driver creates a new CT driver for crt.sh
@@ -108,7 +109,7 @@ func (d *crtsh) setSQLTimeout(sec float64) error {
108109 return err
109110}
110111
111- func (d * crtsh ) QueryDomain (domain string ) (driver.Result , error ) {
112+ func (d * crtsh ) QueryDomain (ctx context. Context , domain string ) (driver.Result , error ) {
112113 results := & crtshCertDriver {
113114 host : domain ,
114115 fingerprints : make (driver.FingerprintMap ),
@@ -164,7 +165,7 @@ func (d *crtsh) QueryDomain(domain string) (driver.Result, error) {
164165 if debug {
165166 log .Printf ("QueryDomain try %d: %s" , try , queryStr )
166167 }
167- rows , err = d .db .Query ( queryStr , d .includeExpired , d .includeSubdomains , d .queryLimit , domain )
168+ rows , err = d .db .QueryContext ( ctx , queryStr , d .includeExpired , d .includeSubdomains , d .queryLimit , domain )
168169 if err == nil {
169170 break
170171 }
@@ -202,7 +203,7 @@ func (d *crtsh) QueryDomain(domain string) (driver.Result, error) {
202203 return results , nil
203204}
204205
205- func (d * crtsh ) QueryCert (fp fingerprint.Fingerprint ) (* driver.CertResult , error ) {
206+ func (d * crtsh ) QueryCert (ctx context. Context , fp fingerprint.Fingerprint ) (* driver.CertResult , error ) {
206207 certNode := new (driver.CertResult )
207208 certNode .Fingerprint = fp
208209 certNode .Domains = make ([]string , 0 , 5 )
@@ -217,7 +218,7 @@ func (d *crtsh) QueryCert(fp fingerprint.Fingerprint) (*driver.CertResult, error
217218 for try < 5 {
218219 // this is a hack while crt.sh gets there stuff together
219220 try ++
220- rows , err = d .db .Query ( queryStr , fp [:])
221+ rows , err = d .db .QueryContext ( ctx , queryStr , fp [:])
221222 if err == nil {
222223 break
223224 }
0 commit comments