commit 4e62b40
default
·
2023-01-31 20:15:16 +0000 UTC
parent 0233d73
Reworked enqueue_output().
M
data.c
+6,
-11
1@@ -1336,7 +1336,7 @@ static xs_dict *_new_qmsg(const char *type, const xs_dict *msg, int retries)
2 }
3
4
5-void enqueue_input(snac *snac, char *msg, char *req, int retries)
6+void enqueue_input(snac *snac, xs_dict *msg, xs_dict *req, int retries)
7 /* enqueues an input message */
8 {
9 xs *qmsg = _new_qmsg("input", msg, retries);
10@@ -1351,7 +1351,7 @@ void enqueue_input(snac *snac, char *msg, char *req, int retries)
11 }
12
13
14-void enqueue_output(snac *snac, char *msg, char *inbox, int retries)
15+void enqueue_output(snac *snac, xs_dict *msg, xs_str *inbox, int retries)
16 /* enqueues an output message to an inbox */
17 {
18 if (xs_startswith(inbox, snac->actor)) {
19@@ -1359,16 +1359,11 @@ void enqueue_output(snac *snac, char *msg, char *inbox, int retries)
20 return;
21 }
22
23- int qrt = xs_number_get(xs_dict_get(srv_config, "queue_retry_minutes"));
24- xs *ntid = tid(retries * 60 * qrt);
25- xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid);
26- xs *qmsg = xs_dict_new();
27- xs *rn = xs_number_new(retries);
28+ xs *qmsg = _new_qmsg("output", msg, retries);
29+ char *ntid = xs_dict_get(qmsg, "ntid");
30+ xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid);
31
32- qmsg = xs_dict_append(qmsg, "type", "output");
33- qmsg = xs_dict_append(qmsg, "inbox", inbox);
34- qmsg = xs_dict_append(qmsg, "message", msg);
35- qmsg = xs_dict_append(qmsg, "retries", rn);
36+ qmsg = xs_dict_append(qmsg, "inbox", inbox);
37
38 qmsg = _enqueue_put(fn, qmsg);
39
M
snac.h
+2,
-2
1@@ -121,8 +121,8 @@ d_char *history_get(snac *snac, char *id);
2 int history_del(snac *snac, char *id);
3 d_char *history_list(snac *snac);
4
5-void enqueue_input(snac *snac, char *msg, char *req, int retries);
6-void enqueue_output(snac *snac, char *msg, char *inbox, int retries);
7+void enqueue_input(snac *snac, xs_dict *msg, xs_dict *req, int retries);
8+void enqueue_output(snac *snac, xs_dict *msg, xs_str *inbox, int retries);
9 void enqueue_output_by_actor(snac *snac, char *msg, char *actor, int retries);
10 void enqueue_email(snac *snac, char *msg, int retries);
11 void enqueue_message(snac *snac, char *msg);