From: mmj Date: Sun, 20 Jun 2004 12:52:28 +0000 (+1000) Subject: Also remove .lastmsg files in mlmmj-maintd X-Git-Tag: RELEASE_1_0_0~80 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=86fda4a252af916d3c4b4acef1ebda4eab227f13;p=thirdparty%2Fmlmmj.git Also remove .lastmsg files in mlmmj-maintd --- diff --git a/src/mlmmj-bounce.c b/src/mlmmj-bounce.c index dd87679a..4b9224cc 100644 --- a/src/mlmmj-bounce.c +++ b/src/mlmmj-bounce.c @@ -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); diff --git a/src/mlmmj-maintd.c b/src/mlmmj-maintd.c index ba9c7778..5fa10785 100644 --- a/src/mlmmj-maintd.c +++ b/src/mlmmj-maintd.c @@ -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, diff --git a/src/openrandexclrw.c b/src/openrandexclrw.c index 0eb5719b..740cb2e3 100644 --- a/src/openrandexclrw.c +++ b/src/openrandexclrw.c @@ -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; }