fix attempt

This commit is contained in:
overcuriousity 2025-09-12 14:57:09 +02:00
parent d2e4c6ee49
commit 2d62191aa0
3 changed files with 15 additions and 0 deletions

1
app.py
View File

@ -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)}")

View File

@ -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]:

View File

@ -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.