Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
    npro  
 Modern all-safe Rust Network Protocol library supporting h1, h2, h3, ws, wt sans-IO and with socket IO + tls
git clone https://npro.rs/repo/npro
 
root / src / web / w-ws-browser.c
Author[]google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.c...> 2025-12-27 14:13 UTC
Committer[]Andy Green <andy@warmcat.com> 2025-12-27 14:15 UTC
Tree522669c05932cd781b60b73fc40add577f485214   Raw Patch
 
Fix HTTP API PCON lookup and builder shutdown logic
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) {
Page fetched 0s ago, creation time: 3ms (vhost etag hits: 0%, cache hits: 0%)