[mod_python] webinterface for a local telnet server

Andreas Klauer Andreas.Klauer at metamorpher.de
Fri Oct 6 08:37:15 EDT 2006


Hello mod_python,

I'm new to this list, I hope I'm not asking something too obvious.

I want to write a web frontend for a local telnet server in mod_python. 
Now, I thought it would be an easy task, but it is slowly turning out 
not to be that easy. The very small rudimentary script I wrote opens a 
telnet connection to the server. It accepts commands from the browser 
and sends them to the server, and sends replies back to the browser.

This would all work very well if it were not for Apache threads. I need 
one telnet connection per user (identified by Session), but when Apache 
starts another thread, anything that is not stored on the outside (file, 
database, ...) is, well not really lost, as the other thread still has 
the information, but it is unavailable to the new thread.

That leads me to the question. What's the best way to write a web app, 
when I need data per user (session) that can not be stored on disk, for 
example a persistent connection to a telnet or IRC server. Unfortunately 
the server does not support sharing connections for multiple clients 
like databases do. It also does not support concurrent connections for 
the same user, so creating one connection per thread is not an option.

I see that FastCGI has an 'Session Affinity' patch, which is supposed to 
take care of the problem. They solved the problem by giving their module 
some control over which thread to use. However this patch never made it 
into the distribution and does not seem very actively maintained (never 
tested with Apache2 according to their homepage).

The only alternative I see is to write yet another intermediator daemon 
which I have to put in between the server and mod_python which then takes 
care of the connections in a smart way (persistent connection to the 
mod_python threads which can then be shared by the users or whatever).

Needless to say this would make things much more complicated than they 
need to be, as mod_python by itself can already do persistent connections, 
just not in the correct threads.

How to proceed?

Regards
Andreas Klauer


More information about the Mod_python mailing list