(host: str)
| 598 | sub_domain = _registrable_domain(sub) |
| 599 | if sub_domain != target_domain: |
| 600 | violations.append(sub) |
| 601 | return violations |
| 602 | |
| 603 | def _reaper_loop(self) -> None: |
| 604 | while True: |
| 605 | time.sleep(60) |
| 606 | cutoff = time.time() - RESULT_RETENTION_SECONDS |
| 607 | with self._lock: |
| 608 | stale = [ |
| 609 | sid for sid, state in self.active_scans.items() |
| 610 | if state.completed_at and state.completed_at.timestamp() < cutoff |
| 611 | ] |
| 612 | for sid in stale: |