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 / assets / iosevka-term-ss01-regular.ttf
Author[]Andy Green <andy@warmcat.com> 2026-07-10 07:19 UTC
Committer[]Andy Green <andy@warmcat.com> 2026-07-10 09:27 UTC
Tree91a9b9b2013534fa95f4710baf9f753491b1c255   Raw Patch
 
cov
cov
diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c8c4c3..9fc0a84 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,9 @@ if (WIN32) list(APPEND CMAKE_PREFIX_PATH "C:/Program Files (x86)/libwebsockets" "C:/Program Files/libwebsockets") endif() find_package(libwebsockets CONFIG REQUIRED) +if (NOT LWS_CMAKE_DIR AND libwebsockets_DIR) + set(LWS_CMAKE_DIR ${libwebsockets_DIR}) +endif() list(APPEND CMAKE_MODULE_PATH ${LWS_CMAKE_DIR}) include(CheckCSourceCompiles) include(CheckSymbolExists) diff --git a/assets/linux-debian13.svg b/assets/linux-debian13.svg new file mode 100644 index 0000000..b327508 --- /dev/null +++ b/assets/linux-debian13.svg @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="UTF-8"?> +<svg width="3.8163mm" height="3.8163mm" version="1.1" viewBox="0 0 3.8163 3.8163" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> +<metadata> +<rdf:RDF> +<cc:Work rdf:about=""> +<dc:format>image/svg+xml</dc:format> +<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> +<dc:title/> +</cc:Work> +</rdf:RDF> +</metadata> +<g transform="translate(111.52 183.34)"> +<g transform="translate(841.47 545.61)"> +<circle cx="-648.7" cy="-122.27" r="1.9082" fill="#f0f0f0" opacity=".42096"/> +<g transform="matrix(.029308 0 0 .029308 -650 -123.79)"> +<g fill="#a80030"> +<path d="m51.986 57.297c-1.797 0.025 0.34 0.926 2.686 1.287 0.648-0.506 1.236-1.018 1.76-1.516-1.461 0.358-2.948 0.366-4.446 0.229"/> +<path d="m61.631 54.893c1.07-1.477 1.85-3.094 2.125-4.766-0.24 1.192-0.887 2.221-1.496 3.307-3.359 2.115-0.316-1.256 0-2.537-3.612 4.546-0.496 2.726-0.627 3.996"/> +<path d="m65.191 45.629c0.217-3.236-0.637-2.213-0.924-0.978 0.335 0.174 0.6 2.281 0.924 0.978"/> +<path d="m45.172 1.399c0.959 0.172 2.072 0.304 1.916 0.533 1.049-0.23 1.287-0.442-1.916-0.533"/> +<path d="m47.088 1.932-0.678 0.14 0.631-0.056 0.047-0.084"/> +<path d="m76.992 46.856c0.107 2.906-0.85 4.316-1.713 6.812l-1.553 0.776c-1.271 2.468 0.123 1.567-0.787 3.53-1.984 1.764-6.021 5.52-7.313 5.863-0.943-0.021 0.639-1.113 0.846-1.541-2.656 1.824-2.131 2.738-6.193 3.846l-0.119-0.264c-10.018 4.713-23.934-4.627-23.751-17.371-0.107 0.809-0.304 0.607-0.526 0.934-0.517-6.557 3.028-13.143 9.007-15.832 5.848-2.895 12.704-1.707 16.893 2.197-2.301-3.014-6.881-6.209-12.309-5.91-5.317 0.084-10.291 3.463-11.951 7.131-2.724 1.715-3.04 6.611-4.227 7.507-1.597 11.737 3.004 16.808 10.787 22.773 1.225 0.826 0.345 0.951 0.511 1.58-2.586-1.211-4.954-3.039-6.901-5.277 1.033 1.512 2.148 2.982 3.589 4.137-2.438-0.826-5.695-5.908-6.646-6.115 4.203 7.525 17.052 13.197 23.78 10.383-3.113 0.115-7.068 0.064-10.566-1.229-1.469-0.756-3.467-2.322-3.11-2.615 9.182 3.43 18.667 2.598 26.612-3.771 2.021-1.574 4.229-4.252 4.867-4.289-0.961 1.445 0.164 0.695-0.574 1.971 2.014-3.248-0.875-1.322 2.082-5.609l1.092 1.504c-0.406-2.696 3.348-5.97 2.967-10.234 0.861-1.304 0.961 1.403 0.047 4.403 1.268-3.328 0.334-3.863 0.66-6.609 0.352 0.923 0.814 1.904 1.051 2.878-0.826-3.216 0.848-5.416 1.262-7.285-0.408-0.181-1.275 1.422-1.473-2.377 0.029-1.65 0.459-0.865 0.625-1.271-0.324-0.186-1.174-1.451-1.691-3.877 0.375-0.57 1.002 1.478 1.512 1.562-0.328-1.929-0.893-3.4-0.916-4.88-1.49-3.114-0.527 0.415-1.736-1.337-1.586-4.947 1.316-1.148 1.512-3.396 2.404 3.483 3.775 8.881 4.404 11.117-0.48-2.726-1.256-5.367-2.203-7.922 0.73 0.307-1.176-5.609 0.949-1.691-2.27-8.352-9.715-16.156-16.564-19.818 0.838 0.767 1.896 1.73 1.516 1.881-3.406-2.028-2.807-2.186-3.295-3.043-2.775-1.129-2.957 0.091-4.795 2e-3 -5.23-2.774-6.238-2.479-11.051-4.217l0.219 1.023c-3.465-1.154-4.037 0.438-7.782 4e-3 -0.228-0.178 1.2-0.644 2.375-0.815-3.35 0.442-3.193-0.66-6.471 0.122 0.808-0.567 1.662-0.942 2.524-1.424-2.732 0.166-6.522 1.59-5.352 0.295-4.456 1.988-12.37 4.779-16.811 8.943l-0.14-0.933c-2.035 2.443-8.874 7.296-9.419 10.46l-0.544 0.127c-1.059 1.793-1.744 3.825-2.584 5.67-1.385 2.36-2.03 0.908-1.833 1.278-2.724 5.523-4.077 10.164-5.246 13.97 0.833 1.245 0.02 7.495 0.335 12.497-1.368 24.704 17.338 48.69 37.785 54.228 2.997 1.072 7.454 1.031 11.245 1.141-4.473-1.279-5.051-0.678-9.408-2.197-3.143-1.48-3.832-3.17-6.058-5.102l0.881 1.557c-4.366-1.545-2.539-1.912-6.091-3.037l0.941-1.229c-1.415-0.107-3.748-2.385-4.386-3.646l-1.548 0.061c-1.86-2.295-2.851-3.949-2.779-5.23l-0.5 0.891c-0.567-0.973-6.843-8.607-3.587-6.83-0.605-0.553-1.409-0.9-2.281-2.484l0.663-0.758c-1.567-2.016-2.884-4.6-2.784-5.461 0.836 1.129 1.416 1.34 1.99 1.533-3.957-9.818-4.179-0.541-7.176-9.994l0.634-0.051c-0.486-0.732-0.781-1.527-1.172-2.307l0.276-2.75c-2.849-3.294-0.797-14.006-0.386-19.881 0.285-2.389 2.378-4.932 3.97-8.92l-0.97-0.167c1.854-3.234 10.586-12.988 14.63-12.486 1.959-2.461-0.389-0.01-0.772-0.629 4.303-4.453 5.656-3.146 8.56-3.947 3.132-1.859-2.688 0.725-1.203-0.709 5.414-1.383 3.837-3.144 10.9-3.846 0.745 0.424-1.729 0.655-2.35 1.205 4.511-2.207 14.275-1.705 20.617 1.225 7.359 3.439 15.627 13.605 15.953 23.17l0.371 0.1c-0.188 3.802 0.582 8.199-0.752 12.238l0.908-1.912"/> +<path d="m32.372 59.764-0.252 1.26c1.181 1.604 2.118 3.342 3.626 4.596-1.085-2.118-1.891-2.993-3.374-5.856"/> +<path d="m35.164 59.654c-0.625-0.691-0.995-1.523-1.409-2.352 0.396 1.457 1.207 2.709 1.962 3.982l-0.553-1.63"/> +<path d="m84.568 48.916-0.264 0.662c-0.484 3.438-1.529 6.84-3.131 9.994 1.77-3.328 2.915-6.968 3.395-10.656"/> +<path d="m45.527 0.537c1.215-0.445 2.987-0.244 4.276-0.537-1.68 0.141-3.352 0.225-5.003 0.438l0.727 0.099"/> +<path d="m2.872 23.219c0.28 2.592-1.95 3.598 0.494 1.889 1.31-2.951-0.512-0.815-0.494-1.889"/> +<path d="m0 35.215c0.563-1.728 0.665-2.766 0.88-3.766-1.556 1.989-0.716 2.413-0.88 3.766"/> +</g> +</g> +</g> +<g transform="translate(539.08 -59.156)"> +<circle cx="-648.7" cy="-122.27" r="1.9082" fill="#f0f0f0" opacity=".42096"/> +<g transform="matrix(.029308 0 0 .029308 -650 -123.79)"> +<g fill="#a80030"> +<path d="m51.986 57.297c-1.797 0.025 0.34 0.926 2.686 1.287 0.648-0.506 1.236-1.018 1.76-1.516-1.461 0.358-2.948 0.366-4.446 0.229"/> +<path d="m61.631 54.893c1.07-1.477 1.85-3.094 2.125-4.766-0.24 1.192-0.887 2.221-1.496 3.307-3.359 2.115-0.316-1.256 0-2.537-3.612 4.546-0.496 2.726-0.627 3.996"/> +<path d="m65.191 45.629c0.217-3.236-0.637-2.213-0.924-0.978 0.335 0.174 0.6 2.281 0.924 0.978"/> +<path d="m45.172 1.399c0.959 0.172 2.072 0.304 1.916 0.533 1.049-0.23 1.287-0.442-1.916-0.533"/> +<path d="m47.088 1.932-0.678 0.14 0.631-0.056 0.047-0.084"/> +<path d="m76.992 46.856c0.107 2.906-0.85 4.316-1.713 6.812l-1.553 0.776c-1.271 2.468 0.123 1.567-0.787 3.53-1.984 1.764-6.021 5.52-7.313 5.863-0.943-0.021 0.639-1.113 0.846-1.541-2.656 1.824-2.131 2.738-6.193 3.846l-0.119-0.264c-10.018 4.713-23.934-4.627-23.751-17.371-0.107 0.809-0.304 0.607-0.526 0.934-0.517-6.557 3.028-13.143 9.007-15.832 5.848-2.895 12.704-1.707 16.893 2.197-2.301-3.014-6.881-6.209-12.309-5.91-5.317 0.084-10.291 3.463-11.951 7.131-2.724 1.715-3.04 6.611-4.227 7.507-1.597 11.737 3.004 16.808 10.787 22.773 1.225 0.826 0.345 0.951 0.511 1.58-2.586-1.211-4.954-3.039-6.901-5.277 1.033 1.512 2.148 2.982 3.589 4.137-2.438-0.826-5.695-5.908-6.646-6.115 4.203 7.525 17.052 13.197 23.78 10.383-3.113 0.115-7.068 0.064-10.566-1.229-1.469-0.756-3.467-2.322-3.11-2.615 9.182 3.43 18.667 2.598 26.612-3.771 2.021-1.574 4.229-4.252 4.867-4.289-0.961 1.445 0.164 0.695-0.574 1.971 2.014-3.248-0.875-1.322 2.082-5.609l1.092 1.504c-0.406-2.696 3.348-5.97 2.967-10.234 0.861-1.304 0.961 1.403 0.047 4.403 1.268-3.328 0.334-3.863 0.66-6.609 0.352 0.923 0.814 1.904 1.051 2.878-0.826-3.216 0.848-5.416 1.262-7.285-0.408-0.181-1.275 1.422-1.473-2.377 0.029-1.65 0.459-0.865 0.625-1.271-0.324-0.186-1.174-1.451-1.691-3.877 0.375-0.57 1.002 1.478 1.512 1.562-0.328-1.929-0.893-3.4-0.916-4.88-1.49-3.114-0.527 0.415-1.736-1.337-1.586-4.947 1.316-1.148 1.512-3.396 2.404 3.483 3.775 8.881 4.404 11.117-0.48-2.726-1.256-5.367-2.203-7.922 0.73 0.307-1.176-5.609 0.949-1.691-2.27-8.352-9.715-16.156-16.564-19.818 0.838 0.767 1.896 1.73 1.516 1.881-3.406-2.028-2.807-2.186-3.295-3.043-2.775-1.129-2.957 0.091-4.795 2e-3 -5.23-2.774-6.238-2.479-11.051-4.217l0.219 1.023c-3.465-1.154-4.037 0.438-7.782 4e-3 -0.228-0.178 1.2-0.644 2.375-0.815-3.35 0.442-3.193-0.66-6.471 0.122 0.808-0.567 1.662-0.942 2.524-1.424-2.732 0.166-6.522 1.59-5.352 0.295-4.456 1.988-12.37 4.779-16.811 8.943l-0.14-0.933c-2.035 2.443-8.874 7.296-9.419 10.46l-0.544 0.127c-1.059 1.793-1.744 3.825-2.584 5.67-1.385 2.36-2.03 0.908-1.833 1.278-2.724 5.523-4.077 10.164-5.246 13.97 0.833 1.245 0.02 7.495 0.335 12.497-1.368 24.704 17.338 48.69 37.785 54.228 2.997 1.072 7.454 1.031 11.245 1.141-4.473-1.279-5.051-0.678-9.408-2.197-3.143-1.48-3.832-3.17-6.058-5.102l0.881 1.557c-4.366-1.545-2.539-1.912-6.091-3.037l0.941-1.229c-1.415-0.107-3.748-2.385-4.386-3.646l-1.548 0.061c-1.86-2.295-2.851-3.949-2.779-5.23l-0.5 0.891c-0.567-0.973-6.843-8.607-3.587-6.83-0.605-0.553-1.409-0.9-2.281-2.484l0.663-0.758c-1.567-2.016-2.884-4.6-2.784-5.461 0.836 1.129 1.416 1.34 1.99 1.533-3.957-9.818-4.179-0.541-7.176-9.994l0.634-0.051c-0.486-0.732-0.781-1.527-1.172-2.307l0.276-2.75c-2.849-3.294-0.797-14.006-0.386-19.881 0.285-2.389 2.378-4.932 3.97-8.92l-0.97-0.167c1.854-3.234 10.586-12.988 14.63-12.486 1.959-2.461-0.389-0.01-0.772-0.629 4.303-4.453 5.656-3.146 8.56-3.947 3.132-1.859-2.688 0.725-1.203-0.709 5.414-1.383 3.837-3.144 10.9-3.846 0.745 0.424-1.729 0.655-2.35 1.205 4.511-2.207 14.275-1.705 20.617 1.225 7.359 3.439 15.627 13.605 15.953 23.17l0.371 0.1c-0.188 3.802 0.582 8.199-0.752 12.238l0.908-1.912"/> +<path d="m32.372 59.764-0.252 1.26c1.181 1.604 2.118 3.342 3.626 4.596-1.085-2.118-1.891-2.993-3.374-5.856"/> +<path d="m35.164 59.654c-0.625-0.691-0.995-1.523-1.409-2.352 0.396 1.457 1.207 2.709 1.962 3.982l-0.553-1.63"/> +<path d="m84.568 48.916-0.264 0.662c-0.484 3.438-1.529 6.84-3.131 9.994 1.77-3.328 2.915-6.968 3.395-10.656"/> +<path d="m45.527 0.537c1.215-0.445 2.987-0.244 4.276-0.537-1.68 0.141-3.352 0.225-5.003 0.438l0.727 0.099"/> +<path d="m2.872 23.219c0.28 2.592-1.95 3.598 0.494 1.889 1.31-2.951-0.512-0.815-0.494-1.889"/> +<path d="m0 35.215c0.563-1.728 0.665-2.766 0.88-3.766-1.556 1.989-0.716 2.413-0.88 3.766"/> +</g> +</g> +</g> +<text x="-110.045" y="-179.886" fill="#000000" font-family="'A-OTF Shin Go Pro'" font-size="1.1577px" letter-spacing="0px" stroke-width=".043412" word-spacing="0px" style="line-height:1.25;text-decoration-color:#000000;text-decoration-line:none" xml:space="preserve"><tspan x="-110.045" y="-179.886" stroke-width=".043412">sid</tspan></text> +</g> +</svg> diff --git a/src/builder/b-deletion.c b/src/builder/b-deletion.c index ea0460a..97c4d9e 100644 --- a/src/builder/b-deletion.c +++ b/src/builder/b-deletion.c @@ -285,7 +285,8 @@ sai_deletion_worker(const char *home_dir_unused) return 1; } - chmod(info.iface, 0600); + if (chmod(info.iface, 0600) < 0) + lwsl_warn("%s: failed to chmod UDS %s: %s\n", __func__, info.iface, strerror(errno)); lwsl_notice("STUB-READY (sai-deletion)\n"); while (lws_service(cx, 0) >= 0) diff --git a/src/builder/b-task.c b/src/builder/b-task.c index 0f20f67..6ef1402 100644 --- a/src/builder/b-task.c +++ b/src/builder/b-task.c @@ -244,11 +244,15 @@ static void saib_start_artifact_upload(struct sai_nspawn *ns); int saib_set_ns_state(struct sai_nspawn *ns, int state) { - struct sai_plat_server *spm = ns ? ns->spm : NULL; + struct sai_plat_server *spm; - if (ns) - lwsl_notice("%s: ns=%p (%s) changing state from %d to %d\n", __func__, - (void*)ns, ns->task ? ns->task->uuid : "null", ns->state, state); + if (!ns) + return -1; + + spm = ns->spm; + + lwsl_notice("%s: ns=%p (%s) changing state from %d to %d\n", __func__, + (void*)ns, ns->task ? ns->task->uuid : "null", ns->state, state); ns->state = (uint8_t)state; ns->state_changed = 1; @@ -734,10 +738,8 @@ saib_sul_task_cancel(struct lws_sorted_usec_list *sul) lws_spawn_piped_kill_child_process(ns->op->lsp); if (!--ns->term_budget) { lwsl_err("%s: unable to kill child process -> destroying ns forcibly\n", __func__); - if (ns->op) { - ns->op->ns = NULL; - ns->op = NULL; - } + ns->op->ns = NULL; + ns->op = NULL; saib_task_destroy(ns); return; } diff --git a/src/server/s-comms.c b/src/server/s-comms.c index da556c0..f258c4c 100644 --- a/src/server/s-comms.c +++ b/src/server/s-comms.c @@ -130,7 +130,9 @@ s_callback_ws(struct lws *wsi, enum lws_callback_reasons reason, void *user, { const char *conf_dir = "/etc/sai/server"; - lws_pvo_get_str(in, "config-dir", &conf_dir); + if (lws_pvo_get_str(in, "config-dir", &conf_dir)) { + lwsl_info("%s: config-dir pvo not found, using default %s\n", __func__, conf_dir); + } sais_config_watchers(vhd, conf_dir); } diff --git a/src/web/CMakeLists.txt b/src/web/CMakeLists.txt index 4f37deb..f06cbfa 100644 --- a/src/web/CMakeLists.txt +++ b/src/web/CMakeLists.txt @@ -127,6 +127,7 @@ add_dependencies(${SUB} sai_git_hash) ../../assets/linux-fedora-32-riscv.svg ../../assets/linux-fedora-32.svg ../../assets/linux-fedora44.svg + ../../assets/linux-debian13.svg ../../assets/linux-gentoo.svg ../../assets/linux-ubuntu-1804.svg ../../assets/linux-ubuntu-2004.svg diff --git a/src/web/w-ws-browser.c b/src/web/w-ws-browser.c index 3a4919e..295ed0b 100644 --- a/src/web/w-ws-browser.c +++ b/src/web/w-ws-browser.c @@ -344,8 +344,9 @@ saiw_pss_schedule_taskinfo(struct pss *pss, const char *task_uuid, int logsub, i memset(&task_reply, 0, sizeof(task_reply)); lws_dll2_owner_clear(&task_reply.runs); lws_snprintf(qu, sizeof(qu), " and uuid='%s'", esc); - lws_struct_sq3_deserialize(pdb, qu, "run desc", lsm_schema_sq3_map_task, - &task_reply.runs, &runs_ac, 0, 100); + if (lws_struct_sq3_deserialize(pdb, qu, "run desc", lsm_schema_sq3_map_task, + &task_reply.runs, &runs_ac, 0, 100) < 0) + lwsl_err("%s: runs deserialize failed\n", __func__); sai_event_db_close(&pss->vhd->sqlite3_cache, &pdb); if (n < 0 || !o.head) @@ -1076,8 +1077,9 @@ saiw_browser_queue_overview(struct vhd *vhd, struct pss *pss) struct lwsac *ac_watchers = NULL; lws_dll2_owner_clear(&e->watcher_owner); lws_snprintf(wfilt, sizeof(wfilt), " and event_hash='%s'", e->uuid); - lws_struct_sq3_deserialize(vhd->pdb, wfilt, "created", - lsm_schema_sq3_map_watcher, &e->watcher_owner, &ac_watchers, 0, 0); + if (lws_struct_sq3_deserialize(vhd->pdb, wfilt, "created", + lsm_schema_sq3_map_watcher, &e->watcher_owner, &ac_watchers, 0, 0) < 0) + lwsl_err("%s: watchers deserialize failed\n", __func__); js = lws_struct_json_serialize_create( lsm_schema_json_map_event,
Page fetched 0s ago, creation time: 6ms (vhost etag hits: 0%, cache hits: 0%)