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 :).