diff options
| author | 2022-09-23 23:09:09 +0200 | |
|---|---|---|
| committer | 2022-09-23 23:09:09 +0200 | |
| commit | c181c57f5611a477f11b8be375263ef9fed638dd (patch) | |
| tree | ec475f2cd6b91f1dbc103171f75d330c8d6a7ab4 /data.c | |
| parent | Fixed memleak. (diff) | |
| download | snac2-c181c57f5611a477f11b8be375263ef9fed638dd.tar.gz snac2-c181c57f5611a477f11b8be375263ef9fed638dd.tar.xz snac2-c181c57f5611a477f11b8be375263ef9fed638dd.zip | |
New function enqueue_input().
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 29 |
1 files changed, 28 insertions, 1 deletions
| @@ -709,6 +709,33 @@ int actor_get(snac *snac, char *actor, d_char **data) | |||
| 709 | } | 709 | } |
| 710 | 710 | ||
| 711 | 711 | ||
| 712 | void 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 | |||
| 712 | void enqueue_output(snac *snac, char *actor, char *msg, int retries) | 739 | void 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 | ||