diff options
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 37 |
1 files changed, 35 insertions, 2 deletions
| @@ -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 | |||
| 1447 | xs_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 | ||