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);
unlink(filename);
*s = '\0';
unlink(filename);
+ s = concatstr(2, filename, ".lastmsg");
+ unlink(s);
+ myfree(s);
}
}
myfree(filename);
{
DIR *bouncedir;
char *dirname = concatstr(2, listdir, "/bounce/");
- char *probefile;
+ char *probefile, *s;
struct dirent *dp;
struct stat st;
pid_t pid, childpid;
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 */
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");
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,
#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;
} while ((fd < 0) && (errno == EEXIST));
- /* TODO error checking, bail out */
-
+ name = filename;
+
return fd;
}