]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Also remove .lastmsg files in mlmmj-maintd
authormmj <none@none>
Sun, 20 Jun 2004 12:52:28 +0000 (22:52 +1000)
committermmj <none@none>
Sun, 20 Jun 2004 12:52:28 +0000 (22:52 +1000)
src/mlmmj-bounce.c
src/mlmmj-maintd.c
src/openrandexclrw.c

index dd87679a96acd769794a7a596bcf41ab95c50d77..4b9224cc089a2340cdf367192128d27e287fcb93 100644 (file)
@@ -327,8 +327,11 @@ int main(int argc, char **argv)
        writen(fd, buf, strlen(buf));
        close(fd);
 
-       if(mailname)
-               unlink(mailname);
+       if(mailname) {
+               savename = concatstr(2, bfilename, ".lastmsg");
+               rename(mailname, savename);
+               free(savename);
+       }
                
        myfree(bfilename);
 
index ba9c7778d9790455373604a2569a3165be54615f..5fa107859df381f8bf3696e4798a624d563da0c8 100644 (file)
@@ -447,6 +447,9 @@ int clean_nolongerbouncing(const char *listdir)
                                unlink(filename);
                                *s = '\0';
                                unlink(filename);
+                               s = concatstr(2, filename, ".lastmsg");
+                               unlink(s);
+                               myfree(s);
                        }
                }
                myfree(filename);
@@ -461,7 +464,7 @@ int probe_bouncers(const char *listdir, const char *mlmmjbounce)
 {
        DIR *bouncedir;
        char *dirname = concatstr(2, listdir, "/bounce/");
-       char *probefile;
+       char *probefile, *s;
        struct dirent *dp;
        struct stat st;
        pid_t pid, childpid;
@@ -493,7 +496,11 @@ int probe_bouncers(const char *listdir, const char *mlmmjbounce)
                
                if(strstr(dp->d_name, "-probe"))
                        continue;
-               
+
+               s = strrchr(dp->d_name, ".");
+               if(s && (strcmp(s, ".lastmsg") == 0))
+                       continue;
+                       
                probefile = concatstr(2, dp->d_name, "-probe");
                
                /* Skip files which already have a probe out */
@@ -568,6 +575,14 @@ int unsub_bouncers(const char *listdir, const char *mlmmjunsub)
                
                if(strstr(dp->d_name, "-probe"))
                        continue;
+
+               a = strrchr(dp->d_name, ".");
+               if(a && (strcmp(a, ".lastmsg") == 0)) {
+                       free(a);
+                       continue;
+               }
+
+               free(a);
                
                probefile = concatstr(2, dp->d_name, "-probe");
                
@@ -638,6 +653,9 @@ int unsub_bouncers(const char *listdir, const char *mlmmjunsub)
                                pid = waitpid(childpid, &status, 0);
                        while(pid == -1 && errno == EINTR);
                        unlink(dp->d_name);
+                       a = concatstr(2, dp->d_name, ".lastmsg");
+                       unlink(a);
+                       free(a);
                } else {
                        execlp(mlmmjunsub, mlmmjunsub,
                                        "-L", listdir,
index 0eb5719b0c5c034d0ea21441c5d95e2f09d9737b..740cb2e3e4021580e3174cb4a61df519b88cca02 100644 (file)
@@ -32,7 +32,8 @@
 #include "wrappers.h"
 #include "memory.h"
 
-int openrandexclrw(const char *dir, const char *prefix, mode_t mode)
+int openrandexclrw(const char *dir, const char *prefix, mode_t mode,
+                  char *name)
 {
        int fd;
        char *filename = NULL, *randomstr;
@@ -48,7 +49,7 @@ int openrandexclrw(const char *dir, const char *prefix, mode_t mode)
 
        } while ((fd < 0) && (errno == EEXIST));
 
-       /* TODO error checking, bail out */
-
+       name = filename;
+       
        return fd;
 }