Esempio n. 1
0
    def handle(self, data, address, socket):
        self.sock = socket
        if not address in self.sessions.keys():
            # new session for new source
            logger.info('New IPMI traffic from %s', address)
            session = FakeSession(address[0], "", "", address[1])
            session.server = self

            self.uuid = uuid.uuid4()
            self.kg = None

            #if not hasattr(self, 'session') or not self.session:
            #    return

            session.socket = self.sock
            self.sessions[address] = session
            self.initiate_session(data, address, session)
        else:
            session = self.sessions[address]
            # session already exists
            logger.debug('Incoming IPMI traffic from %s', address)
            if session.stage == 0:
                self.close_server_session(session)
            else:
                self._got_request(data, address, session)