From: Baptiste Daroussin Date: Tue, 4 Jan 2022 20:42:03 +0000 (+0100) Subject: mlmmj-process: convert to use struct mlmmj_list X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02c15a4915ee670c6daee38e1597828cb28c50a6;p=thirdparty%2Fmlmmj.git mlmmj-process: convert to use struct mlmmj_list --- diff --git a/src/mlmmj-process.c b/src/mlmmj-process.c index 7522c70a..f9af0d9c 100644 --- a/src/mlmmj-process.c +++ b/src/mlmmj-process.c @@ -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) {