]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Plug memory leak in mlmmj-send
authormmj <none@none>
Mon, 7 Jun 2004 17:55:56 +0000 (03:55 +1000)
committermmj <none@none>
Mon, 7 Jun 2004 17:55:56 +0000 (03:55 +1000)
src/Makefile.am
src/mlmmj-bounce.c
src/mlmmj-send.c

index a153205d9b9e05fc467c28e40b130e6f58d35858..7f3238b23856e5c9d467df99ad0856235d5513ec 100644 (file)
@@ -39,7 +39,7 @@ mlmmj_unsub_SOURCES = mlmmj-unsub.c writen.c mylocking.c \
                        
 mlmmj_bounce_SOURCES = mlmmj-bounce.c print-version.c log_error.c \
                       subscriberfuncs.c strgen.c random-int.c writen.c \
-                      prepstdreply.c mygetline.c
+                      prepstdreply.c mygetline.c openrandexclrw.c
 
 mlmmj_maintd_SOURCES = mlmmj-maintd.c print-version.c log_error.c mygetline.c \
                       strgen.c random-int.c chomp.c
index 1d59b7f7c3945eb619fd1da71637106e31914d91..b36ffe3bd60c4199060244bb7912f92d2c8b11cd 100644 (file)
 /* XXX this is not finished */
 void do_probe(const char *listdir, const char *mlmmjsend, const char *addr)
 {
-       char *myaddr, *from, *randomstr, *a, *line;
-       char *textfilename, *queuefilename;
+       char *myaddr, *from, *randomstr, *a, *line, *textfilename;
+       char *queuefilename, *listaddr, *listfqdn, *listname;
+       char *fromstr, *tostr, *subjectstr;
        int textfd, queuefd;
        ssize_t n;
 
        myaddr = strdup(addr);
        MY_ASSERT(myaddr);
 
-       from = concatstr(3, "LISTNAME+bounces-", myaddr, "-probe@DOMAIN.TLD");
+       listaddr = getlistaddr(listdir);
+       chomp(listaddr);
+
+       listname = genlistname(listaddr);
+       listfqdn = genlistfqdn(listaddr);
+
+       from = concatstr(3, listname, "+bounces-", myaddr, "-probe@", listfqdn);
 
        a = strchr(myaddr, '=');
        if (!a) {
@@ -47,15 +54,6 @@ void do_probe(const char *listdir, const char *mlmmjsend, const char *addr)
        }
        *a = '@';
 
-       textfilename = concatstr(2, listdir, "/text/probe");
-       if((textfd = open(textfilename, O_RDONLY)) < 0) {
-               log_error(LOG_ARGS, "Could not open '%s'", textfilename);
-               free(textfilename);
-               free(myaddr);
-               exit(EXIT_FAILURE);
-       }
-       free(textfilename);
-
        queuefilename = NULL;
        do {
                randomstr = random_str();
index 762bf127b4929679d519a7b93bee4b8edd44d55a..4a0b063995039fc562ba2805a6f50193bfdcde4b 100644 (file)
@@ -365,6 +365,7 @@ int send_mail_many(int sockfd, const char *from, const char *replyto,
 
                        return -1;
                }
+               free(addr);
        }
        return 0;
 }