summaryrefslogtreecommitdiff
path: root/sqmail-4.3.07/src/setmaillist.c
diff options
context:
space:
mode:
Diffstat (limited to 'sqmail-4.3.07/src/setmaillist.c')
-rw-r--r--sqmail-4.3.07/src/setmaillist.c93
1 files changed, 0 insertions, 93 deletions
diff --git a/sqmail-4.3.07/src/setmaillist.c b/sqmail-4.3.07/src/setmaillist.c
deleted file mode 100644
index f7ac89b..0000000
--- a/sqmail-4.3.07/src/setmaillist.c
+++ /dev/null
@@ -1,93 +0,0 @@
-#include <unistd.h>
-#include <sys/stat.h>
-#include "buffer.h"
-#include "logmsg.h"
-#include "stralloc.h"
-#include "getln.h"
-#include "open.h"
-#include "byte.h"
-
-#define WHO "setmaillist"
-
-int rename(const char *,const char *); // stdio.h
-
-void usage()
-{
- logmsg(WHO,100,USAGE,"setmaillist list.bin list.tmp");
-}
-
-stralloc line = {0};
-int match;
-
-char *fnbin;
-char *fntmp;
-int fd;
-char buf[1024];
-buffer bo;
-
-void writeerr()
-{
- logmsg(WHO,111,FATAL,B("unable to write to: ",fntmp));
-}
-
-static void out(char *s,int len)
-{
- if (buffer_put(&bo,s,len) == -1) writeerr();
-}
-
-int main(int argc,char **argv)
-{
- umask(033);
-
- fnbin = argv[1]; if (!fnbin) usage();
- fntmp = argv[2]; if (!fntmp) usage();
-
- fd = open_trunc(fntmp);
- if (fd == -1)
- logmsg(WHO,111,FATAL,B("unable to create: ",fntmp));
-
- buffer_init(&bo,write,fd,buf,sizeof(buf));
-
-
- do {
- if (getln(buffer_0small,&line,&match,'\n') == -1)
- logmsg(WHO,111,FATAL,"unable to read input: ");
-
- while (line.len) {
- if (line.s[line.len - 1] != '\n')
- if (line.s[line.len - 1] != ' ')
- if (line.s[line.len - 1] != '\t')
- break;
- --line.len;
- }
-
- if (byte_chr(line.s,line.len,'\0') != line.len)
- logmsg(WHO,111,FATAL,"NUL in input");
-
- if (line.len)
- if (line.s[0] != '#') {
- if ((line.s[0] == '.') || (line.s[0] == '/')) {
- out(line.s,line.len);
- out("",1);
- }
- else {
- if (line.len > 800)
- logmsg(WHO,111,FATAL,"addresses must be under 800 bytes");
- if (line.s[0] != '&')
- out("&",1);
- out(line.s,line.len);
- out("",1);
- }
- }
-
- } while (match);
-
- if (buffer_flush(&bo) == -1) writeerr();
- if (fsync(fd) == -1) writeerr();
- if (close(fd) == -1) writeerr(); /* NFS stupidity */
-
- if (rename(fntmp,fnbin) == -1)
- logmsg(WHO,111,FATAL,B("unable to move ",fntmp," to: ",fnbin));
-
- _exit(0);
-}