]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
mlmmj-process: convert to use struct mlmmj_list
authorBaptiste Daroussin <bapt@FreeBSD.org>
Tue, 4 Jan 2022 20:42:03 +0000 (21:42 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Tue, 4 Jan 2022 20:42:03 +0000 (21:42 +0100)
src/mlmmj-process.c

index 7522c70a7aa5bcba3dd343eeceaee91bfc7ebd2a..f9af0d9cf45af25eb134d5b183118181066e431c 100644 (file)
@@ -86,18 +86,15 @@ static char *modreason_strs[] = {
 };
 
 
-static int is_moderator(const char *listdir, const char *address,
+static int is_moderator(struct mlmmj_list *list, const char *address,
                char **moderators) {
-       char *buf, *tmp, *moderatorsfilename;
+       char *buf, *tmp;
        int moderatorsfd, foundaddr = 0;
 
-       moderatorsfilename = concatstr(2, listdir, "/control/moderators");
-       if((moderatorsfd = open(moderatorsfilename, O_RDONLY)) < 0) {
-               log_error(LOG_ARGS, "Could not open '%s'", moderatorsfilename);
-               free(moderatorsfilename);
+       if((moderatorsfd = openat(list->fd, "control/moderators", O_RDONLY)) < 0) {
+               log_error(LOG_ARGS, "Could not open '%s/control/moderators'", list->dir);
                exit(EXIT_FAILURE);
        }
-       free(moderatorsfilename);
 
        while((buf = mygetline(moderatorsfd))) {
                chomp(buf);
@@ -144,7 +141,7 @@ static void newmoderated(struct mlmmj_list *list, const char *mailfilename,
        if(statctrl(list, "ifmodsendonlymodmoderate"))
                efromismod = efromsender;
 
-       if(!is_moderator(list->dir, efromismod, &moderators))
+       if(!is_moderator(list, efromismod, &moderators))
                efromismod = NULL;
 
        if(efromismod) mls = init_memory_lines(efromismod);
@@ -963,7 +960,7 @@ int main(int argc, char **argv)
                        foundaddr = (is_subbed(&list, posteraddr, 0) !=
                                        SUB_NONE);
                } else if (modonlypost) {
-                       foundaddr = is_moderator(list.dir, posteraddr, NULL);
+                       foundaddr = is_moderator(&list, posteraddr, NULL);
                }
                if(!foundaddr) {
                        if(modnonsubposts) {