def run(self): GlobalVariable.log("consume start Time:"+"\t"+str(time.time())+"\n") #time.sleep(1) while(not GlobalVariable.finishSniffing or not GlobalVariable.dnsResponseQueue.empty()): if (not GlobalVariable.dnsResponseQueue.empty()): print "CONSUMER EMPTY dns" continue dnsResponse = GlobalVariable.dnsResponseQueue.get() if dnsResponse == "END OF THE SYSTEM": break flowValue = dnsResponse if len(self.growingTreeArray) > 0: print "growingTree is larger than 0" flag = False print "DEBUG 1" for growingTree in self.growingTreeArray: #if not growingTree.isActivatedtivated(): #continue ifAppended = growingTree.tryAddingNode(flowValue) if ifAppended == True: flag = True break else: pass print "DEBUG 2", flag if flag == False: if flowValue[10] != "": continue self.growingTreeIndex += 1 GlobalVariable.log("flag == False"+"\t"+str(self.growingTreeIndex)+"\t"+str(flowValue)+"\n") print "flag == False", self.growingTreeIndex, flowValue ts = time.time() growingTree = GrowingTree.GrowingTree(self.growingTreeIndex,flowValue, ts, parent = self) with self.lock: self.growingTreeArray.append(growingTree) else: print "growingTree is equal to 0" if flowValue[10] != "": continue self.growingTreeIndex += 1 GlobalVariable.log("no trees"+"\t"+str(self.growingTreeIndex)+"\t"+str(flowValue)) print "no trees", self.growingTreeIndex, flowValue ts = time.time() growingTree = GrowingTree.GrowingTree(self.growingTreeIndex,flowValue, ts, parent = self) with self.lock: self.growingTreeArray.append(growingTree) print "loop loop loop", GlobalVariable.finishSniffing, GlobalVariable.dnsResponseQueue.empty() print "not stucked any more" GlobalVariable.log(str(len(self.growingTreeArray))+"\t"+str(self.growingTreeIndex)) print len(self.growingTreeArray), self.growingTreeIndex print "the end of consume"
def run(self): GlobalVariable.log("sniff start Time:"+"\t"+str(time.time())+"\n") if self.targetInputMethod == "-i": self.__sniff_online(self.targetInputValue) pass elif self.targetInputMethod == "-p": self.__sniff_offline(self.targetInputValue) pass elif self.targetInputMethod == "-d": filelist = self.__target_files(self.targetInputValue) for filename in filelist: print filename self.__sniff_offline(filename) print "going to finish sniff" GlobalVariable.finishSniffing = True GlobalVariable.httpRequestQueue.put("END OF THE SYSTEM") GlobalVariable.dnsResponseQueue.put("END OF THE SYSTEM") GlobalVariable.smtpQueue.put("END OF THE SYSTEM") GlobalVariable.ftpQueue.put("END OF THE SYSTEM")
def run(self): #print "watchdog thread is running" remainingTime = 5 while remainingTime > 0: #print "watchdog thread is in the loop" if True: if self.queue.empty(): pass else: #print "watchDog queueSize Before ", self.queue.qsize() num = self.queue.get() #print "watchDog queueSize After ", self.queue.qsize() remainingTime = 5 #self.queue.task_done() #print "Consumed", num #print "remainingTime: ", remainingTime remainingTime -= 1 time.sleep(1) GlobalVariable.log("watchDog set threadEvent\n") #print "watchDog thread is going to finish" #self.threadEvent.set() self.parent.watchDogCallBack()
def merge_new(treeFeature): #print "in the merge now" flowTuble = (treeFeature.dst, treeFeature.srcport, treeFeature.t2ld, treeFeature.uri, treeFeature.packetIndex, treeFeature.hitTimes) flag = False for iterator, item in enumerate(TreeComparator.treeFeatureArray): tempFlag = False for i in range(5): if (len(flowTuble[i]) != 0 and (flowTuble[i] & item[i])): if set(['/']) == (flowTuble[i] & item[i]): tempFlag = False else: #print "bingo", flowTuble[i], item[i] tempFlag = True if tempFlag == True: TreeComparator.treeFeatureArray[iterator] = TreeComparator.combine(item, flowTuble) flag = True GlobalVariable.log("matched tree feature array:"+"\t"+str(item)+"\n") break #if flowTuble in TreeComparator.treeFeatureArray: if flag == True: GlobalVariable.log("match\n") #print "match" #treeFeature.show() pass else: GlobalVariable.log("unmatch\n") #print "unmatched ", flowTuble #treeFeature.show() (TreeComparator.treeFeatureArray).append(flowTuble) #GlobalVariable.log(str(treeFeature.flow[0])+"|"+str(treeFeature.flow[1])+"|"+str(treeFeature.flow[2])+"|"+str(treeFeature.flow[3])+"|"+str(treeFeature.flow[4])+"|"+str(treeFeature.flow[5])+"|"+str(treeFeature.flow[6])+"|"+str(treeFeature.flow[7])+"|"+str(treeFeature.flow[8])+"|"+str(treeFeature.flow[9])+"|"+str(treeFeature.flow[10])+"|"+str(treeFeature.flow[11])+"\n") #GlobalVariable.log("tree feature array:"+"\t"+str(TreeComparator.index)+"\t"+str(treeFeature.flow)+"\n") #print "tree feature array:", TreeComparator.index, treeFeature.flow TreeComparator.index += 1 GlobalVariable.log("merge ends"+"|"+str(len(TreeComparator.treeFeatureArray))+"|"+str(TreeComparator.treeFeatureArray)+"\n") GlobalVariable.log("duration:"+"\t"+str(time.time() - treeFeature.ts)+"\n") #print "merge ends", len(TreeComparator.treeFeatureArray), TreeComparator.treeFeatureArray #print "duration:", time.time() - treeFeature.ts durationList.append(time.time() - treeFeature.ts) GlobalVariable.log("average duration:"+"\t"+str(sum(durationList)/len(durationList))+"\n") GlobalVariable.log("end Time:"+"\t"+str(time.time())+"\n")
def run(self): GlobalVariable.log("consume start Time:"+"\t"+str(time.time())+"\n") #time.sleep(1) while(not GlobalVariable.finishSniffing or not GlobalVariable.httpRequestQueue.empty()): #print "coming AAAAAAAAAAA" if (GlobalVariable.httpRequestQueue.empty()): #print "CONSUMER EMPTY http" continue httpRequest = GlobalVariable.httpRequestQueue.get() if httpRequest == "END OF THE SYSTEM": break flowValue = httpRequest if len(self.growingTreeArray) > 0: #print "growingTree is larger than 0" flag = False #print "DEBUG 1" for growingTree in self.growingTreeArray: #if not growingTree.isActivatedtivated(): #continue ifAppended = growingTree.tryAddingNode(flowValue) if ifAppended == True: flag = True break else: pass #print "DEBUG 2", flag if flag == False: if flowValue[10] != "": continue GlobalVariable.log("flag == False"+"\t"+str(self.growingTreeIndex)+"\t"+str(flowValue)+"\n") print "flag == False", self.growingTreeIndex, flowValue ts = time.time() growingTree = GrowingTree.GrowingTree(self.growingTreeIndex,flowValue, ts, parent = self) with self.lock: self.growingTreeArray.append(growingTree) self.growingTreeIndex += 1 else: #print "growingTree is equal to 0" if flowValue[10] != "": continue GlobalVariable.log("no trees"+"\t"+str(self.growingTreeIndex)+"\t"+str(flowValue)) #print "no trees", self.growingTreeIndex, flowValue ts = time.time() growingTree = GrowingTree.GrowingTree(self.growingTreeIndex,flowValue, ts, parent = self) with self.lock: self.growingTreeArray.append(growingTree) self.growingTreeIndex += 1 #print "loop loop loop", GlobalVariable.finishSniffing, GlobalVariable.httpRequestQueue.empty() pass # add join here for growingTree in self.growingTreeArray: #print "number of growing Tree:", len(self.growingTreeArray) growingTree.__join__() time.sleep(5) print "not stucked any more" GlobalVariable.log(str(len(self.growingTreeArray))+"\t"+str(self.growingTreeIndex)) #print len(self.growingTreeArray) print "the end of consume"