modified: common.go
This commit is contained in:
parent
b11fd6bbf8
commit
ca4419d65c
|
@ -34,6 +34,8 @@ var allTime = flag.Bool("all_time", false, "Scan certs from all time, not just s
|
||||||
var state *State
|
var state *State
|
||||||
|
|
||||||
var printMutex sync.Mutex
|
var printMutex sync.Mutex
|
||||||
|
var wg sync.WaitGroup
|
||||||
|
var rcode = make(chan int)
|
||||||
|
|
||||||
func homedir() string {
|
func homedir() string {
|
||||||
home := os.Getenv("HOME")
|
home := os.Getenv("HOME")
|
||||||
|
@ -243,21 +245,25 @@ func (ctlog *logHandle) scan(processCallback certspotter.ProcessCallback) error
|
||||||
}
|
}
|
||||||
|
|
||||||
func processLog(logInfo *certspotter.LogInfo, processCallback certspotter.ProcessCallback) int {
|
func processLog(logInfo *certspotter.LogInfo, processCallback certspotter.ProcessCallback) int {
|
||||||
|
defer wg.Done()
|
||||||
log.SetPrefix(os.Args[0] + ": " + logInfo.Url + ": ")
|
log.SetPrefix(os.Args[0] + ": " + logInfo.Url + ": ")
|
||||||
|
|
||||||
ctlog, err := makeLogHandle(logInfo)
|
ctlog, err := makeLogHandle(logInfo)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("%s\n", err)
|
log.Printf("%s\n", err)
|
||||||
|
rcode <- 1
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := ctlog.refresh(); err != nil {
|
if err := ctlog.refresh(); err != nil {
|
||||||
log.Printf("%s\n", err)
|
log.Printf("%s\n", err)
|
||||||
|
rcode <- 1
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := ctlog.audit(); err != nil {
|
if err := ctlog.audit(); err != nil {
|
||||||
log.Printf("%s\n", err)
|
log.Printf("%s\n", err)
|
||||||
|
rcode <- 1
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -274,6 +280,7 @@ func processLog(logInfo *certspotter.LogInfo, processCallback certspotter.Proces
|
||||||
ctlog.tree, err = ctlog.scanner.MakeCollapsedMerkleTree(ctlog.verifiedSTH)
|
ctlog.tree, err = ctlog.scanner.MakeCollapsedMerkleTree(ctlog.verifiedSTH)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Printf("Error reconstructing Merkle Tree: %s", err)
|
log.Printf("Error reconstructing Merkle Tree: %s", err)
|
||||||
|
rcode <- 1
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
if *verbose {
|
if *verbose {
|
||||||
|
@ -287,11 +294,13 @@ func processLog(logInfo *certspotter.LogInfo, processCallback certspotter.Proces
|
||||||
}
|
}
|
||||||
if err := ctlog.state.StoreTree(ctlog.tree); err != nil {
|
if err := ctlog.state.StoreTree(ctlog.tree); err != nil {
|
||||||
log.Printf("Error storing tree: %s\n", err)
|
log.Printf("Error storing tree: %s\n", err)
|
||||||
|
rcode <- 1
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := ctlog.scan(processCallback); err != nil {
|
if err := ctlog.scan(processCallback); err != nil {
|
||||||
log.Printf("%s\n", err)
|
log.Printf("%s\n", err)
|
||||||
|
rcode <- 1
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,6 +308,7 @@ func processLog(logInfo *certspotter.LogInfo, processCallback certspotter.Proces
|
||||||
log.Printf("Final log size = %d, final root hash = %x", ctlog.verifiedSTH.TreeSize, ctlog.verifiedSTH.SHA256RootHash)
|
log.Printf("Final log size = %d, final root hash = %x", ctlog.verifiedSTH.TreeSize, ctlog.verifiedSTH.SHA256RootHash)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rcode <- 0
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -331,8 +341,16 @@ func Main(statePath string, processCallback certspotter.ProcessCallback) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
exitCode := 0
|
exitCode := 0
|
||||||
|
wg.Add(len(logs))
|
||||||
|
|
||||||
for i := range logs {
|
for i := range logs {
|
||||||
exitCode |= processLog(&logs[i], processCallback)
|
go processLog(&logs[i], processCallback)
|
||||||
|
}
|
||||||
|
|
||||||
|
wg.Wait()
|
||||||
|
|
||||||
|
for i := range rcode {
|
||||||
|
exitCode |= i
|
||||||
}
|
}
|
||||||
|
|
||||||
if state.IsFirstRun() && exitCode == 0 {
|
if state.IsFirstRun() && exitCode == 0 {
|
||||||
|
|
Loading…
Reference in New Issue