(self, raw_packet)
| 130 | header = struct.pack(">bbh", 0x41, 0x42, len(res)) |
| 131 | return header + res |
| 132 | def parse(self, raw_packet): |
| 133 | stream = StringIO(raw_packet) |
| 134 | self.magic1, self.magic2, data_len = unpack(stream, "bbH") |
| 135 | self.prefix_code, self.method = unpack(stream, "bb") |
| 136 | self.protocol = unpack_string(stream) |
| 137 | self.req_uri = unpack_string(stream) |
| 138 | self.remote_addr = unpack_string(stream) |
| 139 | self.remote_host = unpack_string(stream) |
| 140 | self.server_name = unpack_string(stream) |
| 141 | self.server_port = unpack(stream, ">h") |
| 142 | self.is_ssl = unpack(stream, "?") |
| 143 | self.num_headers, = unpack(stream, ">H") |
| 144 | self.request_headers = {} |
| 145 | for i in range(self.num_headers): |
| 146 | code, = unpack(stream, ">H") |
| 147 | if code > 0xA000: |
| 148 | h_name = AjpForwardRequest.COMMON_HEADERS[code - 0xA001] |
| 149 | else: |
| 150 | h_name = unpack(stream, "%ds" % code) |
| 151 | stream.read(1) # \0 |
| 152 | h_value = unpack_string(stream) |
| 153 | self.request_headers[h_name] = h_value |
| 154 | def send_and_receive(self, socket, stream, save_cookies=False): |
| 155 | res = [] |
| 156 | i = socket.sendall(self.serialize()) |
nothing calls this directly
no test coverage detected