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:
pamh = None
client = None
def __init__(self, pamh):
self.pamh = pamh
def clientConnectionLost(self, connector, reason):
def buildProtocol(self, addr):
client = WebSSOClient()
#client = TimeoutProtocol(self, WebSSOClient, 5)
client.pamh = self.pamh
self.client = client
And this is the protocol:
line = None
pamh = None
state = 'start'
def lineReceived(self, line):
self.line = line
if self.state == 'start':
"Visit http://***/login/%s to login\nand press <enter> to continue." %
self.state = None
Before anyone starts to scream http (no s): This is all test/debug. I
want the timeout to work before I deploy to something more serious.
The client is loaded straightforward using a reactor.connectTCP() with
the instantiated factory object.
If 'but' was any useful, it would be a logic operator