fix: make SSL verification async

This commit is contained in:
Omar Aburub 2025-10-29 16:14:53 +03:00
parent 292be82754
commit 3bcf9a442a

View file

@ -16,6 +16,8 @@ from typing import (
Union, Union,
Literal, Literal,
) )
from fastapi.concurrency import run_in_threadpool
import aiohttp import aiohttp
import certifi import certifi
import validators import validators
@ -142,13 +144,13 @@ class RateLimitMixin:
class URLProcessingMixin: class URLProcessingMixin:
def _verify_ssl_cert(self, url: str) -> bool: async def _verify_ssl_cert(self, url: str) -> bool:
"""Verify SSL certificate for a URL.""" """Verify SSL certificate for a URL."""
return verify_ssl_cert(url) return await run_in_threadpool(verify_ssl_cert, url)
async def _safe_process_url(self, url: str) -> bool: async def _safe_process_url(self, url: str) -> bool:
"""Perform safety checks before processing a URL.""" """Perform safety checks before processing a URL."""
if self.verify_ssl and not self._verify_ssl_cert(url): if self.verify_ssl and not await self._verify_ssl_cert(url):
raise ValueError(f"SSL certificate verification failed for {url}") raise ValueError(f"SSL certificate verification failed for {url}")
await self._wait_for_rate_limit() await self._wait_for_rate_limit()
return True return True