From 2d62191aa06c246b21dc8788045af6a3e9586d74 Mon Sep 17 00:00:00 2001 From: overcuriousity Date: Fri, 12 Sep 2025 14:57:09 +0200 Subject: [PATCH] fix attempt --- app.py | 1 + core/scanner.py | 6 ++++++ core/session_manager.py | 8 ++++++++ 3 files changed, 15 insertions(+) diff --git a/app.py b/app.py index 87064d6..cc42a21 100644 --- a/app.py +++ b/app.py @@ -113,6 +113,7 @@ def start_scan(): # Get user-specific scanner with enhanced debugging user_session_id, scanner = get_user_scanner() + scanner.user_session_id = user_session_id print(f"Using session: {user_session_id}") print(f"Scanner object ID: {id(scanner)}") diff --git a/core/scanner.py b/core/scanner.py index c80ee89..9ec0eda 100644 --- a/core/scanner.py +++ b/core/scanner.py @@ -346,6 +346,12 @@ class Scanner: except (Exception, CancelledError) as e: print(f"Error processing target {target}: {e}") self._log_target_processing_error(target, str(e)) + + # Add this block to save the state to Redis + from core.session_manager import session_manager + if hasattr(self, 'user_session_id'): + session_manager.update_session_scanner(self.user_session_id, self) + return results def _query_providers_forensic(self, target: str, current_depth: int) -> Set[str]: diff --git a/core/session_manager.py b/core/session_manager.py index 6e53f2a..d74c397 100644 --- a/core/session_manager.py +++ b/core/session_manager.py @@ -105,6 +105,14 @@ class SessionManager: serialized_data = pickle.dumps(session_data) self.redis_client.setex(session_key, self.session_timeout, serialized_data) + def update_session_scanner(self, session_id: str, scanner: 'Scanner'): + """Updates just the scanner object in a session.""" + session_data = self._get_session_data(session_id) + if session_data: + session_data['scanner'] = scanner + # We don't need to update last_activity here, as that's for user interaction + self._save_session_data(session_id, session_data) + def get_session(self, session_id: str) -> Optional[Scanner]: """ Get scanner instance for a session from Redis.