Author: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Sun Nov 30 16:47:58 2025 +0000 Fix compilation errors in p-http-api.c - Added `saip_pcon_create` declaration to `src/power/p-private.h` and implementation in `src/power/p-utils.c` to resolve implicit declaration error. - Corrected `lws_sul_schedule` call in `src/power/p-http-api.c` to use `lws_ss_get_context()` instead of passing the handle directly, resolving incompatible pointer type error. diff --git a/src/power/p-http-api.c b/src/power/p-http-api.c index fc58279..986df3a 100644 --- a/src/power/p-http-api.c +++ b/src/power/p-http-api.c @@ -517,7 +517,7 @@ power_off: /* * OK this is it, schedule it to happen */ - lws_sul_schedule(lws_ss_from_user(g), 0, + lws_sul_schedule(lws_ss_get_context(lws_ss_from_user(g)), 0, &pc->sul_delay_off, saip_sul_action_power_off, SAI_POWERDOWN_HOLDOFF_US); diff --git a/src/power/p-private.h b/src/power/p-private.h index 63013bc..40d5742 100644 --- a/src/power/p-private.h +++ b/src/power/p-private.h @@ -187,6 +187,9 @@ saip_queue_stay_info(saip_server_t *sps); saip_pcon_t * saip_pcon_by_name(struct sai_power *power, const char *name); +saip_pcon_t * +saip_pcon_create(struct sai_power *power, const char *name); + int saip_parse_tasmota_status(tasmota_parse_t *tp); diff --git a/src/power/p-utils.c b/src/power/p-utils.c index 6846dc8..b4d3480 100644 --- a/src/power/p-utils.c +++ b/src/power/p-utils.c @@ -39,3 +39,22 @@ saip_pcon_by_name(struct sai_power *power, const char *name) return NULL; } + +saip_pcon_t * +saip_pcon_create(struct sai_power *power, const char *name) +{ + saip_pcon_t *pc = lwsac_use_zero(&power->ac_conf_head, sizeof(*pc), 4096); + if (!pc) + return NULL; + + pc->name = lwsac_use(&power->ac_conf_head, strlen(name) + 1, 512); + if (!pc->name) + return NULL; + strcpy((char *)pc->name, name); + + lws_dll2_add_tail(&pc->list, &power->sai_pcon_owner); + + lwsl_notice("%s: Created dynamic PCON '%s'\n", __func__, name); + + return pc; +}