summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
Diffstat (limited to 'data.c')
-rw-r--r--data.c37
1 files changed, 35 insertions, 2 deletions
diff --git a/data.c b/data.c
index 1adf4cd..96583aa 100644
--- a/data.c
+++ b/data.c
@@ -86,6 +86,10 @@ int srv_open(char *basedir, int auto_upgrade)
86 if (error != NULL) 86 if (error != NULL)
87 srv_log(error); 87 srv_log(error);
88 88
89 /* create the queue/ subdir, just in case */
90 xs *qdir = xs_fmt("%s/queue", srv_basedir);
91 mkdir(qdir, 0755);
92
89#ifdef __OpenBSD__ 93#ifdef __OpenBSD__
90 char *v = xs_dict_get(srv_config, "disable_openbsd_security"); 94 char *v = xs_dict_get(srv_config, "disable_openbsd_security");
91 95
@@ -1429,10 +1433,39 @@ xs_list *user_queue(snac *snac)
1429 time_t t2 = atol(bn + 1); 1433 time_t t2 = atol(bn + 1);
1430 1434
1431 if (t2 > t) 1435 if (t2 > t)
1432 snac_debug(snac, 2, xs_fmt("queue not yet time for %s [%ld]", v, t)); 1436 snac_debug(snac, 2, xs_fmt("user_queue not yet time for %s [%ld]", v, t));
1437 else {
1438 list = xs_list_append(list, v);
1439 snac_debug(snac, 2, xs_fmt("user_queue ready for %s", v));
1440 }
1441 }
1442
1443 return list;
1444}
1445
1446
1447xs_list *queue(void)
1448/* returns a list with filenames that can be dequeued */
1449{
1450 xs *spec = xs_fmt("%s/queue/" "*.json", srv_basedir);
1451 xs_list *list = xs_list_new();
1452 time_t t = time(NULL);
1453 xs_list *p;
1454 xs_val *v;
1455
1456 xs *fns = xs_glob(spec, 0, 0);
1457
1458 p = fns;
1459 while (xs_list_iter(&p, &v)) {
1460 /* get the retry time from the basename */
1461 char *bn = strrchr(v, '/');
1462 time_t t2 = atol(bn + 1);
1463
1464 if (t2 > t)
1465 srv_debug(2, xs_fmt("queue not yet time for %s [%ld]", v, t));
1433 else { 1466 else {
1434 list = xs_list_append(list, v); 1467 list = xs_list_append(list, v);
1435 snac_debug(snac, 2, xs_fmt("queue ready for %s", v)); 1468 srv_debug(2, xs_fmt("queue ready for %s", v));
1436 } 1469 }
1437 } 1470 }
1438 1471