aboutsummaryrefslogtreecommitdiffstats
path: root/syz-hub
diff options
context:
space:
mode:
Diffstat (limited to 'syz-hub')
-rw-r--r--syz-hub/http.go14
-rw-r--r--syz-hub/state/state.go32
2 files changed, 16 insertions, 30 deletions
diff --git a/syz-hub/http.go b/syz-hub/http.go
index 9887015e0..ffb7a1be5 100644
--- a/syz-hub/http.go
+++ b/syz-hub/http.go
@@ -48,6 +48,7 @@ func (hub *Hub) httpSummary(w http.ResponseWriter, r *http.Request) {
total.RecvRepros += mgr.RecvRepros
data.Managers = append(data.Managers, UIManager{
Name: name,
+ Domain: mgr.Domain,
Corpus: len(mgr.Corpus.Records),
Added: mgr.Added,
Deleted: mgr.Deleted,
@@ -56,7 +57,9 @@ func (hub *Hub) httpSummary(w http.ResponseWriter, r *http.Request) {
RecvRepros: mgr.RecvRepros,
})
}
- sort.Sort(UIManagerArray(data.Managers))
+ sort.Slice(data.Managers, func(i, j int) bool {
+ return data.Managers[i].Name < data.Managers[j].Name
+ })
data.Managers = append([]UIManager{total}, data.Managers...)
if err := summaryTemplate.Execute(w, data); err != nil {
log.Logf(0, "failed to execute template: %v", err)
@@ -76,6 +79,7 @@ type UISummaryData struct {
type UIManager struct {
Name string
+ Domain string
Corpus int
Added int
Deleted int
@@ -85,12 +89,6 @@ type UIManager struct {
RecvRepros int
}
-type UIManagerArray []UIManager
-
-func (a UIManagerArray) Len() int { return len(a) }
-func (a UIManagerArray) Less(i, j int) bool { return a[i].Name < a[j].Name }
-func (a UIManagerArray) Swap(i, j int) { a[i], a[j] = a[j], a[i] }
-
var summaryTemplate = compileTemplate(`
<!doctype html>
<html>
@@ -106,6 +104,7 @@ var summaryTemplate = compileTemplate(`
<caption>Managers:</caption>
<tr>
<th>Name</th>
+ <th>Domain</th>
<th>Corpus</th>
<th>Added</th>
<th>Deleted</th>
@@ -117,6 +116,7 @@ var summaryTemplate = compileTemplate(`
{{range $m := $.Managers}}
<tr>
<td>{{$m.Name}}</td>
+ <td>{{$m.Domain}}</td>
<td>{{$m.Corpus}}</td>
<td>{{$m.Added}}</td>
<td>{{$m.Deleted}}</td>
diff --git a/syz-hub/state/state.go b/syz-hub/state/state.go
index 9ffe28cda..44b416d6d 100644
--- a/syz-hub/state/state.go
+++ b/syz-hub/state/state.go
@@ -35,7 +35,7 @@ type State struct {
// Manager represents one syz-manager instance.
type Manager struct {
name string
- domain string
+ Domain string
corpusSeq uint64
reproSeq uint64
corpusFile string
@@ -160,14 +160,14 @@ func (st *State) createManager(name string) (*Manager, error) {
st.reproSeq = mgr.reproSeq
}
domainData, _ := ioutil.ReadFile(mgr.domainFile)
- mgr.domain = string(domainData)
+ mgr.Domain = string(domainData)
corpus, _, err := loadDB(mgr.corpusFile, name, false)
if err != nil {
return nil, fmt.Errorf("failed to open manager corpus %v: %v", mgr.corpusFile, err)
}
mgr.Corpus = corpus
log.Logf(0, "created manager %v: domain=%v corpus=%v, corpusSeq=%v, reproSeq=%v",
- mgr.name, mgr.domain, len(mgr.Corpus.Records), mgr.corpusSeq, mgr.reproSeq)
+ mgr.name, mgr.Domain, len(mgr.Corpus.Records), mgr.corpusSeq, mgr.reproSeq)
st.Managers[name] = mgr
return mgr, nil
}
@@ -182,8 +182,8 @@ func (st *State) Connect(name, domain string, fresh bool, calls []string, corpus
}
}
mgr.Connected = time.Now()
- mgr.domain = domain
- writeFile(mgr.domainFile, []byte(mgr.domain))
+ mgr.Domain = domain
+ writeFile(mgr.domainFile, []byte(mgr.Domain))
if fresh {
mgr.corpusSeq = 0
mgr.reproSeq = st.reproSeq
@@ -227,7 +227,7 @@ func (st *State) Sync(name string, add [][]byte, del []string) (string, []rpctyp
mgr.Added += len(add)
mgr.Deleted += len(del)
mgr.New += len(progs)
- return mgr.domain, progs, more, err
+ return mgr.Domain, progs, more, err
}
func (st *State) AddRepro(name string, repro []byte) error {
@@ -352,22 +352,8 @@ func (st *State) pendingInputs(mgr *Manager) ([]rpctype.HubInput, int, error) {
}
progs := make([]rpctype.HubInput, 0, len(records))
for _, rec := range records {
- domain := ""
- for _, mgr1 := range st.Managers {
- same := mgr1.domain == mgr.domain
- if !same && domain != "" {
- continue
- }
- if _, ok := mgr1.Corpus.Records[rec.Key]; !ok {
- continue
- }
- domain = mgr1.domain
- if same {
- break
- }
- }
progs = append(progs, rpctype.HubInput{
- Domain: st.inputDomain(rec.Key, mgr.domain),
+ Domain: st.inputDomain(rec.Key, mgr.Domain),
Prog: rec.Val,
})
}
@@ -379,14 +365,14 @@ func (st *State) pendingInputs(mgr *Manager) ([]rpctype.HubInput, int, error) {
func (st *State) inputDomain(key, self string) string {
domain := ""
for _, mgr := range st.Managers {
- same := mgr.domain == self
+ same := mgr.Domain == self
if !same && domain != "" {
continue
}
if _, ok := mgr.Corpus.Records[key]; !ok {
continue
}
- domain = mgr.domain
+ domain = mgr.Domain
if same {
break
}