From: Baptiste Daroussin Date: Wed, 27 Oct 2021 15:03:09 +0000 (+0200) Subject: mlmmj-process: use a bit more the struct mlmmj_list X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=29ef89360d380b6aff9bdfe9828091782667eec0;p=thirdparty%2Fmlmmj.git mlmmj-process: use a bit more the struct mlmmj_list --- diff --git a/src/mlmmj-process.c b/src/mlmmj-process.c index 7d5a6518..a8ea06ba 100644 --- a/src/mlmmj-process.c +++ b/src/mlmmj-process.c @@ -126,13 +126,13 @@ static int is_moderator(const char *listdir, const char *address, } -static void newmoderated(const char *listdir, const char *mailfilename, +static void newmoderated(struct mlmmj_list *list, const char *mailfilename, const char *mlmmjsend, const char *efromsender, const char *subject, const char *posteraddr, enum modreason modreason) { - char *from, *listfqdn, *listname, *moderators = NULL; - char *replyto, *listaddr = getlistaddr(listdir), *listdelim; + char *from, *moderators = NULL; + char *replyto; text *txt; memory_lines_state *mls; char *queuefilename = NULL; @@ -144,13 +144,10 @@ static void newmoderated(const char *listdir, const char *mailfilename, printf("mailfilename = [%s], mailbasename = [%s]\n", mailfilename, mailbasename); #endif - listfqdn = genlistfqdn(listaddr); - listname = genlistname(listaddr); - - if(statctrl(listdir, "ifmodsendonlymodmoderate")) + if(statctrl(list->listdir, "ifmodsendonlymodmoderate")) efromismod = efromsender; - if(!is_moderator(listdir, efromismod, &moderators)) + if(!is_moderator(list->listdir, efromismod, &moderators)) efromismod = NULL; if(efromismod) mls = init_memory_lines(efromismod); @@ -158,20 +155,15 @@ static void newmoderated(const char *listdir, const char *mailfilename, myfree(moderators); - listdelim = getlistdelim(listdir); - replyto = concatstr(6, listname, listdelim, "release-", mailbasename, - "@", listfqdn); - reject = concatstr(6, listname, listdelim, "reject-", mailbasename, - "@", listfqdn); - - from = concatstr(4, listname, listdelim, "owner@", listfqdn); - to = concatstr(3, listname, "-moderators@", listfqdn); /* FIXME JFA: Should this be converted? Why, why not? */ + replyto = concatstr(6, list->listname, list->listdelim, "release-", mailbasename, + "@", list->listfqdn); + reject = concatstr(6, list->listname, list->listdelim, "reject-", mailbasename, + "@", list->listfqdn); - myfree(listdelim); - myfree(listname); - myfree(listfqdn); + from = concatstr(4, list->listname, list->listdelim, "owner@", list->listfqdn); + to = concatstr(3, list->listname, "-moderators@", list->listfqdn); /* FIXME JFA: Should this be converted? Why, why not? */ - txt = open_text(listdir, "moderate", "post", + txt = open_text(list->listdir, "moderate", "post", modreason_strs[modreason], NULL, "moderation"); MY_ASSERT(txt); register_unformatted(txt, "subject", subject); @@ -183,13 +175,13 @@ static void newmoderated(const char *listdir, const char *mailfilename, register_formatted(txt, "moderators", rewind_memory_lines, get_memory_line, mls); register_originalmail(txt, mailfilename); - queuefilename = prepstdreply(txt, listdir, "$listowner$", to, replyto); + queuefilename = prepstdreply(txt, list->listdir, "$listowner$", to, replyto); MY_ASSERT(queuefilename); close_text(txt); /* we might need to exec more than one mlmmj-send */ - notifymod = !efromismod && statctrl(listdir,"notifymod"); + notifymod = !efromismod && statctrl(list->listdir,"notifymod"); if (notifymod) { childpid = fork(); @@ -210,14 +202,14 @@ static void newmoderated(const char *listdir, const char *mailfilename, if(efromismod) execlp(mlmmjsend, mlmmjsend, "-l", "1", - "-L", listdir, + "-L", list->listdir, "-F", from, "-m", queuefilename, "-T", efromsender, (char *)NULL); else execlp(mlmmjsend, mlmmjsend, "-l", "2", - "-L", listdir, + "-L", list->listdir, "-F", from, "-m", queuefilename, (char *)NULL); log_error(LOG_ARGS, "execlp() of '%s' failed", mlmmjsend); @@ -228,7 +220,7 @@ static void newmoderated(const char *listdir, const char *mailfilename, /* send mail to poster that the list is moderated */ - txt = open_text(listdir, "wait", "post", + txt = open_text(list->listdir, "wait", "post", modreason_strs[modreason], NULL, "moderation-poster"); MY_ASSERT(txt); register_unformatted(txt, "subject", subject); @@ -237,7 +229,7 @@ static void newmoderated(const char *listdir, const char *mailfilename, register_formatted(txt, "moderators", rewind_memory_lines, get_memory_line, mls); register_originalmail(txt, mailfilename); - queuefilename = prepstdreply(txt, listdir, + queuefilename = prepstdreply(txt, list->listdir, "$listowner$", efromsender, NULL); MY_ASSERT(queuefilename); close_text(txt); @@ -246,7 +238,7 @@ static void newmoderated(const char *listdir, const char *mailfilename, execlp(mlmmjsend, mlmmjsend, "-l", "1", - "-L", listdir, + "-L", list->listdir, "-F", from, "-m", queuefilename, "-T", efromsender, (char *)NULL); @@ -1052,7 +1044,7 @@ int main(int argc, char **argv) fsync(omitfd); close(omitfd); } - newmoderated(list.listdir, mqueuename, + newmoderated(&list, mqueuename, mlmmjsend, efrom, subject, posteraddr, modreason); return EXIT_SUCCESS;