From f8b2ff5acedc1835cee10acca49649d1957ed781 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sat, 6 Sep 2025 17:10:42 -0500 Subject: [PATCH] more on patch handling --- http.go | 91 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 88 insertions(+), 3 deletions(-) diff --git a/http.go b/http.go index 5d844e1..fce515a 100644 --- a/http.go +++ b/http.go @@ -82,6 +82,79 @@ func okHandler(w http.ResponseWriter, r *http.Request) { return } + if strings.HasPrefix(route, "/patches/applied") { + log.Info("todo: handle applied patches") + return + } + + if route == "/patchset" { + if err := savePatchset(w, msg); err != nil { + log.Warn("forged /patchset error", err) + return + } + if err := me.forge.SavePatchsets(); err != nil { + log.Warn("savePatchsets() failed", err) + return + } + return + } + + if route == "/lookup" { + log.Info("doing lookup len(msg) =", len(msg)) + found, err := lookupRepos(msg) + if err != nil { + return + } + + /* + for repo := range repos.IterAll() { + repo.Namespace += "good" + log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath) + } + */ + found.SendPB(w) + return + } + + if strings.HasPrefix(route, "/patches/") { + handlePatches(w, r, msg) + return + } + + if route == "/patchset" { + if err := savePatchset(w, msg); err != nil { + log.Warn("forged /patchset error", err) + return + } + if err := me.forge.SavePatchsets(); err != nil { + log.Warn("savePatchsets() failed", err) + return + } + return + } + + if route == "/lookup" { + log.Info("doing lookup len(msg) =", len(msg)) + found, err := lookupRepos(msg) + if err != nil { + return + } + + /* + for repo := range repos.IterAll() { + repo.Namespace += "good" + log.Infof("repo:%s,%s\n", repo.Namespace, repo.FullPath) + } + */ + found.SendPB(w) + return + } + + if strings.HasPrefix(route, "/patches/") { + handlePatches(w, r, msg) + return + } + if route == "/patchset" { if err := savePatchset(w, msg); err != nil { log.Warn("forged /patchset error", err) @@ -122,10 +195,22 @@ func okHandler(w http.ResponseWriter, r *http.Request) { return } - if route == "/GetPatchsets" { + if route == "/GetPatchsets" || route == "/patchsets/get" { + data, err := me.forge.Patchsets.Marshal() + if err != nil { + log.Info("patchsets.Marshal() to wire failed", err) + return + } + start := time.Now() - log.Info("going to w.Write(msg) with len", len(msg)) - w.Write(msg) + log.Info("going to w.Write(data) with len", len(data)) + w.Write(data) + + /* + start := time.Now() + log.Info("going to w.Write(msg) with len", len(msg)) + w.Write(msg) + */ age := shell.FormatDuration(time.Since(start)) log.Printf("Done with xfer in (%s). happy hacking!\n", age) return