Changeset 3666
- Timestamp:
- 08/29/08 13:21:54 (5 years ago)
- Location:
- branch/PacketManipulator/PM
- Files:
-
- 2 modified
-
Backend/Scapy/serialize.py (modified) (7 diffs)
-
Gui/Tabs/OperationsTab.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
branch/PacketManipulator/PM/Backend/Scapy/serialize.py
r3649 r3666 158 158 output = open(fname, 'w') 159 159 160 self.depth_idx = 0 160 161 self.writer = XMLGenerator(output, 'utf-8') 162 161 163 self.writer.startDocument() 162 self.writer.startElementNS((None, 'PMScapySequence'), 163 'PMScapySequence', {}) 164 self.writer.characters('\n') 164 self.startElementNS((None, 'PMScapySequence'), 165 'PMScapySequence', {}) 165 166 166 167 self.current_node = None … … 172 173 self.current_node = None 173 174 174 self.writer.endElementNS((None, 'PMScapySequence'), 175 'PMScapySequence') 176 self.writer.characters('\n') 175 self.endElementNS((None, 'PMScapySequence'), 176 'PMScapySequence') 177 177 178 178 self.writer.endDocument() 179 179 output.close() 180 180 181 def writeSpaces(self, prepend='', append=''): 182 idx = max(self.depth_idx - 1, 0) 183 txt = '%s%s%s' % (prepend, ' ' * idx, append) 184 185 if txt: 186 self.writer.characters(txt) 187 188 def startElementNS(self, name, qname, attrs, indent=True): 189 if indent: 190 self.writer.characters('\n') 191 192 self.depth_idx += 1 193 194 self.writeSpaces() 195 self.writer.startElementNS(name, qname, attrs) 196 197 def endElementNS(self, name, qname, indent=True): 198 if indent: 199 self.writeSpaces('\n') 200 201 self.writer.endElementNS(name, qname) 202 203 self.depth_idx -= 1 204 181 205 def write_node(self, node): 182 spaces = ' ' * (self.current_node.get_depth() + 1)183 184 self.writer.characters(spaces)185 206 self.start_xml_node(node.get_data()) 186 207 … … 189 210 self.write_node(child_node) 190 211 191 self.writer.characters(spaces)192 212 self.end_xml_node() 193 self.writer.characters('\n')194 213 195 214 def start_xml_node(self, seq_packet): … … 204 223 205 224 attrs = AttributesNSImpl(attr_vals, attr_qnames) 206 self. writer.startElementNS((None, 'SequencePacket'),207 'SequencePacket', attrs)225 self.startElementNS((None, 'SequencePacket'), 226 'SequencePacket', attrs) 208 227 209 228 self.start_xml_packet(seq_packet.packet) 210 229 211 230 def end_xml_node(self): 212 self. writer.endElementNS((None, 'SequencePacket'),213 'SequencePacket')231 self.endElementNS((None, 'SequencePacket'), 232 'SequencePacket') 214 233 215 234 def start_xml_packet(self, metapacket): … … 217 236 protocols.reverse() 218 237 219 self.writer.characters('\n')220 spaces = ' ' * (self.current_node.get_depth() + 4)221 222 238 for proto in protocols: 223 self.writer.characters(' ' * (self.current_node.get_depth() + 2))224 225 239 attr_vals = {(None, u'id') : Backend.get_proto_name(proto), 226 240 (None, u'time') : "%.6f" % proto.time} … … 228 242 229 243 attrs = AttributesNSImpl(attr_vals, attr_qnames) 230 self.writer.startElementNS((None, 'proto'), 'proto', attrs) 231 232 self.writer.characters('\n') 244 self.startElementNS((None, 'proto'), 'proto', attrs) 245 233 246 234 247 for field in Backend.get_proto_fields(proto): … … 239 252 attr_qnames = {(None, u'id') : u'id'} 240 253 254 self.writer.characters('\n') 255 241 256 attrs = AttributesNSImpl(attr_vals, attr_qnames) 242 243 self.writer.characters(spaces) 244 self.writer.startElementNS((None, 'field'), 'field', attrs) 245 257 self.startElementNS((None, 'field'), 'field', attrs, False) 246 258 self.writer.characters(str(value)) 247 248 self.writer.endElementNS((None, 'field'), 'field') 249 self.writer.characters('\n') 259 self.endElementNS((None, 'field'), 'field', False) 250 260 251 261 for idx in xrange(len(protocols)): 252 self.writer.characters(spaces) 253 self.writer.endElementNS((None, 'proto'), 'proto') 254 self.writer.characters('\n') 262 self.endElementNS((None, 'proto'), 'proto') 255 263 256 264 if __name__ == "__main__": -
branch/PacketManipulator/PM/Gui/Tabs/OperationsTab.py
r3599 r3666 140 140 if ret and self.session: 141 141 self.session.sniff_page.clear() 142 self.session.sniff_page.reload() 142 143 self.session.sniff_page.reload() 143 144 144 145 return ret
