On Fri, Nov 10, 2006 at 07:25:25PM -0500, Mark Horn wrote: > I don't know what to tell you. The error is with a pipe command. Have > you looked at the thing that you're piping it to? If it exits with an > error, you'll get this type of error, too.
Fine, broken pipe. Yay. Even if I'm doing something *wrong* on the user end, the point is that the program ought not to die with a useless message on the server side WITHOUT reporting an error on the client side. At the very least, I should get an SMTP error code, rather than a closed connection. For example: cat << EOF | telnet mailhost 8025 EHLO neysa.codegnome.org AUTH PLAIN dGphY29ic1wwdGphY29ic1wwcXVvb3llYTk= MAIL FROM:<[EMAIL PROTECTED]> RCPT TO:<[EMAIL PROTECTED]> DATA Testing. . EOF provides this output: Trying 192.168.76.16... Connected to mailhost.codegnome.org. Escape character is '^]'. 220 mailhost.codegnome.org ESMTP tmda-ofmipd Connection closed by foreign host. Where's the error? Where is the indication to the client that the message was not accepted? Even when I do it interactively, the result is essentially the same. I ran a similar test in full debug mode, and get this output: $ tmda-ofmipd -fd tmda-ofmipd started at Fri, 10 Nov 2006 17:00:04 -0800 Listening on mailhost.codegnome.org:8025 Incoming connection from: ('192.168.76.17', 4475) Incoming connection to: ('192.168.76.16', 8025) Data: 'EHLO client.codegnome.org' error: uncaptured python exception, closing channel <__main__.SMTPChannel connected 192.168.76.17:4475 at 0xb7cd436c> (socket.error:(32, 'Broken pipe') [/usr/lib/python2.3/asynchat.py|initiate_send|218] [/usr/lib/python2.3/asyncore.py|send|337]) error: uncaptured python exception, closing channel <__main__.SMTPChannel connected 192.168.76.17:4475 at 0xb7cd436c> (socket.error:(9, 'Bad file descriptor') [/usr/lib/python2.3/asynchat.py|initiate_send|218] [/usr/lib/python2.3/asyncore.py|send|337]) Data: 'AUTH PLAIN dGphY29icwB0amFjb2JzAHF1b295ZWE5' error: uncaptured python exception, closing channel <__main__.SMTPChannel connected 192.168.76.17:4475 at 0xb7cd436c> (socket.error:(9, 'Bad file descriptor') [/usr/lib/python2.3/asynchat.py|initiate_send|218] [/usr/lib/python2.3/asyncore.py|send|337]) Auth: succeeded for user 'tjacobs' Data: 'MAIL FROM:<[EMAIL PROTECTED]>' ===> MAIL FROM:<[EMAIL PROTECTED]> sender: [EMAIL PROTECTED] error: uncaptured python exception, closing channel <__main__.SMTPChannel connected 192.168.76.17:4475 at 0xb7cd436c> (socket.error:(9, 'Bad file descriptor') [/usr/lib/python2.3/asynchat.py|initiate_send|218] [/usr/lib/python2.3/asyncore.py|send|337]) Data: 'RCPT TO:<[EMAIL PROTECTED]>' ===> RCPT TO:<[EMAIL PROTECTED]> recips: ['[EMAIL PROTECTED]'] error: uncaptured python exception, closing channel <__main__.SMTPChannel connected 192.168.76.17:4475 at 0xb7cd436c> (socket.error:(9, 'Bad file descriptor') [/usr/lib/python2.3/asynchat.py|initiate_send|218] [/usr/lib/python2.3/asyncore.py|send|337]) Data: 'DATA' error: uncaptured python exception, closing channel <__main__.SMTPChannel connected 192.168.76.17:4475 at 0xb7cd436c> (socket.error:(9, 'Bad file descriptor') [/usr/lib/python2.3/asynchat.py|initiate_send|218] [/usr/lib/python2.3/asyncore.py|send|337]) Data: 'Testing.' error: uncaptured python exception, closing channel <__main__.SMTPChannel connected 192.168.76.17:4475 at 0xb7cd436c> (exceptions.IOError:failure delivering message to command "['/usr/local/tmda-1.1.8/bin/tmda-inject', '-c', '/home/tjacobs/.tmda/config', '[EMAIL PROTECTED]']" (command "['/usr/local/tmda-1.1.8/bin/tmda-inject', '-c', '/home/tjacobs/.tmda/config', '[EMAIL PROTECTED]']" exited 1 (Traceback (most recent call last): File "/usr/local/tmda-1.1.8/bin/tmda-inject", line 118, in ? orig_msgout_body_as_raw_string = Util.body_as_raw_string(msgout) File "./TMDA/Util.py", line 666, in body_as_raw_string ValueError: substring not found)) [/usr/lib/python2.3/asyncore.py|read|69] [/usr/lib/python2.3/asyncore.py|handle_read_event|390] [/usr/lib/python2.3/asynchat.py|handle_read|136] [/usr/local/tmda-1.1.8/bin/tmda-ofmipd|found_terminator|783] [/usr/local/tmda-1.1.8/bin/tmda-ofmipd|process_message|1172] [./TMDA/Util.py|pipecmd|402]) So, clearly the exception is happening right from the beginning. In addition, tmda-ofmipd is choking on some CR/LF issue in Util.py when sent CR/LF in some way it isn't expecting, but that's not the entire story. -- Unabashedly littering the information superhighway with detritus like this for over 15 years now. _____________________________________________ tmda-users mailing list (tmda-users@tmda.net) http://tmda.net/lists/listinfo/tmda-users