def _print_net(src, protocol, perm): import sepolicy.network portdict = sepolicy.network.get_network_connect(src, protocol, perm) if len(portdict) > 0: bold_start = "\033[1m" bold_end = "\033[0;0m" print("\n" + bold_start + "%s: %s %s" % (src, protocol, perm) + bold_end) port_strings = [] boolean_text = "" for p in portdict: for t, recs in portdict[p]: cond = get_conditionals(src, t, "%s_socket" % protocol, [perm]) if cond: boolean_text = get_conditionals_format_text(cond) port_strings.append("%s (%s) %s" % (", ".join(recs), t, boolean_text)) else: port_strings.append("%s (%s)" % (", ".join(recs), t)) port_strings.sort(key=lambda param: port_string_to_num(param)) for p in port_strings: print("\t" + p)
def _print_net(src, protocol, perm): import sepolicy.network portdict = sepolicy.network.get_network_connect(src, protocol, perm) if len(portdict) > 0: bold_start="\033[1m" bold_end="\033[0;0m" print("\n"+bold_start+"%s: %s %s" % (src, protocol, perm) + bold_end) port_strings=[] boolean_text="" for p in portdict: for t, recs in portdict[p]: cond = get_conditionals(src, t, "%s_socket" % protocol, [perm]) if cond: boolean_text = get_conditionals_format_text(cond) port_strings.append("%s (%s) %s" % (", ".join(recs), t, boolean_text)) else: port_strings.append("%s (%s)" % (", ".join(recs), t)) port_strings.sort(key=util.cmp_to_key(numcmp)) for p in port_strings: print("\t" + p)
def out(self, name, header=""): buf = "" if name in self.seen: return buf self.seen.append(name) if "map" in self.sdict[name]: for t in self.sdict[name]["map"]: cond = sepolicy.get_conditionals(t["source"], t["transtype"], "process", ["transition"]) if cond: buf += "%s%s @ %s --> %s %s\n" % ( header, t["source"], t["target"], t["transtype"], sepolicy.get_conditionals_format_text(cond)) else: buf += "%s%s @ %s --> %s\n" % (header, t["source"], t["target"], t["transtype"]) if "child" in self.sdict[name]: for x in self.sdict[name]["child"]: buf += self.out(x, "%s%s ... " % (header, name)) return buf
def out(self, name, header=""): buf = "" if name in self.seen: return buf self.seen.append(name) if "map" in self.sdict[name]: for t in self.sdict[name]["map"]: cond = sepolicy.get_conditionals(t["source"], t["transtype"], "process", ["transition"]) if cond: buf += "%s%s @ %s --> %s %s\n" % (header, t["source"], t["target"], t["transtype"], sepolicy.get_conditionals_format_text(cond)) else: buf += "%s%s @ %s --> %s\n" % (header, t["source"], t["target"], t["transtype"]) if "child" in self.sdict[name]: for x in self.sdict[name]["child"]: buf += self.out(x, "%s%s ... " % (header, name)) return buf