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
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)
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
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)