aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoey Jiao <quic_jiangenj@quicinc.com>2022-03-03 11:52:45 +0800
committerAleksandr Nogikh <nogikh@google.com>2025-03-17 03:57:39 +0000
commit8bce0e10ff4d88187f2cf3dde8995444e6c6c7e1 (patch)
tree685d11b46a0a6a69057732ea8bdd72a8355db08d
parente28266709dd2a1d1452d4a5bbf271700e10335c6 (diff)
all: show manager url in syz-hub
-rw-r--r--pkg/rpctype/rpctype.go2
-rw-r--r--syz-hub/http.go4
-rw-r--r--syz-hub/hub.go6
-rw-r--r--syz-hub/state/state.go4
-rw-r--r--syz-hub/state/state_test.go2
-rw-r--r--syz-manager/hub.go2
6 files changed, 15 insertions, 5 deletions
diff --git a/pkg/rpctype/rpctype.go b/pkg/rpctype/rpctype.go
index e314424ea..4f941f51c 100644
--- a/pkg/rpctype/rpctype.go
+++ b/pkg/rpctype/rpctype.go
@@ -12,6 +12,8 @@ type HubConnectArgs struct {
Key string
// Manager name, must start with Client.
Manager string
+ // Manager HTTP URL.
+ HTTP string
// See pkg/mgrconfig.Config.HubDomain.
Domain string
// Manager has started with an empty corpus and requests whole hub corpus.
diff --git a/syz-hub/http.go b/syz-hub/http.go
index ffb7a1be5..06f777f34 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,
+ HTTP: mgr.HTTP,
Domain: mgr.Domain,
Corpus: len(mgr.Corpus.Records),
Added: mgr.Added,
@@ -79,6 +80,7 @@ type UISummaryData struct {
type UIManager struct {
Name string
+ HTTP string
Domain string
Corpus int
Added int
@@ -104,6 +106,7 @@ var summaryTemplate = compileTemplate(`
<caption>Managers:</caption>
<tr>
<th>Name</th>
+ <th>URL</th>
<th>Domain</th>
<th>Corpus</th>
<th>Added</th>
@@ -116,6 +119,7 @@ var summaryTemplate = compileTemplate(`
{{range $m := $.Managers}}
<tr>
<td>{{$m.Name}}</td>
+ <td><a href="{{$m.HTTP}}">{{$m.HTTP}}</a></td>
<td>{{$m.Domain}}</td>
<td>{{$m.Corpus}}</td>
<td>{{$m.Added}}</td>
diff --git a/syz-hub/hub.go b/syz-hub/hub.go
index 22090c6e5..4b7b61354 100644
--- a/syz-hub/hub.go
+++ b/syz-hub/hub.go
@@ -78,9 +78,9 @@ func (hub *Hub) Connect(a *rpctype.HubConnectArgs, r *int) error {
hub.mu.Lock()
defer hub.mu.Unlock()
- log.Logf(0, "connect from %v: domain=%v fresh=%v calls=%v corpus=%v",
- name, a.Domain, a.Fresh, len(a.Calls), len(a.Corpus))
- if err := hub.st.Connect(name, a.Domain, a.Fresh, a.Calls, a.Corpus); err != nil {
+ log.Logf(0, "connect from %v (%v): domain=%v fresh=%v calls=%v corpus=%v",
+ name, a.HTTP, a.Domain, a.Fresh, len(a.Calls), len(a.Corpus))
+ if err := hub.st.Connect(name, a.HTTP, a.Domain, a.Fresh, a.Calls, a.Corpus); err != nil {
log.Logf(0, "connect error: %v", err)
return err
}
diff --git a/syz-hub/state/state.go b/syz-hub/state/state.go
index 0bed36a91..bbba0cc0e 100644
--- a/syz-hub/state/state.go
+++ b/syz-hub/state/state.go
@@ -36,6 +36,7 @@ type State struct {
type Manager struct {
name string
dir string
+ HTTP string
Domain string
corpusSeq uint64
reproSeq uint64
@@ -208,7 +209,7 @@ func (st *State) PurgeOldManagers() error {
return nil
}
-func (st *State) Connect(name, domain string, fresh bool, calls []string, corpus [][]byte) error {
+func (st *State) Connect(name, http, domain string, fresh bool, calls []string, corpus [][]byte) error {
mgr := st.Managers[name]
if mgr == nil {
var err error
@@ -217,6 +218,7 @@ func (st *State) Connect(name, domain string, fresh bool, calls []string, corpus
return err
}
}
+ mgr.HTTP = http
mgr.Connected = time.Now()
mgr.Domain = domain
writeFile(mgr.domainFile, []byte(mgr.Domain))
diff --git a/syz-hub/state/state_test.go b/syz-hub/state/state_test.go
index 335f02ea0..7a7f5d6df 100644
--- a/syz-hub/state/state_test.go
+++ b/syz-hub/state/state_test.go
@@ -38,7 +38,7 @@ func (ts *TestState) Reload() {
func (ts *TestState) Connect(name, domain string, fresh bool, calls []string, corpus [][]byte) {
ts.t.Helper()
- if err := ts.state.Connect(name, domain, fresh, calls, corpus); err != nil {
+ if err := ts.state.Connect(name, "", domain, fresh, calls, corpus); err != nil {
ts.t.Fatalf("Connect failed: %v", err)
}
}
diff --git a/syz-manager/hub.go b/syz-manager/hub.go
index 2c10a80f4..e10835f9e 100644
--- a/syz-manager/hub.go
+++ b/syz-manager/hub.go
@@ -155,10 +155,12 @@ func (hc *HubConnector) connect(corpus []*corpus.Item) (*rpctype.RPCClient, erro
if err != nil {
return nil, err
}
+ http := publicWebAddr(hc.cfg.HTTP)
a := &rpctype.HubConnectArgs{
Client: hc.cfg.HubClient,
Key: key,
Manager: hc.cfg.Name,
+ HTTP: http,
Domain: hc.domain,
Fresh: hc.fresh,
}