def doConnectionLost(self, reason):
<EOL>for _, request in self.factory.windowSubscribe[self.addr].items():<EOL><INDENT>if request.alarm is not None:<EOL><INDENT>request.alarm.cancel()<EOL>request.alarm = None<EOL><DEDENT><DEDENT>for _, request in self.factory.windowUnsubscribe[self.addr].items():<EOL><INDENT>if request.alarm is not None:<EOL><INDENT>request.alarm.cancel()<EOL>request.alarm = None<EOL><DEDENT><DEDENT>for _, request in self.factory.windowPublish[self.addr].items():<EOL><INDENT>if request.alarm is not None:<EOL><INDENT>request.alarm.cancel()<EOL>request.alarm = None<EOL><DEDENT><DEDENT>for _, request in self.factory.windowPubRelease[self.addr].items():<EOL><INDENT>if request.alarm is not None:<EOL><INDENT>request.alarm.cancel()<EOL>request.alarm = None<EOL><DEDENT><DEDENT>if self._cleanStart:<EOL><INDENT>for k in list(self.factory.windowSubscribe[self.addr]):<EOL><INDENT>request = self.factory.windowSubscribe[self.addr][k]<EOL>del self.factory.windowSubscribe[self.addr][k]<EOL>request.deferred.errback(reason)<EOL><DEDENT>for k in list(self.factory.windowUnsubscribe[self.addr]):<EOL><INDENT>request = self.factory.windowUnsubscribe[self.addr][k]<EOL>del self.factory.windowUnsubscribe[self.addr][k]<EOL>request.deferred.errback(reason)<EOL><DEDENT>self._purgeSession(reason)<EOL><DEDENT>
Additional connection lost clean up.