summaryrefslogtreecommitdiff
path: root/data.c
diff options
context:
space:
mode:
authordefault <nobody@localhost>2023-03-02 09:15:40 +0100
committerdefault <nobody@localhost>2023-03-02 09:15:40 +0100
commit29b12498dd511b00586446b98f11ccb1d44088eb (patch)
tree3b7178a7770a4d99712b6b69f9848d7b71d51085 /data.c
parente74ae0f58971e12422068f85e35fc7928206e9f9 (diff)
Simplified is_msg_public().
Diffstat (limited to 'data.c')
-rw-r--r--data.c31
1 files changed, 26 insertions, 5 deletions
diff --git a/data.c b/data.c
index 1b41944..4403bf4 100644
--- a/data.c
+++ b/data.c
@@ -1375,7 +1375,7 @@ void inbox_add(const char *inbox)
xs *fn = xs_fmt("%s/inbox/%s", srv_basedir, md5);
FILE *f;
- if ((f = fopen(fn, "w")) != NULL) {
+ if (strlen(inbox) < 256 && (f = fopen(fn, "w")) != NULL) {
pthread_mutex_lock(&data_mutex);
fprintf(f, "%s\n", inbox);
@@ -1397,15 +1397,36 @@ void inbox_add_by_actor(const xs_dict *actor)
}
-#if 0
xs_list *inbox_list(void)
/* returns the collected inboxes as a list */
{
- xs_list *l = xs_list_new();
+ xs_list *ibl = xs_list_new();
+ xs *spec = xs_fmt("%s/inbox/" "*", srv_basedir);
+ xs *files = xs_glob(spec, 0, 0);
+ xs_list *p = files;
+ xs_val *v;
+
+ while (xs_list_iter(&p, &v)) {
+ FILE *f;
+
+ if ((f = fopen(v, "r")) != NULL) {
+ char line[256];
+
+ if (fgets(line, sizeof(line), f)) {
+ fclose(f);
+
+ int i = strlen(line);
+
+ if (i) {
+ line[i - 1] = '\0';
+ ibl = xs_list_append(ibl, line);
+ }
+ }
+ }
+ }
- return l;
+ return ibl;
}
-#endif
/** the queue **/