diff --git a/internal/utils/utils.go b/internal/utils/utils.go index b8e44da..8668672 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -396,15 +396,19 @@ func FetchCTLogList(url string) (map[string]CTLogInfo, error) { return nil, err } + type logEntry struct { + Description string `json:"description"` + LogID string `json:"log_id"` + URL string `json:"url"` + SubmissionURL string `json:"submission_url"` + MonitoringURL string `json:"monitoring_url"` + State map[string]json.RawMessage `json:"state"` + } var list struct { Operators []struct { - Name string `json:"name"` - Logs []struct { - Description string `json:"description"` - LogID string `json:"log_id"` - URL string `json:"url"` - State map[string]json.RawMessage `json:"state"` - } `json:"logs"` + Name string `json:"name"` + Logs []logEntry `json:"logs"` + TiledLogs []logEntry `json:"tiled_logs"` } `json:"operators"` } if err := json.Unmarshal(data, &list); err != nil { @@ -413,7 +417,7 @@ func FetchCTLogList(url string) (map[string]CTLogInfo, error) { result := make(map[string]CTLogInfo) for _, op := range list.Operators { - for _, log := range op.Logs { + for _, log := range append(append([]logEntry{}, op.Logs...), op.TiledLogs...) { raw, err := base64.StdEncoding.DecodeString(log.LogID) if err != nil { continue @@ -424,9 +428,16 @@ func FetchCTLogList(url string) (map[string]CTLogInfo, error) { state = k break } + url := log.URL + if url == "" { + url = log.MonitoringURL + } + if url == "" { + url = log.SubmissionURL + } result[hexID] = CTLogInfo{ Description: log.Description, - URL: log.URL, + URL: url, Operator: op.Name, State: state, }