diff --git a/src/builder/b-artifacts.c b/src/builder/b-artifacts.c
index c040ade..99613a3 100644
--- a/src/builder/b-artifacts.c
+++ b/src/builder/b-artifacts.c
@@ -77,6 +77,7 @@ saib_artifact_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf,
if (ap->fd == -1) {
lwsl_info("%s: completion with fd = -1\n", __func__);
lws_ss_start_timeout(ap->ss, 5 * LWS_US_PER_SEC);
+ return LWSSSSRET_OK;
}
n = read(ap->fd, buf,
diff --git a/src/server/s-central.c b/src/server/s-central.c
index b04355e..5af8b8d 100644
--- a/src/server/s-central.c
+++ b/src/server/s-central.c
@@ -54,7 +54,7 @@ sais_central_clean_abandoned(struct vhd *vhd)
if (!sc->refcount &&
(now - sc->idle_since) > (60 * LWS_USEC_PER_SEC)) {
- lwsl_notice("%s: delayed db pool clean %s\n", __func__,
+ lwsl_info("%s: delayed db pool clean %s\n", __func__,
sc->uuid);
lws_struct_sq3_close(&sc->pdb);
lws_dll2_remove(&sc->list);
diff --git a/src/web/w-comms.c b/src/web/w-comms.c
index 49f6d38..21da346 100644
--- a/src/web/w-comms.c
+++ b/src/web/w-comms.c
@@ -1028,31 +1028,40 @@ clean_spa:
pss->specific_task[0] = '\0';
pss->specific_ref[0] = '\0';
- if (lws_get_urlarg_by_name(wsi, "h", pss->specific_ref + 9,
- sizeof(pss->specific_ref) - 9)) {
- memcpy(pss->specific_ref, "refs/heads/", 11);
- pss->specificity = SAIM_SPECIFIC_H;
- } else
- if (lws_get_urlarg_by_name(wsi, "id", (char *)buf,
- sizeof(buf))) {
- lws_strncpy(pss->specific_ref, (const char *)buf + 3,
- sizeof(pss->specific_ref));
- pss->specificity = SAIM_SPECIFIC_ID;
- } else {
- if (lws_get_urlarg_by_name(wsi, "task",
- (char *)pss->specific_task,
- sizeof(pss->specific_task))) {
+
+ {
+ int r = 0;
+ char tbuf[96];
+ while (1) {
+ if (lws_hdr_copy_fragment(wsi, tbuf, sizeof(tbuf), WSI_TOKEN_HTTP_URI_ARGS, r++) <0)
+ break;
+ lwsl_info("%s: '%s'\n", __func__, tbuf);
+ if (!strncmp(tbuf, "task=", 5)) {
+ lws_strncpy(pss->specific_task, tbuf + 5, sizeof(pss->specific_task));
pss->specificity = SAIM_SPECIFIC_TASK;
- } else {
+ }
+ if (!strncmp(tbuf, "h=", 2)) {
+ memcpy(pss->specific_ref, "refs/heads/", 11);
+ lws_strncpy(pss->specific_ref + 11, tbuf + 2, sizeof(pss->specific_ref) - 11);
pss->specificity = SAIM_SPECIFIC_H;
- lws_strncpy(pss->specific_ref,
- "refs/heads/master",
- sizeof(pss->specific_ref));
+ }
+ if (!strncmp(tbuf, "id=", 3)) {
+ memcpy(pss->specific_ref, "refs/heads/", 11);
+ lws_strncpy(pss->specific_ref + 11, tbuf + 3, sizeof(pss->specific_ref) - 11);
+ pss->specificity = SAIM_SPECIFIC_ID;
}
}
+ }
+
+ if (!pss->specificity) {
+ pss->specificity = SAIM_SPECIFIC_H;
+ lws_strncpy(pss->specific_ref,
+ "refs/heads/master",
+ sizeof(pss->specific_ref));
+ }
- //lwsl_notice("%s: spec %d, '%s'\n", __func__,
- // pss->specificity, pss->specific_ref);
+ lwsl_info("%s: spec %d, ref '%s', task '%s' \n", __func__,
+ pss->specificity, pss->specific_ref, pss->specific_task);
break;
}
diff --git a/src/web/w-ws-browser.c b/src/web/w-ws-browser.c
index 560412a..1ec58ba 100644
--- a/src/web/w-ws-browser.c
+++ b/src/web/w-ws-browser.c
@@ -302,7 +302,7 @@ saiw_pss_schedule_taskinfo(struct pss *pss, const char *task_uuid, int logsub)
m += lws_snprintf(qu + m, sizeof(qu) - m, " and repo_name='%s'", esc2);
}
- if (pss->specific_ref[0]) {
+ if (pss->specific_ref[0] && pss->specificity != SAIM_SPECIFIC_TASK) {
lws_sql_purify(esc2, pss->specific_ref, sizeof(esc2));
if (pss->specific_ref[0] == 'r') {
/* check event ref against, eg, ref/heads/xxx */
@@ -320,7 +320,7 @@ saiw_pss_schedule_taskinfo(struct pss *pss, const char *task_uuid, int logsub)
lsm_schema_sq3_map_event, &o,
&sch->query_ac, 0, 1);
if (n < 0 || !o.head) {
- lwsl_notice("%s: no result\n", __func__);
+ // lwsl_notice("%s: no result\n", __func__);
goto bail;
}