ipn/localapi: serve service list

This commit is contained in:
Adriano Sela Aviles 2026-04-03 01:01:33 -07:00
parent 99b3073ab6
commit 2685295d45
No known key found for this signature in database
GPG Key ID: 28128631BCCBB1BB

View File

@ -82,6 +82,7 @@ var handler = map[string]LocalAPIHandler{
"prefs": (*Handler).servePrefs,
"reload-config": (*Handler).reloadConfig,
"reset-auth": (*Handler).serveResetAuth,
"services": (*Handler).serveServices,
"set-expiry-sooner": (*Handler).serveSetExpirySooner,
"shutdown": (*Handler).serveShutdown,
"start": (*Handler).serveStart,
@ -1707,6 +1708,24 @@ func (h *Handler) serveShutdown(w http.ResponseWriter, r *http.Request) {
eventbus.Publish[Shutdown](ec).Publish(Shutdown{})
}
func (h *Handler) serveServices(w http.ResponseWriter, r *http.Request) {
if r.Method != httpm.GET {
http.Error(w, "only GET allowed", http.StatusMethodNotAllowed)
return
}
nm := h.b.NetMap()
if nm == nil {
http.Error(w, "no netmap", http.StatusServiceUnavailable)
return
}
details := nm.GetVisibleServiceDetails()
if details == nil {
details = []*tailcfg.ServiceDetail{}
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(details)
}
func (h *Handler) serveGetAppcRouteInfo(w http.ResponseWriter, r *http.Request) {
if !buildfeatures.HasAppConnectors {
http.Error(w, feature.ErrUnavailable.Error(), http.StatusNotImplemented)