Hi! I would like to start a discussion which will eventually lead to one of the two proposals listed below (one from Vlad Seryakov and the other from Stephen Deasey) included in the core-server distribution.
Both proposals look promising and both allow us to add support for arbitrary protocols (pop, imap, ftp...) to the AS, augmeting the existing (built-in) http protocol. Vlad Seryakov's patch can be found on: http://sourceforge.net/tracker/index.php?func=detail&aid=726288&group_id=3152&atid=353152 In a nutshell: Vlad's patch implements entirely new socket-level driver and sticks the whole add-in functionality in the driver itself, effectively bypassing the AS socket and/or ssl driver. It is minimaly invasive in terms of core-server changes as it puts all of the new protocol parsing logic into the driver itself. Stephen Deasey's patch can be found on: http://sourceforge.net/tracker/index.php?func=detail&aid=973010&group_id=3152&atid=353152 In a nutshell: Stephen's patch integrates into the AS by adding new API call Ns_RegisterParseProc() which allows module authors to register a proc which will be called by the driver thread to parse the data from a connection socket. This way a new protocol connect handling looks pretty much like regular http. Hence it utilitzes all of the recent optimizations in the core (read-aead threads, async-reads) and runs atop existing sock and ssl drivers. My personal opinion is that Stephen's patch is more versatile in the way it integrates with other AS components. It brings more options to the protocol developer. It is relatively simple, not too invasive and I would vote we integrate this patch into the 4.1+ dvelopment branch. So, all of you interested in extending AS to handle non-http protocols, please go, have a look and give some feedback. Thanks, Zoran -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.