forked from tangled.org/core
this repo has no description

fix jetstream not reconnecting

Changed files
+11 -3
appview
state
knotserver
+1
appview/state/state.go
···
ksResp, err := ksClient.AddMember(memberIdent.DID.String())
if err != nil {
log.Printf("failed to make request to %s: %s", domain, err)
+
return
}
if ksResp.StatusCode != http.StatusNoContent {
+8 -1
knotserver/jetstream.go
···
jc := &JetstreamClient{
cfg: cfg,
client: client,
-
reconnectCh: make(chan struct{}),
+
reconnectCh: make(chan struct{}, 1),
}
h.jc = jc
···
}
}
}
+
}
+
+
func (j *JetstreamClient) AddDid(did string) {
+
j.mu.Lock()
+
j.cfg.WantedDids = append(j.cfg.WantedDids, did)
+
j.mu.Unlock()
+
j.reconnectCh <- struct{}{}
}
func (j *JetstreamClient) UpdateDids(dids []string) {
+2 -2
knotserver/routes.go
···
return
}
-
h.jc.UpdateDids([]string{did})
+
h.jc.AddDid(did)
if err := h.e.AddMember(ThisServer, did); err != nil {
l.Error("adding member", "error", err.Error())
writeError(w, err.Error(), http.StatusInternalServerError)
···
writeError(w, err.Error(), http.StatusInternalServerError)
return
}
-
h.jc.UpdateDids([]string{data.Did})
+
h.jc.AddDid(data.Did)
repoName := filepath.Join(ownerDid, repo)
if err := h.e.AddRepo(data.Did, ThisServer, repoName); err != nil {