]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
send_list: stop executing mlmmj-send
authorBaptiste Daroussin <bapt@FreeBSD.org>
Thu, 9 Dec 2021 08:50:57 +0000 (09:50 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Thu, 9 Dec 2021 08:52:47 +0000 (09:52 +0100)
include/send_list.h
src/listcontrol.c
src/send_list.c

index a959b75c0f8c46e33ddd6f742e92604c7175184a..a19064414abfdc91177271f68456a6ac6e3394f1 100644 (file)
@@ -26,7 +26,6 @@
 
 #include "mlmmj.h"
 
-void send_list(struct mlmmj_list *list, const char *emailaddr,
-              const char *mlmmjsend);
+void send_list(struct mlmmj_list *list, const char *emailaddr);
 
 #endif
index 1f85adda2576d2556fdc55a67a5e0f4cb38240bd..639d52f9b4f7d2e6de6f9fbc6f26835ef49e4c3c 100644 (file)
@@ -895,7 +895,7 @@ permit:
                                " Ignoring mail");
                        return -1;
                } else {
-                       send_list(list, owners->strs[owner_idx], mlmmjsend);
+                       send_list(list, owners->strs[owner_idx]);
                }
                break;
 
index 085286ca207ebdacb9d4de7fb4e51dfd632a2212..58bf24ee3afe43ba7c9cc3b72f49a481408d3410 100644 (file)
 #include "strgen.h"
 #include "log_error.h"
 #include "chomp.h"
-#include "wrappers.h"
 #include "mygetline.h"
 #include "prepstdreply.h"
 #include "memory.h"
+#include "send_mails.h"
 
 
 struct subs_list_state;
@@ -159,14 +159,14 @@ static void print_subs(int fd, subs_list_state *s)
 }
 
 
-void send_list(struct mlmmj_list *list, const char *emailaddr,
-              const char *mlmmjsend)
+void send_list(struct mlmmj_list *list, const char *emailaddr)
 {
        text *txt;
        subs_list_state *normalsls, *digestsls, *nomailsls;
        char *queuefilename;
+       struct mail_headers mh;
        char *fromaddr;
-       int fd;
+       int fd, queuefd;;
 
        myasprintf(&fromaddr, "%s%sbounces-help@%s", list->name, list->delim, list->fqdn);
 
@@ -188,6 +188,7 @@ void send_list(struct mlmmj_list *list, const char *emailaddr,
        queuefilename = prepstdreply(txt, list, "$listowner$", emailaddr, NULL, false);
        MY_ASSERT(queuefilename);
        close_text(txt);
+       queuefd = openat(list->queuefd, queuefilename, O_RDONLY);
 
        /* DEPRECATED */
        /* Add lists manually if they weren't encountered in the list text */
@@ -214,13 +215,10 @@ void send_list(struct mlmmj_list *list, const char *emailaddr,
        finish_subs_list(digestsls);
        finish_subs_list(nomailsls);
 
-       execlp(mlmmjsend, mlmmjsend,
-                               "-l", "1",
-                               "-L", list->dir,
-                               "-T", emailaddr,
-                               "-F", fromaddr,
-                               "-m", queuefilename, (char *)NULL);
-
-       log_error(LOG_ARGS, "execlp() of '%s' failed", mlmmjsend);
+       memset(&mh, 0, sizeof(mh));
+       mh.to = emailaddr;
+       mh.from = fromaddr;
+       if (send_single_mail(list, &mh, queuefd, queuefilename))
+               exit(EXIT_SUCCESS);
        exit(EXIT_FAILURE);
 }