| 
8 | 8 | 
 
  | 
9 | 9 | import asyncio  | 
10 | 10 | import logging  | 
11 |  | -from collections.abc import Awaitable, Callable  | 
12 | 11 | from pathlib import Path  | 
13 | 12 | from secrets import token_urlsafe  | 
14 | 13 | 
 
  | 
 | 
61 | 60 | logger = logging.getLogger(__name__)  | 
62 | 61 | 
 
  | 
63 | 62 | 
 
  | 
64 |  | -@web.middleware  | 
65 |  | -async def server_version_middleware(  | 
66 |  | -    request: web.Request,  | 
67 |  | -    handler: Callable[[web.Request], Awaitable[web.StreamResponse]],  | 
68 |  | -) -> web.StreamResponse:  | 
69 |  | -    """Add the version of Aleph-VM in the HTTP headers of the responses."""  | 
70 |  | -    resp: web.StreamResponse = await handler(request)  | 
71 |  | -    resp.headers.update(  | 
72 |  | -        {"Server": f"aleph-vm/{__version__}"},  | 
73 |  | -    )  | 
74 |  | -    return resp  | 
75 |  | - | 
76 |  | - | 
77 | 63 | @web.middleware  | 
78 | 64 | async def error_middleware(request, handler) -> web.Response:  | 
79 | 65 |     "Ensure we always return a JSON response for errors."  | 
@@ -103,13 +89,19 @@ async def error_middleware(request, handler) -> web.Response:  | 
103 | 89 |     assert False, "unreachable"  | 
104 | 90 | 
 
  | 
105 | 91 | 
 
  | 
 | 92 | +async def on_prepare_server_version(request: web.Request, response: web.Response) -> None:  | 
 | 93 | +    """Add the version of Aleph-VM in the HTTP headers of the responses."""  | 
 | 94 | +    response.headers["Server"] = f"aleph-vm/{__version__}"  | 
 | 95 | + | 
 | 96 | + | 
106 | 97 | async def http_not_found(request: web.Request):  | 
107 | 98 |     """Return a 404 error for unknown URLs."""  | 
108 | 99 |     return web.HTTPNotFound()  | 
109 | 100 | 
 
  | 
110 | 101 | 
 
  | 
111 | 102 | def setup_webapp():  | 
112 |  | -    app = web.Application(middlewares=[server_version_middleware, error_middleware])  | 
 | 103 | +    app = web.Application(middlewares=[error_middleware])  | 
 | 104 | +    app.on_response_prepare.append(on_prepare_server_version)  | 
113 | 105 |     cors = setup(  | 
114 | 106 |         app,  | 
115 | 107 |         defaults={  | 
 | 
0 commit comments