code: def _reconnect(self, errorState):
          
          def connect():
              if self.noisy:
                  log.msg("Reconnecting now.")
              self.connect()
  
          backOff = self.backOffs[errorState]
  
          if self._errorState != errorState or self._delay is None:
              self._errorState = errorState
              self._delay = backOff['initial']
          else:
              self._delay = min(backOff['max'], self._delay * backOff['factor'])
  
          if self._delay == 0:
              connect()
          else:
              self._reconnectDelayedCall = self.reactor.callLater(self._delay,
                                                                  connect)
              self._toState('waiting')
docs: Attempt to reconnect.
  
          If the current back-off delay is 0, L{connect} is called. Otherwise,
          it will cause a transition to the C{'waiting'} state, ultimately
          causing a call to L{connect} when the delay expires.