diff --git a/src/builder/b-deletion.c b/src/builder/b-deletion.c
index 42cc7ea..7b35fba 100644
--- a/src/builder/b-deletion.c
+++ b/src/builder/b-deletion.c
@@ -535,13 +535,15 @@ callback_sai_deletion_stdwsi(struct lws *wsi, enum lws_callback_reasons reason,
ilen = (int)rb;
}
#else
- ilen = (int)read((int)(intptr_t)lws_get_socket_fd(wsi), buf, sizeof(buf));
+ ilen = (int)read((int)(intptr_t)lws_get_socket_fd(wsi), buf, sizeof(buf) - 1);
if (ilen < 1) {
return -1;
}
#endif
- if (ilen > 0)
- lwsl_notice("[DELETION] %.*s", ilen, buf);
+ if (ilen > 0) {
+ buf[ilen] = '\0';
+ lwsl_notice("[DELETION] %s", (const char *)buf);
+ }
break;
default:
@@ -580,6 +582,11 @@ saib_deletion_init(const char *argv0)
lws_snprintf(uds_path, sizeof(uds_path), "%s/sai-deletion.sock", builder.home);
+ if (!builder.vhost) {
+ lwsl_err("%s: builder.vhost is NULL\n", __func__);
+ return 1;
+ }
+
config.cx = builder.context;
config.vh = builder.vhost;
config.stub_name = "sai-deletion";
@@ -590,6 +597,7 @@ saib_deletion_init(const char *argv0)
config.extra_payload = builder.home;
config.extra_payload_len = strlen(builder.home) + 1;
config.connected_cb = sai_deletion_connected_cb;
+ config.parent_protocol_name = "sai-deletion-stdxxx";
builder.mgr_deletion = lws_stub_spawn(&config);
if (!builder.mgr_deletion) {
diff --git a/src/builder/b-power.c b/src/builder/b-power.c
index 9c04813..65a2570 100644
--- a/src/builder/b-power.c
+++ b/src/builder/b-power.c
@@ -84,7 +84,7 @@ saib_power_client_state(void *userobj, void *sh, lws_ss_constate_t state,
break;
case LWSSSCS_CONNECTED:
- lwsl_notice("%s: Connected to sai-power, sending registration: '%s' '%s'\n", __func__, builder.host, builder.power_controller_name);
+ lwsl_notice("%s: Connected to sai-power, sending registration: '%s' '%s'\n", __func__, builder.host ? builder.host : "unknown", builder.power_controller_name ? builder.power_controller_name : "none");
/* Prepare registration message */
memset(&r, 0, sizeof(r));
@@ -156,7 +156,7 @@ saib_reassess_idle_situation()
{
char in_use = 0;
- lwsl_notice("%s: Assessing idle situation for %s (stay=%d)\n", __func__, builder.host, builder.stay);
+ lwsl_notice("%s: Assessing idle situation for %s (stay=%d)\n", __func__, builder.host ? builder.host : "unknown", builder.stay);
if (builder.stay) {
/*
@@ -166,7 +166,7 @@ saib_reassess_idle_situation()
lws_sul_cancel(&builder.sul_idle);
lwsl_warn("%s: %s: stay applied: cancelled idle grace time\n",
- __func__, builder.host);
+ __func__, builder.host ? builder.host : "unknown");
return 0;
}
@@ -225,11 +225,11 @@ saib_reassess_idle_situation()
if (lws_dll2_is_detached(&builder.sul_idle.list)) {
int grace_secs = builder.one_shot_active ? 2 : (builder.event_affinity_active ? 15 : (int)(SAI_IDLE_GRACE_US / LWS_US_PER_SEC));
lwsl_notice("%s: %s: NO STAY and NO TASKS: starting %d sec idle grace time before auto-power-off\n",
- __func__, builder.host, grace_secs);
+ __func__, builder.host ? builder.host : "unknown", grace_secs);
lws_sul_schedule(builder.context, 0, &builder.sul_idle,
sul_idle_cb, grace_secs * LWS_US_PER_SEC);
} else {
- lwsl_notice("%s: %s: Idle grace time is ALREADY running\n", __func__, builder.host);
+ lwsl_notice("%s: %s: Idle grace time is ALREADY running\n", __func__, builder.host ? builder.host : "unknown");
}
return 0;
@@ -538,7 +538,7 @@ sul_idle_cb(lws_sorted_usec_list_t *sul)
*/
snprintf(builder.path_power_off, sizeof(builder.path_power_off) - 1, "%s/auto-power-off/%s",
- builder.url_sai_power, builder.host);
+ builder.url_sai_power ? builder.url_sai_power : "", builder.host ? builder.host : "unknown");
lwsl_notice("%s: requesting sai-power (or virt) to terminate us: %s\n", __func__, builder.path_power_off);
@@ -583,7 +583,7 @@ saib_power_init(void)
lwsl_notice("%s: *** creating sai-power ss...\n", __func__);
if (lws_ss_create(builder.context, 0, &ssi_saib_power_link_t,
- (void *)builder.host, &builder.ss_power_off, NULL, NULL)) {
+ (void *)(builder.host ? builder.host : ""), &builder.ss_power_off, NULL, NULL)) {
lwsl_err("%s: *** failed to create sai-power ss\n", __func__);
return 1;
}
diff --git a/src/builder/b-sai.c b/src/builder/b-sai.c
index a450f32..81fa8d5 100644
--- a/src/builder/b-sai.c
+++ b/src/builder/b-sai.c
@@ -359,10 +359,13 @@ app_system_state_nf(lws_state_manager_t *mgr, lws_state_notify_link_t *link,
*/
memset(&info, 0, sizeof(info));
- pvo1a.value = builder.metrics_uri;
- pvo1b.value = builder.metrics_path;
- pvo1c.value = builder.metrics_secret;
- info.pvo = &pvo1;
+ info.port = CONTEXT_PORT_NO_LISTEN;
+ if (builder.metrics_uri && builder.metrics_path && builder.metrics_secret) {
+ pvo1a.value = builder.metrics_uri;
+ pvo1b.value = builder.metrics_path;
+ pvo1c.value = builder.metrics_secret;
+ info.pvo = &pvo1;
+ }
info.pprotocols = pprotocols;
builder.vhost = lws_create_vhost(builder.context, &info);
@@ -805,11 +808,12 @@ saib_app_run(int argc, const char **argv)
lwsl_user(" sai-builder [-c <config-file>]\n");
lwsl_notice("%s: sai-power: %s %s %s %s %s\n",
- __func__, builder.power_on_type,
- builder.power_on_url,
- builder.power_on_mac,
- builder.power_off_type,
- builder.power_off_url);
+ __func__,
+ builder.power_on_type ? builder.power_on_type : "none",
+ builder.power_on_url ? builder.power_on_url : "none",
+ builder.power_on_mac ? builder.power_on_mac : "none",
+ builder.power_off_type ? builder.power_off_type : "none",
+ builder.power_off_url ? builder.power_off_url : "none");
memset(&info, 0, sizeof info);
info.port = CONTEXT_PORT_NO_LISTEN;