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 / builder / CMakeLists.txt
Author[]Andy Green <andy@warmcat.com> 2026-07-22 15:32 UTC
Committer[]Andy Green <andy@warmcat.com> 2026-07-24 09:34 UTC
Tree3b8efbdef2e5a069bf596122641905f3c6c73e81   Raw Patch
 
unspin
unspin
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;
Page fetched 0s ago, creation time: 2ms (vhost etag hits: 0%, cache hits: 0%)