Zhang Huangbin:
> Dear all,
> 
> I wrote a simple daemon service in Python, it's used in Postfix 
> transport_maps like this:
> 
> transport_maps = tcp:127.0.0.1:1234
> 
> It always returns '200 my_transport\n' as described in Postfix manual page 
> tcp_table(5), but Postfix always complains "unexpected EOF" like below:
> 
> Jul 27 22:51:53 d7 postfix/trivial-rewrite[4260]: warning: read TCP map reply 
> from 127.0.0.1:1234: unexpected EOF (Success)
> 
> This Python daemon server uses 'asynchat' module, and return '200 
> my_transport\n' with 'async_chat.push()' method like this:
> 
> self.push('200 my_transport\n')
> 
> Any idea why Postfix always complain "unexpected EOF"?

1) Use a network sniffer to see what Python actually sends. You may
   assume that your program sends \n, but Postfix does not receive \n.

2) Unrelated to this bug: closing the connection after one request
   is inefficient.

        Wietse

Reply via email to