summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authorGravatar default2022-09-23 23:09:09 +0200
committerGravatar default2022-09-23 23:09:09 +0200
commitc181c57f5611a477f11b8be375263ef9fed638dd (patch)
treeec475f2cd6b91f1dbc103171f75d330c8d6a7ab4 /data.c
parentFixed memleak. (diff)
downloadsnac2-c181c57f5611a477f11b8be375263ef9fed638dd.tar.gz
snac2-c181c57f5611a477f11b8be375263ef9fed638dd.tar.xz
snac2-c181c57f5611a477f11b8be375263ef9fed638dd.zip
New function enqueue_input().
Diffstat (limited to 'data.c')
-rw-r--r--data.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/data.c b/data.c
index 3f5d5e0..67b1802 100644
--- a/data.c
+++ b/data.c
@@ -709,6 +709,33 @@ int actor_get(snac *snac, char *actor, d_char **data)
709} 709}
710 710
711 711
712void enqueue_input(snac *snac, char *msg)
713/* enqueues an input message */
714{
715 xs *ntid = tid(0);
716 xs *fn = xs_fmt("%s/queue/%s.json", snac->basedir, ntid);
717 xs *tfn = xs_str_cat(fn, ".tmp");
718 FILE *f;
719
720 if ((f = fopen(tfn, "w")) != NULL) {
721 xs *qmsg = xs_dict_new();
722 xs *j;
723
724 qmsg = xs_dict_append(qmsg, "type", "input");
725 qmsg = xs_dict_append(qmsg, "object", msg);
726
727 j = xs_json_dumps_pp(qmsg, 4);
728
729 fwrite(j, strlen(j), 1, f);
730 fclose(f);
731
732 rename(tfn, fn);
733
734 snac_debug(snac, 2, xs_fmt("enqueue_input %s", fn));
735 }
736}
737
738
712void enqueue_output(snac *snac, char *actor, char *msg, int retries) 739void enqueue_output(snac *snac, char *actor, char *msg, int retries)
713/* enqueues an output message for an actor */ 740/* enqueues an output message for an actor */
714{ 741{
@@ -740,7 +767,7 @@ void enqueue_output(snac *snac, char *actor, char *msg, int retries)
740 767
741 rename(tfn, fn); 768 rename(tfn, fn);
742 769
743 snac_debug(snac, 2, xs_fmt("enqueue %s %s %d", actor, fn, retries)); 770 snac_debug(snac, 2, xs_fmt("enqueue_output %s %s %d", actor, fn, retries));
744 } 771 }
745} 772}
746 773