From: Baptiste Daroussin Date: Sat, 11 Feb 2023 21:38:43 +0000 (+0100) Subject: prepstdreply: convert to struct ml X-Git-Tag: RELEASE_1_4_0b1~165 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=db570ff8cc2586deffd7253146615bb483594841;p=thirdparty%2Fmlmmj.git prepstdreply: convert to struct ml --- diff --git a/include/prepstdreply.h b/include/prepstdreply.h index 5bda915d..cc90a235 100644 --- a/include/prepstdreply.h +++ b/include/prepstdreply.h @@ -26,6 +26,7 @@ #define PREPSTDREPLY_H #include +#include "mlmmj.h" struct text; typedef struct text text; @@ -62,11 +63,11 @@ void register_formatted(text *txt, const char *token, rewind_function rew, get_function get, void * state); char *get_processed_text_line(text *txt, int headers, const char *listdir, int listfd, int ctrlfd); -bool prepstdreply_to(text *txt, const char *listdir, - const char *from, const char *to, const char *replyto, int listfd, int ctrlfd, int tofd, const char *messageid); -char *prepstdreply(text *txt, const char *listdir, - const char *from, const char *to, const char *replyto, int listfd, int ctrlfd); +bool prepstdreply_to(text *txt, struct ml *ml, + const char *from, const char *to, const char *replyto, int tofd, const char *messageid); +char *prepstdreply(text *txt, struct ml *ml, + const char *from, const char *to, const char *replyto); void close_text(text *txt); -void register_default_unformatted(text *txt, const char *listdelim, const char *listaddr); +void register_default_unformatted(text *txt, struct ml *ml); #endif /* PREPSTDREPLY_H */ diff --git a/src/listcontrol.c b/src/listcontrol.c index 597de258..1d72a8c0 100644 --- a/src/listcontrol.c +++ b/src/listcontrol.c @@ -205,12 +205,12 @@ int listcontrol(strlist *fromemails, struct ml *ml, txt = open_text(ml->fd, "deny", "sub", "disabled", "digest", "sub-deny-digest"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", tll_front(*fromemails)); - queuefilename = prepstdreply(txt, ml->dir, + queuefilename = prepstdreply(txt, ml, "$listowner$", - tll_front(*fromemails), NULL, ml->fd, ml->ctrlfd); + tll_front(*fromemails), NULL); MY_ASSERT(queuefilename); close_text(txt); send_help(ml, queuefilename, @@ -241,13 +241,12 @@ int listcontrol(strlist *fromemails, struct ml *ml, txt = open_text(ml->fd, "deny", "sub", "disabled", "nomail", "sub-deny-nomail"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", tll_front(*fromemails)); - queuefilename = prepstdreply(txt, ml->dir, + queuefilename = prepstdreply(txt, ml, "$listowner$", - tll_front(*fromemails), NULL, ml->fd, - ml->ctrlfd); + tll_front(*fromemails), NULL); MY_ASSERT(queuefilename); close_text(txt); send_help(ml, queuefilename, @@ -278,12 +277,12 @@ int listcontrol(strlist *fromemails, struct ml *ml, txt = open_text(ml->fd, "deny", "sub", "disabled", "both", "sub-deny-digest"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", tll_front(*fromemails)); - queuefilename = prepstdreply(txt, ml->dir, + queuefilename = prepstdreply(txt, ml, "$listowner$", - tll_front(*fromemails), NULL, ml->fd,ml->ctrlfd); + tll_front(*fromemails), NULL); MY_ASSERT(queuefilename); close_text(txt); send_help(ml, queuefilename, @@ -599,9 +598,9 @@ permit: tll_front(*fromemails)); txt = open_text(ml->fd, "help", NULL, NULL, NULL, "listhelp"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); - queuefilename = prepstdreply(txt, ml->dir, - "$listowner$", tll_front(*fromemails), NULL, ml->fd,ml->ctrlfd); + register_default_unformatted(txt, ml); + queuefilename = prepstdreply(txt, ml, + "$listowner$", tll_front(*fromemails), NULL); MY_ASSERT(queuefilename); close_text(txt); send_help(ml, queuefilename, @@ -622,9 +621,9 @@ permit: tll_front(*fromemails)); txt = open_text(ml->fd, "faq", NULL, NULL, NULL, "listfaq"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); - queuefilename = prepstdreply(txt, ml->dir, - "$listowner$", tll_front(*fromemails), NULL, ml->fd,ml->ctrlfd); + register_default_unformatted(txt, ml); + queuefilename = prepstdreply(txt, ml, + "$listowner$", tll_front(*fromemails), NULL); MY_ASSERT(queuefilename); close_text(txt); send_help(ml, queuefilename, diff --git a/src/mlmmj-bounce.c b/src/mlmmj-bounce.c index 18b734b4..82443246 100644 --- a/src/mlmmj-bounce.c +++ b/src/mlmmj-bounce.c @@ -77,12 +77,12 @@ void do_probe(struct ml *ml, const char *mlmmjsend, const char *addr) txt = open_text(ml->fd, "probe", NULL, NULL, NULL, "bounce-probe"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "bouncenumbers", "%bouncenumbers%"); /* DEPRECATED */ fls = init_file_lines(addr, ':'); register_formatted(txt, "bouncenumbers", rewind_file_lines, get_file_line, fls); - queuefilename = prepstdreply(txt, ml->dir, "$listowner$", myaddr, NULL, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$listowner$", myaddr, NULL); MY_ASSERT(queuefilename); close_text(txt); diff --git a/src/mlmmj-process.c b/src/mlmmj-process.c index 4c5e3c7e..9947dab6 100644 --- a/src/mlmmj-process.c +++ b/src/mlmmj-process.c @@ -166,7 +166,7 @@ static void newmoderated(struct ml *ml, const char *mailfilename, txt = open_text(ml->fd, "moderate", "post", modreason_strs[modreason], NULL, "moderation"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subject", subject); register_unformatted(txt, "posteraddr", posteraddr); register_unformatted(txt, "moderateaddr", replyto); /* DEPRECATED */ @@ -176,8 +176,7 @@ static void newmoderated(struct ml *ml, const char *mailfilename, register_formatted(txt, "moderators", rewind_memory_lines, get_memory_line, mls); register_originalmail(txt, mailfilename); - queuefilename = prepstdreply(txt, ml->dir, "$listowner$", to, replyto, - ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$listowner$", to, replyto); MY_ASSERT(queuefilename); close_text(txt); @@ -191,15 +190,14 @@ static void newmoderated(struct ml *ml, const char *mailfilename, txt = open_text(ml->fd, "wait", "post", modreason_strs[modreason], NULL, "moderation-poster"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subject", subject); register_unformatted(txt, "posteraddr", posteraddr); register_unformatted(txt, "moderators", "%moderators%"); /* DEPRECATED */ register_formatted(txt, "moderators", rewind_memory_lines, get_memory_line, mls); register_originalmail(txt, mailfilename); - queuefilename = prepstdreply(txt, ml->dir, - "$listowner$", efromsender, NULL, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$listowner$", efromsender, NULL); MY_ASSERT(queuefilename); close_text(txt); @@ -707,13 +705,13 @@ int main(int argc, char **argv) txt = open_text(ml.fd, "deny", "post", "maxmailsize", NULL, "maxmailsize"); MY_ASSERT(txt); - register_default_unformatted(txt, ml.delim, ml.addr); + register_default_unformatted(txt, &ml); register_unformatted(txt, "subject", subject); register_unformatted(txt, "posteraddr", posteraddr); register_unformatted(txt, "maxmailsize", maxmailsizestr); register_originalmail(txt, donemailname); - queuefilename = prepstdreply(txt, ml.dir, - "$listowner$", posteraddr, NULL, ml.fd, ml.fd); + queuefilename = prepstdreply(txt, &ml, "$listowner$", + posteraddr, NULL); MY_ASSERT(queuefilename); close_text(txt); unlink(donemailname); @@ -764,12 +762,12 @@ int main(int argc, char **argv) txt = open_text(ml.fd, "deny", "post", "tocc", NULL, "notintocc"); MY_ASSERT(txt); - register_default_unformatted(txt, ml.delim, ml.addr); + register_default_unformatted(txt, &ml); register_unformatted(txt, "subject", subject); register_unformatted(txt, "posteraddr", posteraddr); register_originalmail(txt, donemailname); - queuefilename = prepstdreply(txt, ml.dir, - "$listowner$", posteraddr, NULL, ml.fd, ml.ctrlfd); + queuefilename = prepstdreply(txt, &ml, + "$listowner$", posteraddr, NULL); MY_ASSERT(queuefilename) close_text(txt); unlink(donemailname); @@ -802,12 +800,12 @@ int main(int argc, char **argv) txt = open_text(ml.fd, "deny", "post", "access", NULL, "access"); MY_ASSERT(txt); - register_default_unformatted(txt, ml.delim, ml.addr); + register_default_unformatted(txt, &ml); register_unformatted(txt, "subject", subject); register_unformatted(txt, "posteraddr", posteraddr); register_originalmail(txt, donemailname); - queuefilename = prepstdreply(txt, ml.dir, - "$listowner$", posteraddr, NULL, ml.fd, ml.ctrlfd); + queuefilename = prepstdreply(txt, &ml, + "$listowner$", posteraddr, NULL); MY_ASSERT(queuefilename) close_text(txt); unlink(donemailname); @@ -905,12 +903,12 @@ int main(int argc, char **argv) "modonlypost", NULL, NULL); } MY_ASSERT(txt); - register_default_unformatted(txt, ml.delim, ml.addr); + register_default_unformatted(txt, &ml); register_unformatted(txt, "subject", subject); register_unformatted(txt, "posteraddr", testaddr); register_originalmail(txt, donemailname); - queuefilename = prepstdreply(txt, ml.dir, - "$listowner$", testaddr, NULL, ml.fd, ml.ctrlfd); + queuefilename = prepstdreply(txt, &ml, + "$listowner$", testaddr, NULL); MY_ASSERT(queuefilename) close_text(txt); unlink(donemailname); diff --git a/src/mlmmj-sub.c b/src/mlmmj-sub.c index 2fadf55e..ec33094d 100644 --- a/src/mlmmj-sub.c +++ b/src/mlmmj-sub.c @@ -140,7 +140,7 @@ static void moderate_sub(struct ml *ml, const char *subaddr, subreason_strs[reasonsub], subtype_strs[typesub], "submod-moderator"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); register_unformatted(txt, "moderateaddr", replyto); /* DEPRECATED */ register_unformatted(txt, "permitaddr", replyto); @@ -148,8 +148,7 @@ static void moderate_sub(struct ml *ml, const char *subaddr, register_unformatted(txt, "moderators", "%gatekeepers%"); /* DEPRECATED */ register_formatted(txt, "gatekeepers", rewind_memory_lines, get_memory_line, mls); - queuefilename = prepstdreply(txt, ml->dir, "$listowner$", to, replyto, - ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$listowner$", to, replyto); MY_ASSERT(queuefilename); close_text(txt); @@ -194,13 +193,12 @@ static void moderate_sub(struct ml *ml, const char *subaddr, subreason_strs[reasonsub], subtype_strs[typesub], "submod-requester"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); register_unformatted(txt, "moderators", "%gatekeepers"); /* DEPRECATED */ register_formatted(txt, "gatekeepers", rewind_memory_lines, get_memory_line, mls); - queuefilename = prepstdreply(txt, ml->dir, - "$listowner$", subaddr, NULL, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$listowner$", subaddr, NULL); MY_ASSERT(queuefilename); close_text(txt); @@ -305,10 +303,9 @@ void confirm_sub(struct ml *ml, const char *subaddr, listtext); free(listtext); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); - queuefilename = prepstdreply(txt, ml->dir, - "$helpaddr$", subaddr, NULL, ml->fd, ml->fd); + queuefilename = prepstdreply(txt, ml, "$helpaddr$", subaddr, NULL); MY_ASSERT(queuefilename); close_text(txt); @@ -388,12 +385,11 @@ void generate_subconfirm(struct ml *ml, const char *subaddr, listtext); free(listtext); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); register_unformatted(txt, "confaddr", confirmaddr); /* DEPRECATED */ register_unformatted(txt, "confirmaddr", confirmaddr); - queuefilename = prepstdreply(txt, ml->dir, - "$helpaddr$", subaddr, confirmaddr, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$helpaddr$", subaddr, confirmaddr); MY_ASSERT(queuefilename); close_text(txt); @@ -435,10 +431,9 @@ void generate_subscribed(struct ml *ml, const char *subaddr, "deny", "sub", "subbed", subtype_strs[typesub], "sub-subscribed"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); - queuefilename = prepstdreply(txt, ml->dir, - "$helpaddr$", subaddr, NULL, ml->fd, ml->fd); + queuefilename = prepstdreply(txt, ml, "$helpaddr$", subaddr, NULL); MY_ASSERT(queuefilename); close_text(txt); diff --git a/src/mlmmj-unsub.c b/src/mlmmj-unsub.c index bfd1d01d..a7e4e9c2 100644 --- a/src/mlmmj-unsub.c +++ b/src/mlmmj-unsub.c @@ -72,10 +72,9 @@ void confirm_unsub(struct ml *ml, const char *subaddr, const char *mlmmjsend, listtext); free(listtext); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); - queuefilename = prepstdreply(txt, ml->dir, - "$helpaddr$", subaddr, NULL, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$helpaddr$", subaddr, NULL); MY_ASSERT(queuefilename); close_text(txt); @@ -151,12 +150,11 @@ void generate_unsubconfirm(struct ml *ml, const char *subaddr, listtext); free(listtext); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); register_unformatted(txt, "confaddr", confirmaddr); /* DEPRECATED */ register_unformatted(txt, "confirmaddr", confirmaddr); - queuefilename = prepstdreply(txt, ml->dir, - "$helpaddr$", subaddr, confirmaddr, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$helpaddr$", subaddr, confirmaddr); MY_ASSERT(queuefilename); close_text(txt); @@ -197,10 +195,9 @@ static void generate_notsubscribed(struct ml *ml, const char *subaddr, "deny", "unsub", "unsubbed", subtype_strs[typesub], "unsub-notsubscribed"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); - queuefilename = prepstdreply(txt, ml->dir, - "$helpaddr$", subaddr, NULL, ml->fd, ml->fd); + queuefilename = prepstdreply(txt, ml, "$helpaddr$", subaddr, NULL); MY_ASSERT(queuefilename); close_text(txt); diff --git a/src/prepstdreply.c b/src/prepstdreply.c index ba72ed7e..08bfb989 100644 --- a/src/prepstdreply.c +++ b/src/prepstdreply.c @@ -458,49 +458,45 @@ void register_unformatted(text *txt, const char *token, const char *replacement) } void -register_default_unformatted(text *txt, const char *listdelim, - const char *listaddr) +register_default_unformatted(text *txt, struct ml *ml) { - char *listname, *fqdn, *tmp; - - fqdn = genlistfqdn(listaddr); - listname = genlistname(listaddr); + char *tmp; register_unformatted(txt, "", "$"); - register_unformatted(txt, "listaddr", listaddr); - xasprintf(&tmp, "%s%s", listname, listdelim); + register_unformatted(txt, "listaddr", ml->addr); + xasprintf(&tmp, "%s%s", ml->name, ml->delim); register_unformatted(txt, "list+", tmp); - register_unformatted(txt, "list", listname); - register_unformatted(txt, "domain", fqdn); + register_unformatted(txt, "list", ml->name); + register_unformatted(txt, "domain", ml->fqdn); free(tmp); - xasprintf(&tmp, "%s%sowner@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "owner"); register_unformatted(txt, "listowner", tmp); free(tmp); - xasprintf(&tmp, "%s%shelp@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "help"); register_unformatted(txt, "helpaddr", tmp); free(tmp); - xasprintf(&tmp, "%s%sfaq@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "faq"); register_unformatted(txt, "faqaddr", tmp); free(tmp); - xasprintf(&tmp, "%s%sget-N@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "get-N"); register_unformatted(txt, "listgetN", tmp); free(tmp); - xasprintf(&tmp, "%s%sunsubscribe@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "unsubscribe"); register_unformatted(txt, "listunsubaddr", tmp); free(tmp); - xasprintf(&tmp, "%s%sunsubscribe-digest@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "unsubscribe-digest"); register_unformatted(txt, "digestunsubaddr", tmp); free(tmp); - xasprintf(&tmp, "%s%sunsubscribe-nomail@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "unsubscribe-nomail"); register_unformatted(txt, "nomailunsubaddr", tmp); free(tmp); - xasprintf(&tmp, "%s%ssubscribe@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "subscribe"); register_unformatted(txt, "listsubaddr", tmp); free(tmp); - xasprintf(&tmp, "%s%ssubscribe-digest@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "subscribe-digest"); register_unformatted(txt, "digestsubaddr", tmp); free(tmp); - xasprintf(&tmp, "%s%ssubscribe-nomail@%s", listname, listdelim, fqdn); + gen_addr(tmp, ml, "subscribe-nomail"); register_unformatted(txt, "nomailsubaddr", tmp); free(tmp); } @@ -1497,20 +1493,16 @@ void close_text(text *txt) } bool -prepstdreply_to(text *txt, const char *listdir, const char *from, const char *to, - const char *replyto, int listfd, int ctrlfd, int tofd, const char *msgid) +prepstdreply_to(text *txt, struct ml *ml, const char *from, const char *to, + const char *replyto, int tofd, const char *msgid) { bool ret = false; char *tmp, *line; int i; size_t len; - char *listaddr, *listdelim, *listfqdn, *str; + char *str; char *headers[10] = { NULL }; /* relies on NULL to flag end */ - listaddr = getlistaddr(ctrlfd); - listdelim = getlistdelim(ctrlfd); - listfqdn = genlistfqdn(listaddr); - for (i=0; i<6; i++) { tmp = xstrdup("randomN"); tmp[6] = '0' + i; @@ -1520,16 +1512,16 @@ prepstdreply_to(text *txt, const char *listdir, const char *from, const char *to free(str); } - tmp = substitute(from, listfd, ctrlfd, txt); + tmp = substitute(from, ml->fd, ml->ctrlfd, txt); xasprintf(&headers[0], "From: %s", tmp); free(tmp); - tmp = substitute(to, listfd, ctrlfd, txt); + tmp = substitute(to, ml->fd, ml->ctrlfd, txt); xasprintf(&headers[1], "To: %s", tmp); free(tmp); if (msgid) headers[2] = xstrdup(msgid); else - headers[2] = genmsgid(listfqdn); + headers[2] = genmsgid(ml->fqdn); chomp(headers[2]); if (msgid) headers[3] = xstrdup(msgid); @@ -1542,13 +1534,13 @@ prepstdreply_to(text *txt, const char *listdir, const char *from, const char *to headers[7] = xstrdup("Content-Transfer-Encoding: 8bit"); if(replyto) { - tmp = substitute(replyto, listfd, ctrlfd, txt); + tmp = substitute(replyto, ml->fd, ml->fd, txt); xasprintf(&headers[8], "Reply-To: %s", tmp); free(tmp); } for(;;) { - line = get_processed_text_line(txt, 1, listdir, listfd, ctrlfd); + line = get_processed_text_line(txt, 1, ml->dir, ml->fd, ml->fd); if (!line) { log_error(LOG_ARGS, "No body in listtext"); break; @@ -1626,7 +1618,7 @@ prepstdreply_to(text *txt, const char *listdir, const char *from, const char *to } if (line == NULL) { - line = get_processed_text_line(txt, 0, listdir, listfd, ctrlfd); + line = get_processed_text_line(txt, 0, ml->dir, ml->fd, ml->ctrlfd); } while(line) { if(dprintf(tofd, "%s\n", line) < 0) { @@ -1635,7 +1627,7 @@ prepstdreply_to(text *txt, const char *listdir, const char *from, const char *to goto freeandreturn; } free(line); - line = get_processed_text_line(txt, 0, listdir, listfd, ctrlfd); + line = get_processed_text_line(txt, 0, ml->dir, ml->fd, ml->ctrlfd); } fsync(tofd); @@ -1644,15 +1636,11 @@ prepstdreply_to(text *txt, const char *listdir, const char *from, const char *to ret = true; freeandreturn: - free(listaddr); - free(listdelim); - free(listfqdn); return ret; } -char *prepstdreply(text *txt, const char *listdir, - const char *from, const char *to, const char *replyto, int listfd, int ctrlfd) +char *prepstdreply(text *txt, struct ml *ml, const char *from, const char *to, const char *replyto) { int outfd; char *tmp, *retstr = NULL; @@ -1662,7 +1650,7 @@ char *prepstdreply(text *txt, const char *listdir, tmp = random_str(); if (retstr) free(retstr); - retstr = concatstr(3, listdir, "/queue/", tmp); + xasprintf(&retstr, "%s/queue/%s", ml->dir, tmp); free(tmp); outfd = open(retstr, O_RDWR|O_CREAT|O_EXCL, S_IRUSR|S_IWUSR); @@ -1675,7 +1663,7 @@ char *prepstdreply(text *txt, const char *listdir, free(txt); return NULL; } - if (!prepstdreply_to(txt, listdir, from, to, replyto, listfd, ctrlfd, outfd, NULL)) + if (!prepstdreply_to(txt, ml, from, to, replyto, outfd, NULL)) return (NULL); return (retstr); } diff --git a/src/send_digest.c b/src/send_digest.c index 98a39258..a9fee743 100644 --- a/src/send_digest.c +++ b/src/send_digest.c @@ -279,7 +279,7 @@ int send_digest(struct ml *ml, int firstindex, int lastindex, log_error(LOG_ARGS, "Could not open listtext 'digest'"); goto fallback_subject; } - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); snprintf(buf, sizeof(buf), "%d", firstindex); register_unformatted(txt, "digestfirst", buf); diff --git a/src/send_list.c b/src/send_list.c index e5e1d8c1..3f741e4f 100644 --- a/src/send_list.c +++ b/src/send_list.c @@ -153,7 +153,7 @@ void send_list(struct ml *ml, const char *emailaddr, const char *mlmmjsend) txt = open_text(ml->fd, "list", NULL, NULL, subtype_strs[SUB_ALL], "listsubs"); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_formatted(txt, "listsubs", rewind_subs_list, get_sub, normalsls); register_formatted(txt, "normalsubs", @@ -162,8 +162,7 @@ void send_list(struct ml *ml, const char *emailaddr, const char *mlmmjsend) rewind_subs_list, get_sub, digestsls); register_formatted(txt, "nomailsubs", rewind_subs_list, get_sub, nomailsls); - queuefilename = prepstdreply(txt, ml->dir, "$listowner$", emailaddr, - NULL, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$listowner$", emailaddr, NULL); MY_ASSERT(queuefilename); close_text(txt); diff --git a/src/subscriberfuncs.c b/src/subscriberfuncs.c index 987b21b6..e8c89c2c 100644 --- a/src/subscriberfuncs.c +++ b/src/subscriberfuncs.c @@ -198,11 +198,10 @@ void notify_sub(struct ml *ml, const char *subaddr, subreason_strs[reasonsub], subtype_strs[typesub], listtext); MY_ASSERT(txt); - register_default_unformatted(txt, ml->delim, ml->addr); + register_default_unformatted(txt, ml); register_unformatted(txt, "subaddr", subaddr); register_unformatted(txt, sub ? "newsub" : "oldsub", subaddr); /* DEPRECATED */ - queuefilename = prepstdreply(txt, ml->dir, - "$listowner$", "$listowner$", NULL, ml->fd, ml->ctrlfd); + queuefilename = prepstdreply(txt, ml, "$listowner$", "$listowner$", NULL); MY_ASSERT(queuefilename); close_text(txt); diff --git a/tests/mlmmj.c b/tests/mlmmj.c index 2f800386..062bf34d 100644 --- a/tests/mlmmj.c +++ b/tests/mlmmj.c @@ -2127,7 +2127,7 @@ ATF_TC_BODY(text_0, tc) ml_init(&ml); ml.dir = "list"; ATF_REQUIRE(ml_open(&ml, false)); - ATF_REQUIRE(prepstdreply_to(txt, ml.dir, "me@fqdn.org", "to@plop.org", NULL, ml.fd, ml.ctrlfd, tofd, "Message-Id: ")); + ATF_REQUIRE(prepstdreply_to(txt, &ml, "me@fqdn.org", "to@plop.org", NULL, tofd, "Message-Id: ")); close_text(txt); fsync(tofd); close(tofd); @@ -2175,8 +2175,8 @@ ATF_TC_BODY(text_1, tc) ml_init(&ml); ml.dir = "list"; ATF_REQUIRE(ml_open(&ml, false)); - register_default_unformatted(txt, ml.delim, ml.addr); - ATF_REQUIRE(prepstdreply_to(txt, ml.dir, "me@fqdn.org", "to@plop.org", "bla@me.org", ml.fd, ml.ctrlfd, tofd, "Message-Id: ")); + register_default_unformatted(txt, &ml); + ATF_REQUIRE(prepstdreply_to(txt, &ml, "me@fqdn.org", "to@plop.org", "bla@me.org", tofd, "Message-Id: ")); close_text(txt); fsync(tofd); close(tofd);