Merge remote-tracking branch 'qubesos/pr/200'
* qubesos/pr/200: Removed self.rules != old_rules Avoid UTC datetime Wrong init var to bool and missing call to total_seconds() Fixes QubesOS/qubes-issues#3661
This commit is contained in:
		
						commit
						93bccf583e
					
				| @ -204,7 +204,7 @@ class SpecialTarget(RuleChoice): | |||||||
| class Expire(RuleOption): | class Expire(RuleOption): | ||||||
|     def __init__(self, untrusted_value): |     def __init__(self, untrusted_value): | ||||||
|         super(Expire, self).__init__(untrusted_value) |         super(Expire, self).__init__(untrusted_value) | ||||||
|         self.datetime = datetime.datetime.utcfromtimestamp(int(untrusted_value)) |         self.datetime = datetime.datetime.fromtimestamp(int(untrusted_value)) | ||||||
| 
 | 
 | ||||||
|     @property |     @property | ||||||
|     def rule(self): |     def rule(self): | ||||||
| @ -216,7 +216,7 @@ class Expire(RuleOption): | |||||||
| 
 | 
 | ||||||
|     @property |     @property | ||||||
|     def expired(self): |     def expired(self): | ||||||
|         return self.datetime < datetime.datetime.utcnow() |         return self.datetime < datetime.datetime.now() | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class Comment(RuleOption): | class Comment(RuleOption): | ||||||
| @ -546,9 +546,7 @@ class Firewall(object): | |||||||
| 
 | 
 | ||||||
|     def _expire_rules(self): |     def _expire_rules(self): | ||||||
|         '''Function called to reload expired rules''' |         '''Function called to reload expired rules''' | ||||||
|         old_rules = self.rules |  | ||||||
|         self.load() |         self.load() | ||||||
|         if self.rules != old_rules: |  | ||||||
|         # this will both save rules skipping those expired and trigger |         # this will both save rules skipping those expired and trigger | ||||||
|         # QubesDB update; and possibly schedule another timer |         # QubesDB update; and possibly schedule another timer | ||||||
|         self.save() |         self.save() | ||||||
| @ -556,7 +554,7 @@ class Firewall(object): | |||||||
|     def save(self): |     def save(self): | ||||||
|         '''Save firewall rules to a file''' |         '''Save firewall rules to a file''' | ||||||
|         firewall_conf = os.path.join(self.vm.dir_path, self.vm.firewall_conf) |         firewall_conf = os.path.join(self.vm.dir_path, self.vm.firewall_conf) | ||||||
|         nearest_expire = False |         nearest_expire = None | ||||||
| 
 | 
 | ||||||
|         xml_root = lxml.etree.Element('firewall', version=str(2)) |         xml_root = lxml.etree.Element('firewall', version=str(2)) | ||||||
| 
 | 
 | ||||||
| @ -595,7 +593,7 @@ class Firewall(object): | |||||||
|             # necessary must be the same as time module; calculate delay and |             # necessary must be the same as time module; calculate delay and | ||||||
|             # use call_later instead |             # use call_later instead | ||||||
|             expire_when = nearest_expire - datetime.datetime.now() |             expire_when = nearest_expire - datetime.datetime.now() | ||||||
|             loop.call_later(expire_when, self._expire_rules) |             loop.call_later(expire_when.total_seconds(), self._expire_rules) | ||||||
| 
 | 
 | ||||||
|     def qdb_entries(self, addr_family=None): |     def qdb_entries(self, addr_family=None): | ||||||
|         '''Return firewall settings serialized for QubesDB entries |         '''Return firewall settings serialized for QubesDB entries | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Marek Marczykowski-Górecki
						Marek Marczykowski-Górecki