MCPcopy
hub / github.com/evilsocket/opensnitch / _add_rulesTree_fw_chains

Method _add_rulesTree_fw_chains

ui/opensnitch/dialogs/stats.py:2444–2517  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2442 return items
2443
2444 def _add_rulesTree_fw_chains(self):
2445 expanded = list()
2446 selected = None
2447 scrollValue = self.rulesTreePanel.verticalScrollBar().value()
2448 fwItem = self.rulesTreePanel.topLevelItem(self.RULES_TREE_FIREWALL)
2449 it = QtWidgets.QTreeWidgetItemIterator(fwItem)
2450 # save tree selected rows
2451 try:
2452 while it.value():
2453 x = it.value()
2454 if x.isExpanded():
2455 expanded.append(x)
2456 if x.isSelected():
2457 selected = x
2458 it += 1
2459 except Exception:
2460 pass
2461
2462 self.rulesTreePanel.setAnimated(False)
2463 fwItem.takeChildren()
2464 self.rulesTreePanel.setItemWidget(fwItem, 1, self.fwTreeEdit)
2465 chains = self._fw.get_chains()
2466 for addr in chains:
2467 # add nodes
2468 hostname = self._nodes.get_node_hostname(addr)
2469 nodeRoot = QtWidgets.QTreeWidgetItem([addr, hostname])
2470 nodeRoot.setData(0, QtCore.Qt.ItemDataRole.UserRole, addr)
2471 fwItem.addChild(nodeRoot)
2472 for nodeChains in chains[addr]:
2473 # exclude legacy system rules
2474 if len(nodeChains) == 0:
2475 continue
2476 for cc in nodeChains:
2477 # add tables
2478 tableName = "{0}-{1}".format(cc.Table, cc.Family)
2479 nodeTable = QtWidgets.QTreeWidgetItem([tableName])
2480 nodeTable.setData(0, QtCore.Qt.ItemDataRole.UserRole, "{0}-{1}".format(addr, tableName))
2481
2482 chainName = "{0}-{1}".format(cc.Name, cc.Hook)
2483 nodeChain = QtWidgets.QTreeWidgetItem([chainName, cc.Policy])
2484 nodeChain.setData(0, QtCore.Qt.ItemDataRole.UserRole, "{0}-{1}".format(addr, chainName))
2485 nodeChain.setData(
2486 0,
2487 QtCore.Qt.ItemDataRole.UserRole,
2488 # key to identify this chain
2489 "{0}#{1}#{2}".format(addr, cc.Hook, cc.Name)
2490 )
2491
2492 items = self._find_tree_fw_items("{0}-{1}".format(addr, tableName))
2493 if len(items) == 0:
2494 # add table
2495 nodeTable.addChild(nodeChain)
2496 nodeRoot.addChild(nodeTable)
2497 else:
2498 # add chains
2499 node = items[0]
2500 node.addChild(nodeChain)
2501

Callers 3

showMethod · 0.95
_cb_fw_rules_updatedMethod · 0.95
_update_status_labelMethod · 0.95

Calls 3

_find_tree_fw_itemsMethod · 0.95
get_chainsMethod · 0.80
get_node_hostnameMethod · 0.80

Tested by

no test coverage detected