Preline causes strange broken-pipe errors which hide our rejections.
Kill it, and insert the appropriate headers by hand.
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
host = 'localhost'
dist = 'mail'
path = 'newsgate'
host = 'localhost'
dist = 'mail'
path = 'newsgate'
+sender = env.get('SENDER')
+recip = env.get('RECIPIENT')
- global approved, remote, host, dist, path, group
+ global approved, remote, host, dist, path, group, sender, recip
- 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()
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
'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
[post-default]
#? addrcheck
[post-default]
#? addrcheck
-|preline -f bin/post "$DEFAULT"
[mail-default]
#? addrcheck
[mail-default]
#? addrcheck