CVS: tmda/TMDA ChangeLog,1.281,1.282 Deliver.py,1.15,1.16 MTA.py,1.16,1.17

Timothy Legant <[email protected]>
Newsgroups gmane.mail.spam.tmda.cvs
Message-ID <[email protected]>
Update of /cvsroot/tmda/tmda/TMDA
In directory sc8-pr-cvs1:/tmp/cvs-serv22566/TMDA

Modified Files:
	ChangeLog Deliver.py MTA.py 
Log Message:
Added '-p/--print' option to tmda-rfilter to print successfully
confirmed or filtered messages to stdout rather than delivering them.

Modified MTA.deliver, MTA.stop, Qmail.deliver, Deliver.deliver and
Deliver.get_instructions for '_filter_' delivery.  This allows
tmda-filter to work as a filter in maildrop and procmail.


Index: ChangeLog
===================================================================
RCS file: /cvsroot/tmda/tmda/TMDA/ChangeLog,v
retrieving revision 1.281
retrieving revision 1.282
diff -u -r1.281 -r1.282
--- ChangeLog	11 Jul 2003 23:03:00 -0000	1.281
+++ ChangeLog	19 Jul 2003 04:29:26 -0000	1.282
@@ -1,3 +1,12 @@
+2003-07-18  Tim Legant  <[email protected]>
+
+	* MTA.py (MTA.deliver, MTA.stop, Qmail.deliver): Added support for
+	the delivery when Defaults.DELIVERY = '_filter_'.
+
+	* Deliver.py (Deliver.get_instructions, Deliver.deliver): Added
+	support for the '_filter_' style of delivery, where the message is
+	simply piped to stdout.
+
 2003-07-11  Tim Legant  <[email protected]>
 
 	* Defaults.py: New variables DB_BARE_APPEND and

Index: Deliver.py
===================================================================
RCS file: /cvsroot/tmda/tmda/TMDA/Deliver.py,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- Deliver.py	25 May 2003 02:21:20 -0000	1.15
+++ Deliver.py	19 Jul 2003 04:29:26 -0000	1.16
@@ -27,6 +27,7 @@
 import signal
 import socket
 import stat
+import sys
 import time
 
 import Defaults
@@ -98,6 +99,9 @@
             self.delivery_dest = self.option
             if firstchar == '~':
                 self.delivery_dest = os.path.expanduser(self.delivery_dest)
+        elif self.option == '_filter_':
+            self.delivery_type = 'filter'
+            self.delivery_dest = 'stdout'
         # Unknown delivery instruction.
         else:
             raise Errors.DeliveryError, \
@@ -138,6 +142,8 @@
             else:
                 # don't wrap headers, don't escape From, don't add From_ line
                 self.__deliver_maildir(Util.msg_as_string(self.msg), dest)
+        elif type == 'filter':
+            sys.stdout.write(Util.msg_as_string(self.msg))
 
     def __deliver_program(self, message, program):
         """Deliver message to /bin/sh -c program."""

Index: MTA.py
===================================================================
RCS file: /cvsroot/tmda/tmda/TMDA/MTA.py,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- MTA.py	25 May 2003 02:09:19 -0000	1.16
+++ MTA.py	19 Jul 2003 04:29:26 -0000	1.17
@@ -48,14 +48,16 @@
         sys.exit(self.EX_TEMPFAIL)
 
     def stop(self):
+        if self.default_delivery == '_filter_':
+            sys.exit(99)
         sys.exit(self.EX_OK)
 
     def deliver(self, msg, instruction=None):
-        if instruction is None:
+        if instruction is None or self.default_delivery == '_filter_':
             instruction = self.default_delivery
         msg = Deliver.Deliver(msg, instruction)
         msg.deliver()
-        self.stop()
+        sys.exit(0)
 
 
 class Exim(MTA):
@@ -91,13 +93,15 @@
         sys.exit(self.EX_STOP)
 
     def deliver(self, msg, instruction=None):
-        if instruction is None:
+        if instruction is None or self.default_delivery == '_filter_':
             instruction = self.default_delivery
         if instruction == '_qok_':
             sys.exit(self.EX_OK)
         else:
             msg = Deliver.Deliver(msg, instruction)
             msg.deliver()
+            if instruction == '_filter_':
+                sys.exit(self.EX_OK)
             self.stop()
 
 

_______________________________________
tmda-cvs mailing list
http://tmda.net/lists/listinfo/tmda-cvs
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.