From de06014e0fa9609347fa1b7b4cd2ac9a8884dae4 Mon Sep 17 00:00:00 2001 From: Chris PeBenito Date: Thu, 24 Jul 2014 09:15:23 -0400 Subject: [PATCH] Restructure TERule __str__ Eliminate instance check and try common case of getting perms; catch exception for type_* rules case. --- libapol/policyrep/terule.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/libapol/policyrep/terule.py b/libapol/policyrep/terule.py index 7effd60..c524722 100644 --- a/libapol/policyrep/terule.py +++ b/libapol/policyrep/terule.py @@ -55,23 +55,23 @@ class TERule(rule.PolicyRule): rule_string = "{0.ruletype} {0.source} {0.target}:{0.tclass} ".format( self) - if isinstance(self.qpol_symbol, qpol.qpol_avrule_t): + try: perms = self.perms + except rule.InvalidRuleUse: + # type_* rules + rule_string += str(self.default) + try: + rule_string += " \"{0}\";".format(self.filename) + except TERuleNoFilename: + rule_string += ";" + else: + # allow/dontaudit/auditallow/neverallow rules if len(perms) > 1: rule_string += "{{ {0} }};".format(string.join(perms)) else: # convert to list since sets cannot be indexed rule_string += "{0};".format(list(perms)[0]) - else: - rule_string += str(self.default) - - try: - rule_string += " \"{0}\"".format(self.filename) - except TERuleNoFilename: - pass - - rule_string += ";" try: cond = self.conditional