From: Baptiste Daroussin Date: Wed, 28 Dec 2022 12:06:54 +0000 (+0100) Subject: getlistdelim/getlistaddr: rewrite to make use of ctrlvalue() X-Git-Tag: RELEASE_1_4_0_a2~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3576c494bdf0a2cc378f4291fa97eafff212c62d;p=thirdparty%2Fmlmmj.git getlistdelim/getlistaddr: rewrite to make use of ctrlvalue() --- diff --git a/include/getlistaddr.h b/include/getlistaddr.h index 3d11ae79..d8752e89 100644 --- a/include/getlistaddr.h +++ b/include/getlistaddr.h @@ -24,7 +24,6 @@ #ifndef GETLISTADDR_H #define GETLISTADDR_H -char *getlistaddr(const char *listdir); -char *fgetlistaddr(int fd); +char *getlistaddr(int fd); #endif /* GETLISTADDR_H */ diff --git a/include/getlistdelim.h b/include/getlistdelim.h index d0c527cf..32365233 100644 --- a/include/getlistdelim.h +++ b/include/getlistdelim.h @@ -24,7 +24,6 @@ #ifndef GETLISTDELIM_H #define GETLISTDELIM_H -char *getlistdelim(const char *listdir); -char *fgetlistdelim(int ctrlfd); +char *getlistdelim(int ctrlfd); #endif /* GETLISTDELIM_H */ diff --git a/include/send_help.h b/include/send_help.h index 73612ba1..21c15870 100644 --- a/include/send_help.h +++ b/include/send_help.h @@ -25,6 +25,6 @@ #define SEND_HELP_H void send_help(const char *listdir, const char *queuefilename, - const char *emailaddr, const char *mlmmjsend); + const char *emailaddr, const char *mlmmjsend, int ctrlfd); #endif diff --git a/include/send_mail.h b/include/send_mail.h index 41d4c4b6..0e33ceea 100644 --- a/include/send_mail.h +++ b/include/send_mail.h @@ -40,5 +40,5 @@ struct mail { int initsmtp(int *sockfd, const char *relayhost, unsigned short port, const char *heloname); int endsmtp(int *sockfd); -int send_mail(int sockfd, struct mail *mail, int listfd, bool bounce); -int do_bouncemail(int listfd, const char *from); +int send_mail(int sockfd, struct mail *mail, int listfd, int ctrlfd, bool bounce); +int do_bouncemail(int listfd, int ctrlfd, const char *from); diff --git a/src/getlistaddr.c b/src/getlistaddr.c index 1d5bb9e3..29111f70 100644 --- a/src/getlistaddr.c +++ b/src/getlistaddr.c @@ -28,65 +28,22 @@ #include #include "getlistaddr.h" -#include "chomp.h" #include "log_error.h" -#include "mygetline.h" -#include "strgen.h" +#include "ctrlvalue.h" char * -fgetlistaddr(int fd) +getlistaddr(int fd) { - char *tmpstr; - int listnamefd; - - if ((listnamefd = openat(fd, "listaddress", O_RDONLY|O_CLOEXEC)) < 0) { - log_error(LOG_ARGS, "Could not open 'control/listaddress'"); - exit(EXIT_FAILURE); - } - tmpstr = mygetline(listnamefd); - if (tmpstr == NULL) { + char *listaddr = ctrlvalue(fd, "listaddress"); + if (listaddr == NULL) { log_error(LOG_ARGS, "FATAL. Could not get listaddress " "in control/listaddress"); exit(EXIT_FAILURE); } - if (strchr(tmpstr, '@') == NULL) { + if (strchr(listaddr, '@') == NULL) { log_error(LOG_ARGS, "FATAL. No @ sign in listaddress"); exit(EXIT_FAILURE); } - chomp(tmpstr); - close(listnamefd); - - return (tmpstr); -} - -char *getlistaddr(const char *listdir) -{ - char *tmpstr; - int listnamefd; - - tmpstr = concatstr(2, listdir, "/control/listaddress");; - if((listnamefd = open(tmpstr, O_RDONLY)) < 0) { - log_error(LOG_ARGS, "Could not open '%s'", tmpstr); - exit(EXIT_FAILURE); - } - free(tmpstr); - - tmpstr = mygetline(listnamefd); - - if(tmpstr == NULL){ - log_error(LOG_ARGS, "FATAL. Could not get listaddress " - "in %s/control/listaddress", listdir); - exit(EXIT_FAILURE); - } - - if(strchr(tmpstr, '@') == NULL) { - log_error(LOG_ARGS, "FATAL. No @ sign in listaddress"); - exit(EXIT_FAILURE); - } - - chomp(tmpstr); - close(listnamefd); - - return tmpstr; + return (listaddr); } diff --git a/src/getlistdelim.c b/src/getlistdelim.c index b6f05438..60453aa6 100644 --- a/src/getlistdelim.c +++ b/src/getlistdelim.c @@ -34,66 +34,15 @@ #include "log_error.h" #include "mygetline.h" #include "strgen.h" +#include "ctrlvalue.h" -char *fgetlistdelim(int ctrlfd) +char *getlistdelim(int ctrlfd) { char *delimstr; - int delimfd; - delimfd = openat(ctrlfd, "delimiter", O_RDONLY|O_CLOEXEC); - if (delimfd == -1) + delimstr = ctrlvalue(ctrlfd, "delimiter"); + if (delimstr == NULL) return (xstrdup(DEFAULT_RECIPDELIM)); - delimstr = mygetline(delimfd); - close(delimfd); - - if(NULL == delimstr){ - log_error(LOG_ARGS, "FATAL. Could not get list delimiter from " - "control/delimiter"); - exit(EXIT_FAILURE); - } - chomp(delimstr); - - if(0 == strlen(delimstr)){ - log_error(LOG_ARGS, "FATAL. Zero-length delimiter found from " - "control/delimiter"); - exit(EXIT_FAILURE); - } - return (delimstr); } - -char *getlistdelim(const char *listdir) -{ - char *delimfn, *delimstr; - int delimfd; - - delimfn = concatstr(2, listdir, "/control/delimiter"); - if(-1 != (delimfd = open(delimfn, O_RDONLY))){ - delimstr = mygetline(delimfd); - close(delimfd); - - if(NULL == delimstr){ - log_error(LOG_ARGS, - "FATAL. Could not get list delimiter from %s", - delimfn); - free(delimfn); - exit(EXIT_FAILURE); - } - - chomp(delimstr); - - if(0 == strlen(delimstr)){ - log_error(LOG_ARGS, - "FATAL. Zero-length delimiter found from %s", - delimfn); - free(delimfn); - exit(EXIT_FAILURE); - } - } else - delimstr = xstrdup(DEFAULT_RECIPDELIM); - - free(delimfn); - - return delimstr; -} diff --git a/src/listcontrol.c b/src/listcontrol.c index 7fea8c15..2d5db856 100644 --- a/src/listcontrol.c +++ b/src/listcontrol.c @@ -237,7 +237,7 @@ int listcontrol(struct email_container *fromemails, const char *listdir, MY_ASSERT(queuefilename); close_text(txt); send_help(listdir, queuefilename, - fromemails->emaillist[0], mlmmjsend); + fromemails->emaillist[0], mlmmjsend, ctrlfd); return -1; } log_oper(listdir, OPLOGFNAME, "mlmmj-sub: request for digest" @@ -279,7 +279,7 @@ int listcontrol(struct email_container *fromemails, const char *listdir, MY_ASSERT(queuefilename); close_text(txt); send_help(listdir, queuefilename, - fromemails->emaillist[0], mlmmjsend); + fromemails->emaillist[0], mlmmjsend, ctrlfd); return -1; } log_oper(listdir, OPLOGFNAME, "mlmmj-sub: request for nomail" @@ -321,7 +321,7 @@ int listcontrol(struct email_container *fromemails, const char *listdir, MY_ASSERT(queuefilename); close_text(txt); send_help(listdir, queuefilename, - fromemails->emaillist[0], mlmmjsend); + fromemails->emaillist[0], mlmmjsend, ctrlfd); return -1; } log_oper(listdir, OPLOGFNAME, "mlmmj-sub: request for both" @@ -699,7 +699,7 @@ permit: MY_ASSERT(queuefilename); close_text(txt); send_help(listdir, queuefilename, - fromemails->emaillist[0], mlmmjsend); + fromemails->emaillist[0], mlmmjsend, ctrlfd); break; /* listname+faq@domain.tld */ @@ -721,7 +721,7 @@ permit: MY_ASSERT(queuefilename); close_text(txt); send_help(listdir, queuefilename, - fromemails->emaillist[0], mlmmjsend); + fromemails->emaillist[0], mlmmjsend, ctrlfd); break; /* listname+get-INDEX@domain.tld */ diff --git a/src/mlmmj-bounce.c b/src/mlmmj-bounce.c index f3e3aae8..cdae8c17 100644 --- a/src/mlmmj-bounce.c +++ b/src/mlmmj-bounce.c @@ -58,13 +58,13 @@ void do_probe(const char *listdir, const char *mlmmjsend, const char *addr, int text *txt; file_lines_state *fls; char *myaddr, *from, *a, *queuefilename, *listaddr; - char *listfqdn, *listname, *probefile, *listdelim=getlistdelim(listdir); + char *listfqdn, *listname, *probefile, *listdelim = getlistdelim(ctrlfd); int fd; time_t t; myaddr = xstrdup(addr); - listaddr = getlistaddr(listdir); + listaddr = getlistaddr(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); diff --git a/src/mlmmj-process.c b/src/mlmmj-process.c index 12d3e242..dbdfde07 100644 --- a/src/mlmmj-process.c +++ b/src/mlmmj-process.c @@ -132,7 +132,7 @@ static void newmoderated(const char *listdir, const char *mailfilename, enum modreason modreason, int ctrlfd) { char *from, *listfqdn, *listname, *moderators = NULL; - char *replyto, *listaddr = getlistaddr(listdir), *listdelim; + char *replyto, *listaddr = getlistaddr(ctrlfd), *listdelim; text *txt; memory_lines_state *mls; char *queuefilename = NULL; @@ -157,7 +157,7 @@ static void newmoderated(const char *listdir, const char *mailfilename, free(moderators); - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); replyto = concatstr(6, listname, listdelim, "release-", mailbasename, "@", listfqdn); reject = concatstr(6, listname, listdelim, "reject-", mailbasename, @@ -614,7 +614,7 @@ int main(int argc, char **argv) recipextra = xstrdup(envstr); } else if((envstr = getenv("LOCAL_PART_SUFFIX")) != NULL) { /* exim */ - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); if (strncmp(envstr, listdelim, strlen(listdelim)) == 0) { recipextra = xstrdup(envstr + strlen(listdelim)); } else { @@ -629,7 +629,7 @@ int main(int argc, char **argv) addrtocc = !statctrl(ctrlfd, "tocc"); if (findaddress) { - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); } if(addrtocc || findaddress) { listaddrs = ctrlvalues(listdir, "listaddress"); @@ -793,7 +793,7 @@ int main(int argc, char **argv) return EXIT_SUCCESS; } - listaddr = getlistaddr(listdir); + listaddr = getlistaddr(ctrlfd); /* checking incoming mail's size */ maxmailsize = ctrlsizet(ctrlfd, "maxmailsize", 0); @@ -819,7 +819,7 @@ int main(int argc, char **argv) exit(EXIT_SUCCESS); } - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); fromaddr = concatstr(4, listname, listdelim, @@ -885,7 +885,7 @@ int main(int argc, char **argv) free(donemailname); exit(EXIT_SUCCESS); } - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); fromaddr = concatstr(4, listname, listdelim, "bounces-help@", @@ -930,7 +930,7 @@ int main(int argc, char **argv) free(donemailname); exit(EXIT_SUCCESS); } - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); fromaddr = concatstr(4, listname, listdelim, @@ -1037,7 +1037,7 @@ int main(int argc, char **argv) free(donemailname); exit(EXIT_SUCCESS); } - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); fromaddr = concatstr(4, listname, listdelim, diff --git a/src/mlmmj-send.c b/src/mlmmj-send.c index 6796adb6..12d49c4d 100644 --- a/src/mlmmj-send.c +++ b/src/mlmmj-send.c @@ -389,7 +389,7 @@ int send_mail_many_list(int sockfd, struct mail *mail, struct strlist *addrs, archivefilename, ctrlfd); mail->from = bounceaddr; } - res = send_mail(sockfd, mail, listfd, bounceaddr != NULL); + res = send_mail(sockfd, mail, listfd, ctrlfd, bounceaddr != NULL); free(bounceaddr); if(res && listaddr && archivefilename) { /* we failed, so save the addresses and bail */ @@ -575,7 +575,7 @@ int main(int argc, char **argv) stl.count = 0; if(listdir && listctrl != '5') - listaddr = fgetlistaddr(listfd); + listaddr = getlistaddr(ctrlfd); /* initialize file with mail to send */ @@ -625,7 +625,7 @@ int main(int argc, char **argv) } if(listdir) - listdelim = fgetlistdelim(listfd); + listdelim = getlistdelim(ctrlfd); switch(listctrl) { case '1': /* A single mail is to be sent, do nothing */ @@ -693,7 +693,7 @@ int main(int argc, char **argv) case '6': initsmtp(&sockfd, relayhost, smtpport, smtphelo); mail.from = bounceaddr; - if(send_mail(sockfd, &mail,listfd, false)) { + if(send_mail(sockfd, &mail,listfd, ctrlfd, false)) { close(sockfd); sockfd = -1; /* error, so keep it in the queue */ @@ -782,7 +782,7 @@ int main(int argc, char **argv) case '5': /* bounceprobe - handle relayhost local users bouncing*/ initsmtp(&sockfd, relayhost, smtpport, smtphelo); mail.from = bounceaddr; - if(send_mail(sockfd, &mail, listfd, false)) { + if(send_mail(sockfd, &mail, listfd, ctrlfd, false)) { close(sockfd); sockfd = -1; /* error, so remove the probefile */ @@ -820,7 +820,7 @@ int main(int argc, char **argv) exit(EXIT_FAILURE); } - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); xasprintf(&verpfrom, "%s%sbounces-%d@%s", listname, listdelim, diff --git a/src/mlmmj-sub.c b/src/mlmmj-sub.c index c791efc8..67974429 100644 --- a/src/mlmmj-sub.c +++ b/src/mlmmj-sub.c @@ -682,7 +682,7 @@ int main(int argc, char **argv) address = lowercase(address); /* get the list address */ - listaddr = fgetlistaddr(ctrlfd); + listaddr = getlistaddr(ctrlfd); if(strncasecmp(listaddr, address, strlen(listaddr)) == 0) errx(EXIT_FAILURE, "Cannot subscribe the list address to the list"); @@ -723,7 +723,7 @@ int main(int argc, char **argv) } } - listdelim = fgetlistdelim(ctrlfd); + listdelim = getlistdelim(ctrlfd); if(subbed == SUB_NONE && subconfirm) generate_subconfirm(listdir, listaddr, listdelim, diff --git a/src/mlmmj-unsub.c b/src/mlmmj-unsub.c index f68a015d..472f5d43 100644 --- a/src/mlmmj-unsub.c +++ b/src/mlmmj-unsub.c @@ -390,8 +390,8 @@ int main(int argc, char **argv) /* Make the address lowercase */ address = lowercase(address); - listaddr = fgetlistaddr(ctrlfd); - listdelim = fgetlistdelim(ctrlfd); + listaddr = getlistaddr(ctrlfd); + listdelim = getlistdelim(ctrlfd); if(changeuid) { uid = getuid(); diff --git a/src/prepstdreply.c b/src/prepstdreply.c index 9931d2fe..d082c664 100644 --- a/src/prepstdreply.c +++ b/src/prepstdreply.c @@ -1592,8 +1592,8 @@ char *prepstdreply(text *txt, const char *listdir, char *str; char *headers[10] = { NULL }; /* relies on NULL to flag end */ - listaddr = getlistaddr(listdir); - listdelim = getlistdelim(listdir); + listaddr = getlistaddr(ctrlfd); + listdelim = getlistdelim(ctrlfd); listfqdn = genlistfqdn(listaddr); do { diff --git a/src/send_digest.c b/src/send_digest.c index 9362bf03..a44a6030 100644 --- a/src/send_digest.c +++ b/src/send_digest.c @@ -277,10 +277,10 @@ int send_digest(const char *listdir, int firstindex, int lastindex, boundary = random_str(); - listaddr = getlistaddr(listdir); + listaddr = getlistaddr(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); - listdelim = getlistdelim(listdir); + listdelim = getlistdelim(ctrlfd); txt = open_text_file(listdir, "digest"); if (txt == NULL) { diff --git a/src/send_help.c b/src/send_help.c index 01d9a7ec..62697682 100644 --- a/src/send_help.c +++ b/src/send_help.c @@ -43,13 +43,13 @@ #include "utils.h" void send_help(const char *listdir, const char *queuefilename, - const char *emailaddr, const char *mlmmjsend) + const char *emailaddr, const char *mlmmjsend, int ctrlfd) { char *listaddr, *listdelim, *listname, *listfqdn; char *fromaddr; - listaddr = getlistaddr(listdir); - listdelim = getlistdelim(listdir); + listaddr = getlistaddr(ctrlfd); + listdelim = getlistdelim(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); diff --git a/src/send_list.c b/src/send_list.c index aacd554c..8a40440a 100644 --- a/src/send_list.c +++ b/src/send_list.c @@ -161,8 +161,8 @@ void send_list(const char *listdir, const char *emailaddr, char *fromaddr, *subdir, *nomaildir, *digestdir; int fd; - listaddr = getlistaddr(listdir); - listdelim = getlistdelim(listdir); + listaddr = getlistaddr(ctrlfd); + listdelim = getlistdelim(ctrlfd); listname = genlistname(listaddr); listfqdn = genlistfqdn(listaddr); diff --git a/src/send_mail.c b/src/send_mail.c index 18e282d1..2571286e 100644 --- a/src/send_mail.c +++ b/src/send_mail.c @@ -181,12 +181,12 @@ endsmtp(int *sockfd) return retval; } -int do_bouncemail(int listfd, const char *from) +int do_bouncemail(int listfd, int ctrlfd, const char *from) { /* expected format for the from: "something+anything--anything@anything" */ char *tofree; char *myfrom = xstrdup(from); - char *listdelim = fgetlistdelim(listfd); + char *listdelim = getlistdelim(ctrlfd); char *addr, *num, *c; tofree = myfrom; @@ -225,7 +225,7 @@ int do_bouncemail(int listfd, const char *from) } int -send_mail(int sockfd, struct mail *mail, int listfd, bool bounce) +send_mail(int sockfd, struct mail *mail, int listfd, int ctrlfd, bool bounce) { int retval = 0; char *reply, *reply2; @@ -292,7 +292,7 @@ send_mail(int sockfd, struct mail *mail, int listfd, bool bounce) if(bounce && ((reply[0] == '4') || (reply[0] == '5')) && (reply[1] == '5')) { free(reply); - return do_bouncemail(listfd, mail->from); + return do_bouncemail(listfd, ctrlfd, mail->from); } else { log_error(LOG_ARGS, "Error in RCPT TO. Reply = [%s]", reply); diff --git a/tests/mlmmj.c b/tests/mlmmj.c index e4eba158..f2973526 100644 --- a/tests/mlmmj.c +++ b/tests/mlmmj.c @@ -1201,35 +1201,37 @@ ATF_TC_BODY(do_bouncemail, tc) { init_ml(true); int lfd = open("list", O_DIRECTORY); + int ctrlfd = openat(lfd, "control", O_DIRECTORY); /* malformed */ - ATF_REQUIRE_EQ(do_bouncemail(lfd, "plop"), 0); + ATF_REQUIRE_EQ(do_bouncemail(lfd, ctrlfd, "plop"), 0); /* malformed, missing number */ - ATF_REQUIRE_EQ(do_bouncemail(lfd, "plop@meh"), 0); + ATF_REQUIRE_EQ(do_bouncemail(lfd, ctrlfd, "plop@meh"), 0); /* malformed, empty numbr */ - ATF_REQUIRE_EQ(do_bouncemail(lfd, "plop-@meh"), 0); + ATF_REQUIRE_EQ(do_bouncemail(lfd, ctrlfd, "plop-@meh"), 0); /* no listdelim */ - ATF_REQUIRE_EQ(do_bouncemail(lfd, "plop-0@meh"), 0); + ATF_REQUIRE_EQ(do_bouncemail(lfd, ctrlfd, "plop-0@meh"), 0); /* listdelim before */ - ATF_REQUIRE_EQ(do_bouncemail(lfd, "plop+-0@meh"), 0); + ATF_REQUIRE_EQ(do_bouncemail(lfd, ctrlfd, "plop+-0@meh"), 0); /* listdelim before */ - ATF_REQUIRE_EQ(do_bouncemail(lfd, "plop-0+@meh"), 0); + ATF_REQUIRE_EQ(do_bouncemail(lfd, ctrlfd, "plop-0+@meh"), 0); /* 2 ticks */ - ATF_REQUIRE_EQ(do_bouncemail(lfd, "plop+--bla@meh"), 1); + ATF_REQUIRE_EQ(do_bouncemail(lfd, ctrlfd, "plop+--bla@meh"), 1); close(lfd); + close(ctrlfd); } ATF_TC_BODY(send_mail_0, tc) { int smtppipe[2]; struct mail mail = {}; - ATF_REQUIRE_EQ(send_mail(-1, NULL, -1, false), EBADF); + ATF_REQUIRE_EQ(send_mail(-1, NULL, -1, -1, false), EBADF); ATF_REQUIRE(pipe(smtppipe) >= 0); pid_t p = atf_utils_fork(); if (p == 0) { @@ -1242,27 +1244,27 @@ ATF_TC_BODY(send_mail_0, tc) exit(0); } close(smtppipe[0]); - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.to = "plop@meh"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.from = "test@meh"; mail.inmem = true; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.hdrs = "plop"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.hdrs = NULL; mail.body = "body"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.inmem = false; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.size = 1; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.size = 0; mail.map = "bla"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); mail.inmem = true; mail.hdrs = "headers"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), MLMMJ_FROM); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), MLMMJ_FROM); atf_utils_wait(p, 0, "MAIL FROM:\r\nRSET\r\n", ""); } @@ -1287,7 +1289,7 @@ ATF_TC_BODY(send_mail_1, tc) mail.inmem = true; mail.hdrs = "headers"; mail.body = "body"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), MLMMJ_RCPTTO); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), MLMMJ_RCPTTO); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\n", ""); } @@ -1315,7 +1317,7 @@ ATF_TC_BODY(send_mail_2, tc) mail.inmem = true; mail.hdrs = "headers"; mail.body = "body"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), MLMMJ_DATA); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), MLMMJ_DATA); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\nDATA\r\n", ""); } @@ -1343,7 +1345,7 @@ ATF_TC_BODY(send_mail_3, tc) mail.inmem = true; mail.hdrs = "headers"; mail.body = "body"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), MLMMJ_DATA); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), MLMMJ_DATA); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\nDATA\r\n", ""); } @@ -1371,7 +1373,7 @@ ATF_TC_BODY(send_mail_4, tc) mail.inmem = true; mail.hdrs = "headers"; mail.body = "body"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), MLMMJ_DATA); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), MLMMJ_DATA); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\nDATA\r\n", ""); } @@ -1408,7 +1410,7 @@ ATF_TC_BODY(send_mail_5, tc) mail.inmem = true; mail.hdrs = "headers\n"; mail.body = "body\n"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), MLMMJ_DOT); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), MLMMJ_DOT); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\nDATA\r\nheaders\nbody\n\r\n.\r\n", ""); } @@ -1448,7 +1450,7 @@ ATF_TC_BODY(send_mail_6, tc) mail.hdrs = "headers\n"; mail.body = "body\n"; mail.replyto= "yeah@meh"; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\nDATA\r\nReply-To: yeah@meh\r\nheaders\nbody\n\r\n.\r\n", ""); } @@ -1488,7 +1490,7 @@ ATF_TC_BODY(send_mail_7, tc) mail.hdrs = "headers\n"; mail.body = "body\n"; mail.addtohdr = true; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\nDATA\r\nheaders\nTo: plop@meh\r\nbody\n\r\n.\r\n", ""); } @@ -1536,7 +1538,7 @@ ATF_TC_BODY(send_mail_8, tc) mail.size = st.st_size; mail.map = mmap(0, mail.size, PROT_READ, MAP_SHARED, fd, 0); mail.addtohdr = true; - ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, false), 0); + ATF_REQUIRE_EQ(send_mail(smtppipe[1], &mail, -1, -1, false), 0); atf_utils_wait(p, 0, "MAIL FROM:\r\nRCPT TO:\r\nDATA\r\nheaders\r\nTo: plop@meh\r\n\r\nbody\r\n\r\n.\r\n", ""); }