[Twisted-Python] How to use the TimeoutProtocol policy?

L. Daniel Burr ldanielburr at me.com
Thu Jun 14 08:24:44 MDT 2018


Hi Martin,

On June 14, 2018 at 8:29:45 AM, Martin van Es (mrvanes at gmail.com) wrote:

Hi,

I'm trying to timeout a really simple LineReceiver protocol.

It's function is to connect to a daemon, receive a line that's to be
displayed to an end-user upon which the user should undertake some
action. The action will trigger a second line (fail/success) at which
point the daemon will close the connection. If, however, the end-user
does not follow-up on the first challenge I want the script to timeout
with a failed result.

Now, I have the LineReceiver do exactly what I want, but I can't for
the life of me understand how I should "wrap" it in the TimoutProtocol
so that it disconnects after a couple of seconds?

This is my Factory:
class WebSSOFactory(ClientFactory):
pamh = None
client = None


I think one problem here is that your WebSSOFactory is not a TimeoutFactory (https://twistedmatrix.com/documents/current/api/twisted.protocols.policies.TimeoutFactory.html).

You have to pass a TimeoutFactory to the TimeoutProtocol in order for it to work with the LineReceiver you are wrapping, otherwise the timeout value will not be set; a regular Factory’s buildProtocol method would not know that it needs to pass the timeout to the TimeoutProtocol.

Hope this helps,

Daniel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20180614/d05320af/attachment-0002.html>


More information about the Twisted-Python mailing list