snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit 4e62b409af202be26ad2bde15fd0230634c9e88d
parent 0233d732485a546db829696ad082d7941725f604
Author: default <nobody@localhost>
Date:   Tue, 31 Jan 2023 21:15:16 +0100

Reworked enqueue_output().

Diffstat:
Mdata.c | 17++++++-----------
Msnac.h | 4++--
2 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/data.c b/data.c @@ -1336,7 +1336,7 @@ static xs_dict *_new_qmsg(const char *type, const xs_dict *msg, int retries) } -void enqueue_input(snac *snac, char *msg, char *req, int retries) +void enqueue_input(snac *snac, xs_dict *msg, xs_dict *req, int retries) /* enqueues an input message */ { xs *qmsg = _new_qmsg("input", msg, retries); @@ -1351,7 +1351,7 @@ void enqueue_input(snac *snac, char *msg, char *req, int retries) } -void enqueue_output(snac *snac, char *msg, char *inbox, int retries) +void enqueue_output(snac *snac, xs_dict *msg, xs_str *inbox, int retries) /* enqueues an output message to an inbox */ { if (xs_startswith(inbox, snac->actor)) { @@ -1359,16 +1359,11 @@ void enqueue_output(snac *snac, char *msg, char *inbox, int retries) return; } - int qrt = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes")); - xs *ntid = tid(retries * 60 * qrt); - xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid); - xs *qmsg = xs_dict_new(); - xs *rn = xs_number_new(retries); + xs *qmsg = _new_qmsg("output", msg, retries); + char *ntid = xs_dict_get(qmsg, "ntid"); + xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid); - qmsg = xs_dict_append(qmsg, "type", "output"); - qmsg = xs_dict_append(qmsg, "inbox", inbox); - qmsg = xs_dict_append(qmsg, "message", msg); - qmsg = xs_dict_append(qmsg, "retries", rn); + qmsg = xs_dict_append(qmsg, "inbox", inbox); qmsg = _enqueue_put(fn, qmsg); diff --git a/snac.h b/snac.h @@ -121,8 +121,8 @@ d_char *history_get(snac *snac, char *id); int history_del(snac *snac, char *id); d_char *history_list(snac *snac); -void enqueue_input(snac *snac, char *msg, char *req, int retries); -void enqueue_output(snac *snac, char *msg, char *inbox, int retries); +void enqueue_input(snac *snac, xs_dict *msg, xs_dict *req, int retries); +void enqueue_output(snac *snac, xs_dict *msg, xs_str *inbox, int retries); void enqueue_output_by_actor(snac *snac, char *msg, char *actor, int retries); void enqueue_email(snac *snac, char *msg, int retries); void enqueue_message(snac *snac, char *msg);