[Mailman-Developers] LMTPRunner.py

Tokio Kikuchi tkikuchi at is.kochi-u.ac.jp
Fri Oct 6 03:33:27 CEST 2006


Hi Barry,
> 
> I took a look at LMTPRunner.py today, and it looked pretty good.  I  
> don't think it was quite RFC 2033 compliant though.  One thing it  
> needed to do was return a status code for every RCPT TO recipient.
> 
I've looked over that part. ;-)

> Take a look at r8050.  I've fixed the status codes and also done a  
> bunch of other refactoring.  Note that I haven't yet tried to hook  
> this up to a real Postfix (or other LMTP client), but it seems to do  
> the right thing when you telnet to localhost:8025.  Give it a try and  
> let me know what you think.  I plan on testing  Postfix integration,  
> perhaps tomorrow.

It's working just fine on my test environment.
> 
> This definitely shows a lot of promise.  I will probably hold off on  
> updating the MaildirRunner for now, to see how far we can take LMTP  
> delivery, and whether an smtpd.py-based server can hold up.  Great work!
> 

Now wonder if we can put a MailmanHTTPRunner(Server) in mailman-2.2. 
This should completely get rid of the setgid problem in the installation.

I've tested putting this script in /usr/local/mailman (<prefix>) 
directory and get my browser pointing to 
http://server:8000/Mailman/Cgi/listinfo.py.  Unfortunately, the 
BaseHTTPServer in the Python distribution is based on syncronous 
TCPServer, thus it cannot handle simultaneous connections.  There are 
threading and forking TCPServers in the SocketServer module and we may 
be able to use them to compose a customized Mailman HTTP Server.

---------------------------------------------------------------------
import paths # Put paths.py in /usr/local/mailman directory
import BaseHTTPServer
import CGIHTTPServer

from Mailman.configuration import config
config.load()

class MailmanHTTPRequestHandler(CGIHTTPServer.CGIHTTPRequestHandler):

     have_fork = 0
     have_popen2 = 0
     have_popen3 = 0

     cgi_directories = ['/Mailman/Cgi']

def test(HandlerClass=MailmanHTTPRequestHandler,
          ServerClass=BaseHTTPServer.HTTPServer):
     CGIHTTPServer.test(HandlerClass, ServerClass)

if __name__ == '__main__':
     test()
---------------------------------------------------------------------


-- 
Tokio Kikuchi, tkikuchi at is.kochi-u.ac.jp
http://weather.is.kochi-u.ac.jp/


More information about the Mailman-Developers mailing list