Ejemplo n.º 1
0
    def GenerateAnswer(self, elAnswer, id):
        """Generate complete Answer-package containing elRequest

        elAnswer    -- Answer as generated by pRecommendation
        id          -- id Answer should contain (id of request this answer belongs to. Needed to figure the
                       correct routing in cOwlManager

        return      -- cNetpackage

        """

        # generate answer
        cAnswer = cNetPackage.cRecPackage('answer')
        # set id
        cAnswer.SetID(id)
        # set originator
        cAnswer.SetOriginatorPort(self.cNetServer.GetListenPort())
        # set iOwl-Version
        cAnswer.SetOwlVersion(pManager.manager.GetVersion())
        # set network protocol version
        cAnswer.SetProtocolVersion(self.sProtocol)
        # store elRequest
        cAnswer.StorePayload(elAnswer)

        return cAnswer
Ejemplo n.º 2
0
    def HandleAnswer(self, sAnswer, sOrigin):
        """Handle incoming Answer

        Called by cRPCRequestHandler.Answer().
        Pass Answer to cOwlManager.Answer().

        """

        # log incoming Answer
        pManager.manager.DebugStr('cNetManager '+ __version__ +': Incoming Answer...', 1)

        try:
            # create cDOM from ascii-Ping
            domAnswer = cDOM.cDOM()
            domAnswer.ParseString(sAnswer)
            # create cNetPackage from DOM-answer
            cAnswer = cNetPackage.cRecPackage('')
            cAnswer.ParseDOM(domAnswer)
            # set originator ip
            cAnswer.SetOriginatorIP(sOrigin)
            # pass on to cOwlManager
            self.cOwlManager.Answer(cAnswer)
        except:
            # unknown error. log and forget.
            # get exception
            eType, eValue, eTraceback = sys.exc_info()

            # build stacktrace string
            tb = ''
            for line in traceback.format_tb(eTraceback, 15):
                tb = tb + line

            pManager.manager.DebugStr('pNetwork '+ __version__ +': Unhandled error in thread HandleAnswer(): Type: '+str(eType)+', value: '+str(eValue), 2)
            pManager.manager.DebugStr('pNetwork '+ __version__ +': Traceback:\n'+str(tb), 3)
Ejemplo n.º 3
0
    def GenerateRequest(self, elRequest):
        """Generate a request

        elRequest  -- Request as generated by pRecommendation

        return     -- cNetpackage

        """

        # generate request
        cRequest = cNetPackage.cRecPackage('request')
        # set unique id
        cRequest.SetID(pManager.manager.GetUniqueNumber())
        # set originator
        cRequest.SetOriginatorPort(self.cNetServer.GetListenPort())
        # set iOwl-Version
        cRequest.SetOwlVersion(pManager.manager.GetVersion())
        # set network protocol version
        cRequest.SetProtocolVersion(self.sProtocol)
        # store elRequest
        cRequest.StorePayload(elRequest)
        # set ttl
        cRequest.SetTTL(self.iTTL)

        return cRequest
Ejemplo n.º 4
0
    def HandleRequest(self, sRequest, sOrigin):
        """Handle incoming Request

        Called by cRPCRequestHandler.Request().
        Pass Request to cOwlManager.Distribute() for further spreading.

        """

        try:
            # create cDOM from ascii-request
            domRequest = cDOM.cDOM()
            domRequest.ParseString(sRequest)
            # create cNetPackage from DOM-request
            cRequest = cNetPackage.cRecPackage('')
            cRequest.ParseDOM(domRequest)
            # set originator ip
            cRequest.SetOriginatorIP(sOrigin)
            # log incoming Request
            pManager.manager.DebugStr('cNetManager '+ __version__ +': Incoming Request from %s:%s.' %(str(cRequest.GetOriginator()[0]), str(cRequest.GetOriginator()[1])), 2)
            # pass to cOwlManager
            self.cOwlManager.Distribute(cRequest)
        except:
            # unknown error. log and forget.
            # get exception
            eType, eValue, eTraceback = sys.exc_info()

            # build stacktrace string
            tb = ''
            for line in traceback.format_tb(eTraceback, 15):
                tb = tb + line

            pManager.manager.DebugStr('pNetwork '+ __version__ +': Unhandled error in thread HandleRequest(): Type: '+str(eType)+', value: '+str(eValue),2)
            pManager.manager.DebugStr('pNetwork '+ __version__ +': Traceback:\n'+str(tb), 3)