Let me think about it.

From: Glyph <glyph@twistedmatrix.com>
To: A Desai <ardesai@yahoo.com>
Cc: Twisted Web World <twisted-web@twistedmatrix.com>
Sent: Wednesday, March 13, 2013 11:33 AM
Subject: Re: [Twisted-web] Setting of TCP Receive buffer size and Flow Control in producer/consumer

On Mar 12, 2013, at 9:04 PM, A Desai <ardesai@yahoo.com> wrote:

Using the protocol's transport object, I can fetch the SO_RCVBUF value on the 'accepted' connection and even set the SO_SNDBUF value.  However, since TCP Window scaling is enabled by default, it is my understanding that the SO_RCVBUF has to be set before the listen() call is invoked.  The .tac file passes the TCPServer object to application/service framework, which in turn calls the listener.  So I am wondering if I have to derive a subclass of TCPServer and somehow set the SO_RCVBUF value before the application framework invokes listen();  i.e. drill down to the Port object where it calls createInternetSocket()?

You'd need to actually subclass tcp.Server, an implementation mechanism that we would really like to deprecate :).

Really, the right way to do this is to contribute a fix to the ticket I linked, and do it directly next to the listen() call within Twisted :).