def send(self, http_type, data): if not self.inited: self._init(http_type, data) self.inited = True if not self.is_http: return # still current http request/response if self.cur_type == http_type: self.cur_data.append(data) return if self.cur_data is not None: reader = DataReader(self.cur_data) if self.cur_type == HttpType.REQUEST: self.read_request(reader, self.message) elif self.cur_type == HttpType.RESPONSE: self.read_response(reader, self.message) self.cur_type = http_type # new http request/response self.cur_data = [] self.cur_data.append(data)
def process_tasks(self, task_queue): message = RequestMessage() m_time = 0 while True: queuedata = task_queue.get() httptype = queuedata[0] data_queue = queuedata[1] try: m_time = queuedata[2] except: pass #httptype, data_queue = task_queue.get() if httptype is None: # finished self.processor.finish() break reader = DataReader(data_queue) try: if httptype == HttpType.REQUEST: self.read_request(reader, message, m_time) elif httptype == HttpType.RESPONSE: self.read_response(reader, message) except Exception: #import traceback #traceback.print_exc() # consume all data. # reader.skipall() break
def finish(self): # if still have unprocessed data if self.cur_data: reader = DataReader(self.cur_data) if self.cur_type == HttpType.REQUEST: self.read_request(reader, self.message) elif self.cur_type == HttpType.RESPONSE: self.read_response(reader, self.message)
def finish(self): """if still have unprocessed data then process them""" if self.cur_data: reader = DataReader(self.cur_data) if self.cur_type == HttpType.REQUEST: pkt = self.read_request(reader, self.message) if pkt is not None: return pkt elif self.cur_type == HttpType.RESPONSE: self.read_response(reader, self.message) return None
def process_tasks(self, task_queue): message = RequestMessage() while True: httptype, data_queue = task_queue.get() if httptype is None: # finished self.processor.finish() break reader = DataReader(data_queue) try: if httptype == HttpType.REQUEST: self.read_request(reader, message) elif httptype == HttpType.RESPONSE: self.read_response(reader, message) except Exception: import traceback traceback.print_exc() # consume all data. reader.skipall() break
def send(self, http_type, data): """append http request or reponses if the connection is not initiated yet then start the connection and if it's still the current connection then append the packet Args: http_type (HttpType): type of packet data (str): data of unparsed packet Returns: None """ pkt = None if not self.inited: self._init(http_type, data) self.inited = True if not self.is_http: return None # still current http request/response if self.cur_type == http_type: self.cur_data.append(data) return None if self.cur_data is not None: reader = DataReader(self.cur_data) if self.cur_type == HttpType.REQUEST: pkt = self.read_request(reader, self.message) elif self.cur_type == HttpType.RESPONSE: self.read_response(reader, self.message) self.cur_type = http_type # new http request/response self.cur_data = [] self.cur_data.append(data) if pkt is not None: return pkt else: return None