Update app.py

This commit is contained in:
2026-05-05 21:49:04 +02:00
parent d5afb74c73
commit 892315e976
+19 -3
View File
@@ -68,7 +68,6 @@ logging.getLogger("urllib3").setLevel(logging.WARNING)
logging.getLogger("gunicorn.access").setLevel(logging.WARNING)
logger = logging.getLogger("matrix-interceptor")
logger.propagate = False
def now_iso():
return datetime.now(timezone.utc).isoformat()
@@ -245,7 +244,7 @@ def seed_known_users():
def periodic_seed():
while True:
seed_known_users()
time.sleep(300)
time.sleep(60)
# ============================================================
# FALLBACK
@@ -282,6 +281,21 @@ def is_user_in_local_rooms(user_id):
return False
# ============================================================
# FALLBACK RETRY (CRITICAL FOR CONSISTENCY)
# ============================================================
def fallback_check_with_retry(user_id):
"""
Retry membership check to handle Matrix eventual consistency.
User join may not be immediately visible via API.
"""
for _ in range(2): # 🔥 2 attempts
if is_user_in_local_rooms(user_id):
return True
time.sleep(0.5) # 🔥 short delay
return False
# ============================================================
# DM DETECTION
# ============================================================
@@ -425,10 +439,12 @@ def invite(room_id, event_id):
if not is_known_user(sender):
if is_user_in_local_rooms(sender):
if fallback_check_with_retry(sender):
remember_user(sender)
with METRICS_LOCK:
METRICS["invite_allowed"] += 1
return forward_request(
"PUT",
f"{config.tuwunel_url}/_matrix/federation/v2/invite/{room_id}/{event_id}",