# HG changeset patch # User mmj # Date 1083069478 -36000 # Node ID afd7356e8f2e6b0e28023a56d8f01a565c7c3732 # Parent 03395ba179a90514cbde6009b2d6bd69c15eddbf mlmmj-bounce now checks if it's a subscribed address diff -r 03395ba179a9 -r afd7356e8f2e src/Makefile.am --- a/src/Makefile.am Tue Apr 27 20:12:40 2004 +1000 +++ b/src/Makefile.am Tue Apr 27 22:37:58 2004 +1000 @@ -37,5 +37,5 @@ getlistaddr.c chomp.c subscriberfuncs.c random-int.c \ strgen.c print-version.c log_error.c mygetline.c -mlmmj_bounce_SOURCES = mlmmj-bounce.c print-version.c log_error.c \ +mlmmj_bounce_SOURCES = mlmmj-bounce.c print-version.c log_error.c subscriberfuncs.c \ strgen.c random-int.c writen.c diff -r 03395ba179a9 -r afd7356e8f2e src/Makefile.in --- a/src/Makefile.in Tue Apr 27 20:12:40 2004 +1000 +++ b/src/Makefile.in Tue Apr 27 22:37:58 2004 +1000 @@ -17,7 +17,7 @@ # -SOURCES = $(mlmmj_process_SOURCES) $(mlmmj_recieve_SOURCES) $(mlmmj_send_SOURCES) $(mlmmj_sub_SOURCES) $(mlmmj_unsub_SOURCES) +SOURCES = $(mlmmj_bounce_SOURCES) $(mlmmj_process_SOURCES) $(mlmmj_recieve_SOURCES) $(mlmmj_send_SOURCES) $(mlmmj_sub_SOURCES) $(mlmmj_unsub_SOURCES) srcdir = @srcdir@ top_srcdir = @top_srcdir@ @@ -40,7 +40,8 @@ PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = mlmmj-send$(EXEEXT) mlmmj-recieve$(EXEEXT) \ - mlmmj-process$(EXEEXT) mlmmj-sub$(EXEEXT) mlmmj-unsub$(EXEEXT) + mlmmj-process$(EXEEXT) mlmmj-sub$(EXEEXT) mlmmj-unsub$(EXEEXT) \ + mlmmj-bounce$(EXEEXT) subdir = src DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 @@ -53,6 +54,12 @@ am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" binPROGRAMS_INSTALL = $(INSTALL_PROGRAM) PROGRAMS = $(bin_PROGRAMS) +am_mlmmj_bounce_OBJECTS = mlmmj-bounce.$(OBJEXT) \ + print-version.$(OBJEXT) log_error.$(OBJEXT) \ + subscriberfuncs.$(OBJEXT) strgen.$(OBJEXT) \ + random-int.$(OBJEXT) writen.$(OBJEXT) +mlmmj_bounce_OBJECTS = $(am_mlmmj_bounce_OBJECTS) +mlmmj_bounce_LDADD = $(LDADD) am_mlmmj_process_OBJECTS = mlmmj-process.$(OBJEXT) writen.$(OBJEXT) \ find_email_adr.$(OBJEXT) incindexfile.$(OBJEXT) itoa.$(OBJEXT) \ getlistaddr.$(OBJEXT) chomp.$(OBJEXT) mylocking.$(OBJEXT) \ @@ -108,6 +115,7 @@ @AMDEP_TRUE@ ./$(DEPDIR)/listcontrol.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/log_error.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/mail-functions.Po \ +@AMDEP_TRUE@ ./$(DEPDIR)/mlmmj-bounce.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/mlmmj-process.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/mlmmj-recieve.Po \ @AMDEP_TRUE@ ./$(DEPDIR)/mlmmj-send.Po ./$(DEPDIR)/mlmmj-sub.Po \ @@ -122,12 +130,12 @@ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ -SOURCES = $(mlmmj_process_SOURCES) $(mlmmj_recieve_SOURCES) \ - $(mlmmj_send_SOURCES) $(mlmmj_sub_SOURCES) \ - $(mlmmj_unsub_SOURCES) -DIST_SOURCES = $(mlmmj_process_SOURCES) $(mlmmj_recieve_SOURCES) \ - $(mlmmj_send_SOURCES) $(mlmmj_sub_SOURCES) \ - $(mlmmj_unsub_SOURCES) +SOURCES = $(mlmmj_bounce_SOURCES) $(mlmmj_process_SOURCES) \ + $(mlmmj_recieve_SOURCES) $(mlmmj_send_SOURCES) \ + $(mlmmj_sub_SOURCES) $(mlmmj_unsub_SOURCES) +DIST_SOURCES = $(mlmmj_bounce_SOURCES) $(mlmmj_process_SOURCES) \ + $(mlmmj_recieve_SOURCES) $(mlmmj_send_SOURCES) \ + $(mlmmj_sub_SOURCES) $(mlmmj_unsub_SOURCES) ETAGS = etags CTAGS = ctags DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) @@ -229,6 +237,9 @@ getlistaddr.c chomp.c subscriberfuncs.c random-int.c \ strgen.c print-version.c log_error.c mygetline.c +mlmmj_bounce_SOURCES = mlmmj-bounce.c print-version.c log_error.c subscriberfuncs.c \ + strgen.c random-int.c writen.c + all: all-am .SUFFIXES: @@ -285,6 +296,9 @@ clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) +mlmmj-bounce$(EXEEXT): $(mlmmj_bounce_OBJECTS) $(mlmmj_bounce_DEPENDENCIES) + @rm -f mlmmj-bounce$(EXEEXT) + $(LINK) $(mlmmj_bounce_LDFLAGS) $(mlmmj_bounce_OBJECTS) $(mlmmj_bounce_LDADD) $(LIBS) mlmmj-process$(EXEEXT): $(mlmmj_process_OBJECTS) $(mlmmj_process_DEPENDENCIES) @rm -f mlmmj-process$(EXEEXT) $(LINK) $(mlmmj_process_LDFLAGS) $(mlmmj_process_OBJECTS) $(mlmmj_process_LDADD) $(LIBS) @@ -339,6 +353,7 @@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/listcontrol.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log_error.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mail-functions.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlmmj-bounce.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlmmj-process.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlmmj-recieve.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mlmmj-send.Po@am__quote@ diff -r 03395ba179a9 -r afd7356e8f2e src/mlmmj-bounce.c --- a/src/mlmmj-bounce.c Tue Apr 27 20:12:40 2004 +1000 +++ b/src/mlmmj-bounce.c Tue Apr 27 22:37:58 2004 +1000 @@ -20,6 +20,7 @@ #include "strgen.h" #include "wrappers.h" #include "log_error.h" +#include "subscriberfuncs.h" static void print_help(const char *prg) { @@ -37,6 +38,7 @@ size_t len; int fd; time_t t; + off_t suboff; log_set_name(argv[0]); @@ -70,7 +72,20 @@ log_error(LOG_ARGS, "[%s] [%s] [%s]", listdir, address, number); + /* First make sure it's a subscribed address */ + filename = concatstr(2, listdir, "/subscribers"); + if ((fd = open(filename, O_RDONLY)) < 0) { + log_error(LOG_ARGS, "Could not open '%s'", filename); + exit(EXIT_FAILURE); + } + suboff = find_subscriber(fd, address); + if(suboff == -1) + exit(EXIT_SUCCESS); /* Not subbed, so exit silently */ + free(filename); + filename = concatstr(3, listdir, "/bounce/", address); + + /* TODO make sure the file we open below is not a symlink */ if ((fd = open(filename, O_WRONLY|O_APPEND|O_CREAT, S_IRUSR|S_IWUSR)) < 0) { log_error(LOG_ARGS, "Could not open '%s'", filename); @@ -82,7 +97,6 @@ if (!a) exit(EXIT_FAILURE); *a = '@'; - /* TODO check that the address is subscribed */ /* TODO check that the message is not already bounced */ /* XXX How long can the string representation of an integer be?