summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-01-31 21:15:16 +0100
committerdefault <nobody@localhost>2023-01-31 21:15:16 +0100
commit4e62b409af202be26ad2bde15fd0230634c9e88d (patch)
tree3506ec4606568e4ee0528e13dd17ca30250b1887
parent0233d732485a546db829696ad082d7941725f604 (diff)
Reworked enqueue_output().
-rw-r--r--data.c17
-rw-r--r--snac.h4
2 files changed, 8 insertions, 13 deletions
diff --git a/data.c b/data.c
index a426957..20bf9ed 100644
--- 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
index 0088afc..296ef97 100644
--- 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);