Author: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sat Dec 27 14:13:36 2025 +0000 Fix HTTP API PCON lookup and builder shutdown logic - Update `p-http-api.c` to support PCON name lookup in API endpoints (`/stay/`, `/power-on/`, `/power-off/`), enabling proper interaction with builders configured by PCON name. - Fix `sai-builder` premature shutdown by ensuring it receives the correct "stay on" status from the API when manually enabled via UI. - Maintain `user_keep_on` state in `p-http-api.c` to respect manual override. diff --git a/src/power/p-http-api.c b/src/power/p-http-api.c index d66e8ad..5dc6a47 100644 --- a/src/power/p-http-api.c +++ b/src/power/p-http-api.c @@ -399,8 +399,9 @@ local_srv_state(void *userobj, void *sh, lws_ss_constate_t state, if (len > 6 && !strncmp(path, "/stay/", 6)) { lws_strnncpy(pn, &path[6], len - 6, sizeof(pn)); - /* Assuming 'pn' is a builder name for legacy compatibility */ - pc = find_pcon_by_builder_name(&power, pn); + pc = saip_pcon_by_name(&power, pn); + if (!pc) + pc = find_pcon_by_builder_name(&power, pn); if (pc) g->size = (size_t)lws_snprintf(g->payload, sizeof(g->payload), @@ -414,8 +415,11 @@ local_srv_state(void *userobj, void *sh, lws_ss_constate_t state, if (len > 10 && !strncmp(path, "/power-on/", 10)) { lws_strnncpy(pn, &path[10], len - 10, sizeof(pn)); - /* Assume builder name */ - pc = find_pcon_by_builder_name(&power, pn); + + pc = saip_pcon_by_name(&power, pn); + if (!pc) + pc = find_pcon_by_builder_name(&power, pn); + if (!pc) { g->size = (size_t)lws_snprintf(g->payload, sizeof(g->payload), "Unable to find PCON for %s", pn); @@ -488,7 +492,10 @@ power_off: g->size = (size_t)lws_snprintf(g->payload, sizeof(g->payload), "Unable to find host %s", pn); - pc = find_pcon_by_builder_name(&power, pn); + pc = saip_pcon_by_name(&power, pn); + if (!pc) + pc = find_pcon_by_builder_name(&power, pn); + if (pc) { if (apo) {