diff --git a/src/builder/b-sai.c b/src/builder/b-sai.c
index d361a1d..faf0680 100644
--- a/src/builder/b-sai.c
+++ b/src/builder/b-sai.c
@@ -349,6 +349,10 @@ sai_power_stay_state(void *userobj, void *sh, lws_ss_constate_t state,
switch ((int)state) {
case LWSSSCS_CREATING:
+
+ if (!builder.url_sai_power)
+ return LWSSSSRET_DESTROY_ME;
+
snprintf(builder.path, sizeof(builder.path) - 1, "%s/stay/%s",
builder.url_sai_power, builder.host);
@@ -377,7 +381,13 @@ LWS_SS_INFO("sai_power", saib_power_stay_t)
void
sul_stay_cb(lws_sorted_usec_list_t *sul)
{
- lws_ss_state_return_t r = lws_ss_client_connect(builder.ss_stay);
+ lws_ss_state_return_t r;
+
+ /* nothing to do if no sai-power coordinates given */
+ if (!builder.url_sai_power)
+ return;
+
+ r = lws_ss_client_connect(builder.ss_stay);
if (r)
lwsl_ss_err(builder.ss_stay, "Unable to start stay connection (%d)", (int)r);
diff --git a/src/builder/b-task.c b/src/builder/b-task.c
index b7d0828..f7848ff 100644
--- a/src/builder/b-task.c
+++ b/src/builder/b-task.c
@@ -787,12 +787,12 @@ saib_ws_json_rx_builder(struct sai_plat_server *spm, const void *in, size_t len)
sai_viewer_state_t *vs = (sai_viewer_state_t *)a.dest;
char any_busy = 0;
- lwsl_notice("Received viewer state update: %u viewers\n",
- vs->viewers);
+ lwsl_notice("Received viewer state update: %u viewers\n", vs->viewers);
spm->viewer_count = vs->viewers;
if (!vs->viewers) {
+ lwsl_notice("%s: VIEWERSTATE: no viewers -> no load reports\n", __func__);
lws_sul_cancel(&spm->sul_load_report);
break;
}
@@ -813,11 +813,15 @@ saib_ws_json_rx_builder(struct sai_plat_server *spm, const void *in, size_t len)
} lws_end_foreach_dll_safe(d, d1);
if (!any_busy) {
+ lwsl_notice("%s: VIEWERSTATE: no busy instances -> no load reports\n", __func__);
+
lws_sul_cancel(&spm->sul_load_report);
break;
}
/* At least one viewer, start reporting */
+ lwsl_notice("%s: VIEWERSTATE: viewers + busy instances -> load reports\n", __func__);
+
lws_sul_schedule(builder.context, 0, &spm->sul_load_report,
saib_sul_load_report_cb, 1);
}