chiark / gitweb /
inject: Ditch preline.
authorMark Wooding <mdw@distorted.org.uk>
Tue, 28 Mar 2006 12:23:59 +0000 (13:23 +0100)
committerMark Wooding <mdw@distorted.org.uk>
Tue, 28 Mar 2006 12:23:59 +0000 (13:23 +0100)
Preline causes strange broken-pipe errors which hide our rejections.
Kill it, and insert the appropriate headers by hand.

bin/inject
config

index 3d7c65d2bd12095fae2dadb52a7135a61eb7682c..f6e360bc1cf9ef15762ea116776c93d326943c02 100755 (executable)
@@ -7,6 +7,7 @@ import socket as S
 from getopt import getopt, GetoptError
 from sys import stdin, stdout, stderr, argv, exit
 from cStringIO import StringIO
 from getopt import getopt, GetoptError
 from sys import stdin, stdout, stderr, argv, exit
 from cStringIO import StringIO
+env = OS.environ
 
 prog = argv[0]
 
 
 prog = argv[0]
 
@@ -51,13 +52,16 @@ except:
   host = 'localhost'
 dist = 'mail'
 path = 'newsgate'
   host = 'localhost'
 dist = 'mail'
 path = 'newsgate'
+sender = env.get('SENDER')
+recip = env.get('RECIPIENT')
 group = None
 
 def opts():
 group = None
 
 def opts():
-  global approved, remote, host, dist, path, group
+  global approved, remote, host, dist, path, group, sender, recip
   try:
   try:
-    opts, args = getopt(argv[1:], 'a:d:h:r:p:',
+    opts, args = getopt(argv[1:], 'a:d:h:r:p:S:R:',
                         ['approved=', 'distribution=',
                         ['approved=', 'distribution=',
+                         'sender=', 'recipient=',
                          'hostname=', 'remote=', 'path='])
   except GetoptError:
     usage()
                          'hostname=', 'remote=', 'path='])
   except GetoptError:
     usage()
@@ -70,6 +74,10 @@ def opts():
       host = a
     elif o in ('-r', '--remote'):
       remote = (lambda addr, port = 119: (addr, int(port)))(*a.split(':'))
       host = a
     elif o in ('-r', '--remote'):
       remote = (lambda addr, port = 119: (addr, int(port)))(*a.split(':'))
+    elif o in ('-R', '--recipient'):
+      recip = a
+    elif o in ('-S', '--sender'):
+      sender = a
   if len(args) != 1:
     usage()
   group, = args
   if len(args) != 1:
     usage()
   group, = args
@@ -106,6 +114,8 @@ def send():
             'Newsgroups: %s\r\n'
             % group)
   if approved: hdr.write('Approved: %s\r\n' % approved)
             'Newsgroups: %s\r\n'
             % group)
   if approved: hdr.write('Approved: %s\r\n' % approved)
+  if sender: hdr.write('Return-Path: <%s>\r\n' % sender)
+  if recip: hdr.write('Delivered-To: %s\r\n' % recip)
   xify = {}
   for h in '''
     lines xref newsgroups path distribution approved received
   xify = {}
   for h in '''
     lines xref newsgroups path distribution approved received
diff --git a/config b/config
index 06366fbf922b987bc6fe82d6a0f499e83c20f6d9..ec2d0df041ef9402996be1a1d22edabf5ba12ded 100644 (file)
--- a/config
+++ b/config
@@ -15,7 +15,7 @@ admin: root
 
 [post-default]
 #? addrcheck
 
 [post-default]
 #? addrcheck
-|preline -f bin/post "$DEFAULT"
+|bin/post "$DEFAULT"
 
 [mail-default]
 #? addrcheck
 
 [mail-default]
 #? addrcheck