def connectionLost(self, reason=twistedError.ConnectionDone):

        if self.role == Command.BaseCommand.PV_ROLE_HUMAN:
            InternalMessage.UnregistFilter(InternalMessage.TTYPE_HUMAN,
                                           self.client_id)
            InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_HUMAN,
                                                 self.client_id,
                                                 id(self.transport),
                                                 InternalMessage.OPER_OFFLINE,
                                                 'n')
        elif self.role == Command.BaseCommand.PV_ROLE_RELAYER:
            InternalMessage.UnregistFilter(InternalMessage.TTYPE_GATEWAY,
                                           self.relayer_id)
            InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_GATEWAY,
                                                 self.relayer_id, 0,
                                                 InternalMessage.OPER_OFFLINE)

        try:
            self.timer.cancel()
        except Exception:
            pass
        #print ("connection lost:",id(self.transport),reason)
        self.releaseFromDict()

        with self.factory.lockPendingCmd:
            SBProtocol.connection_count = SBProtocol.connection_count - 1
        Protocol.connectionLost(self, reason=reason)
示例#2
0
def UpdateActiveTime(role_session, terminal_id,sock_=0):
    from Command import BaseCommand
    from SBPS import InternalMessage
    with session_scope() as session :
        if role_session==BaseCommand.PV_ROLE_HUMAN:
            session.query(SBDB_ORM.Client).filter(SBDB_ORM.Client.id==terminal_id).update({SBDB_ORM.Client.dt_active:datetime.datetime.now()})
            session.commit()
            InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_HUMAN, terminal_id, sock_, InternalMessage.OPER_ONLINE)
        elif role_session==BaseCommand.PV_ROLE_RELAYER:
            session.query(SBDB_ORM.Relayer).filter(SBDB_ORM.Relayer.id==terminal_id).update({SBDB_ORM.Relayer.dt_active:datetime.datetime.now()})
            session.commit()
            InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_GATEWAY, terminal_id, 0, InternalMessage.OPER_ONLINE)
示例#3
0
def UpdateAuthTimeHuman(client_id,balance,sock_):
    from SBPS import InternalMessage
    InternalMessage.RegistFilter(InternalMessage.TTYPE_HUMAN,client_id)
    with session_scope() as session :
        session.query(SBDB_ORM.Client).filter(SBDB_ORM.Client.id==client_id).update({SBDB_ORM.Client.dt_auth:datetime.datetime.now()})
        session.commit()
    InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_HUMAN, client_id, sock_, InternalMessage.OPER_ONLINE,balance)
示例#4
0
def UpdateAuthTimeRelayer(relayer_id):
    from SBPS import InternalMessage
    InternalMessage.RegistFilter(InternalMessage.TTYPE_GATEWAY,relayer_id)
    with session_scope() as session :
        session.query(SBDB_ORM.Relayer).filter(SBDB_ORM.Relayer.id==relayer_id).update({SBDB_ORM.Relayer.dt_auth:datetime.datetime.now(),SBDB_ORM.Relayer.server_id:InternalMessage.MyServerID})
        session.commit()
    InternalMessage.NotifyTerminalStatus(InternalMessage.TTYPE_GATEWAY, relayer_id, 0, InternalMessage.OPER_ONLINE)