From e0115fe8db85151508916400a56027e2ee298608 Mon Sep 17 00:00:00 2001 From: Kierre Date: Wed, 8 Oct 2025 13:52:24 -0400 Subject: [PATCH] Add federation self-testing --- vona/__main__.py | 14 ++++++++++++++ vona/federation/__init__.py | 3 +-- vona/globals/__init__.py | 2 ++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/vona/__main__.py b/vona/__main__.py index 9710165..f0da487 100644 --- a/vona/__main__.py +++ b/vona/__main__.py @@ -2,7 +2,9 @@ from flask import Flask, jsonify, request, redirect import vona.globals as globals from datetime import datetime import vona.config as config +import threading import logging +import os from vona.federation import server from vona.custom import custom @@ -100,4 +102,16 @@ async def client(): }) +def federation_self_test(): + try: + resp = globals.http_client.get(f"https://{config.server_name}/.well-known/matrix/server") + resp.raise_for_status() + print("[INFO] Federation self-test OK") + except Exception as e: + print(f"[FATL] Federation self-test failed: {e}") + os._exit(1) + +threading.Thread(target=federation_self_test).start() + + app.run(host=config.addr, port=config.port) diff --git a/vona/federation/__init__.py b/vona/federation/__init__.py index 8fca8fa..1d2ae8e 100644 --- a/vona/federation/__init__.py +++ b/vona/federation/__init__.py @@ -1,7 +1,6 @@ from flask import jsonify, Response, request, send_file, abort, Blueprint -from vona.config import * import vona.globals as globals -import httpx +from vona.config import * import json import time import os diff --git a/vona/globals/__init__.py b/vona/globals/__init__.py index b29948d..fa50899 100644 --- a/vona/globals/__init__.py +++ b/vona/globals/__init__.py @@ -4,11 +4,13 @@ import nacl.signing import hashlib import base64 import random +import httpx import copy import json import re version = "1.4.2" +http_client = httpx.Client(headers={"User-Agent": f"Vona/{version}"}) def canonical_json(value):