GNServer 0.0.0.0.57__tar.gz → 0.0.0.0.58__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/_app.py +14 -8
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/_client.py +18 -2
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/models.py +5 -2
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer.egg-info/PKG-INFO +1 -1
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/PKG-INFO +1 -1
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/setup.py +1 -1
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/__init__.py +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/_cors_resolver.py +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/_crt.py +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/_func_params_validation.py +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/_routes.py +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer/_template_resolver.py +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer.egg-info/SOURCES.txt +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer.egg-info/dependency_links.txt +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer.egg-info/requires.txt +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/GNServer.egg-info/top_level.txt +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/LICENSE +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/GNServer/mmbConfig.json +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/LICENSE +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/MANIFEST.in +0 -0
- {gnserver-0.0.0.0.57 → gnserver-0.0.0.0.58}/setup.cfg +0 -0
@@ -42,7 +42,7 @@ logger.setLevel(logging.DEBUG)
|
|
42
42
|
|
43
43
|
console = logging.StreamHandler(sys.stdout)
|
44
44
|
console.setLevel(logging.DEBUG)
|
45
|
-
console.setFormatter(logging.Formatter("[
|
45
|
+
console.setFormatter(logging.Formatter("[%(name)s] %(levelname)s: %(message)s"))
|
46
46
|
logger.addHandler(console)
|
47
47
|
|
48
48
|
|
@@ -227,8 +227,11 @@ class App:
|
|
227
227
|
for qn, qvals in request.url.params.items():
|
228
228
|
if qn in kw:
|
229
229
|
continue
|
230
|
-
|
231
|
-
|
230
|
+
if isinstance(qvals, int):
|
231
|
+
kw[qn] = qvals
|
232
|
+
else:
|
233
|
+
raw = qvals if len(qvals) > 1 else qvals[0]
|
234
|
+
kw[qn] = _convert_value(raw, _ann(qn), str)
|
232
235
|
|
233
236
|
|
234
237
|
params = set(sig.parameters.keys())
|
@@ -349,13 +352,15 @@ class App:
|
|
349
352
|
request.client._data['domain'] = domain
|
350
353
|
except:
|
351
354
|
asyncio.create_task(self.sendRawResponse(stream_id, AllGNFastCommands.KDCDecryptRequestFailed().serialize(mode=mode)))
|
355
|
+
self._buffer.pop(event.stream_id, None)
|
356
|
+
return
|
352
357
|
|
353
358
|
else:
|
354
359
|
raise Exception('Не удалось расшифровать от KDC')
|
355
360
|
|
356
361
|
request.stream_id = stream_id # type: ignore
|
362
|
+
logger.debug(f'Request: {request.method} {request.url}')
|
357
363
|
asyncio.create_task(self._handle_request(request, mode))
|
358
|
-
logger.debug(f'Отправлена задача разрешения пакета {request} route -> {request.route}')
|
359
364
|
|
360
365
|
self._buffer.pop(event.stream_id, None)
|
361
366
|
return
|
@@ -397,7 +402,6 @@ class App:
|
|
397
402
|
queue.put_nowait(None)
|
398
403
|
self._buffer.pop(event.stream_id)
|
399
404
|
self._streams.pop(event.stream_id)
|
400
|
-
logger.debug(f'Закрываем стрим [{event.stream_id}]')
|
401
405
|
return
|
402
406
|
|
403
407
|
queue.put_nowait(request)
|
@@ -439,12 +443,11 @@ class App:
|
|
439
443
|
return
|
440
444
|
|
441
445
|
await self.sendResponse(request, response, mode)
|
442
|
-
logger.debug(f'Отправлен на сервер ответ -> {response.command} {response.payload if response.payload and len(str(response.payload)) < 200 else ''}')
|
443
446
|
except Exception as e:
|
444
447
|
if isinstance(e, (GNRequest, GNFastCommand)):
|
445
448
|
await self.sendResponse(request, e, mode)
|
446
449
|
else:
|
447
|
-
logger.error('
|
450
|
+
logger.error('InternalServerError:\n' + traceback.format_exc())
|
448
451
|
|
449
452
|
await self.sendResponse(request, AllGNFastCommands.InternalServerError(), mode)
|
450
453
|
|
@@ -452,6 +455,9 @@ class App:
|
|
452
455
|
|
453
456
|
async def sendResponse(self, request: GNRequest, response: GNResponse, mode: int, end_stream: bool = True):
|
454
457
|
await response.assembly()
|
458
|
+
|
459
|
+
|
460
|
+
logger.debug(f'Response: {request.method} {request.url} -> {response.command} {response.payload if len(str(response.payload)) < 256 else ''}')
|
455
461
|
|
456
462
|
blob = response.serialize(mode)
|
457
463
|
|
@@ -508,7 +514,7 @@ class App:
|
|
508
514
|
if run is not None:
|
509
515
|
await run()
|
510
516
|
|
511
|
-
|
517
|
+
logger.debug('Server startup completed')
|
512
518
|
if wait:
|
513
519
|
await asyncio.Event().wait()
|
514
520
|
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import os
|
2
|
+
import sys
|
2
3
|
import time
|
3
4
|
import httpx
|
4
5
|
import asyncio
|
@@ -87,6 +88,21 @@ from ._crt import crt_client
|
|
87
88
|
from .models import KDCObject
|
88
89
|
|
89
90
|
|
91
|
+
|
92
|
+
|
93
|
+
import logging
|
94
|
+
|
95
|
+
logger = logging.getLogger("GNAsyncClient")
|
96
|
+
logger.setLevel(logging.DEBUG)
|
97
|
+
|
98
|
+
console = logging.StreamHandler(sys.stdout)
|
99
|
+
console.setLevel(logging.DEBUG)
|
100
|
+
console.setFormatter(logging.Formatter("[%(name)s] %(levelname)s: %(message)s"))
|
101
|
+
logger.addHandler(console)
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
|
90
106
|
_log_levels: dict[str, int] = {
|
91
107
|
"NOTSET": 0,
|
92
108
|
"DEBUG": 10,
|
@@ -263,8 +279,9 @@ class AsyncClient:
|
|
263
279
|
|
264
280
|
for f in self.__request_callbacks.values():
|
265
281
|
asyncio.create_task(f(request))
|
266
|
-
|
282
|
+
logger.debug(f'Request: {request.method} {request.url}')
|
267
283
|
r = await c.asyncRequest(request)
|
284
|
+
logger.debug(f'Response: {request.method} {request.url} -> {r.command} {r.payload if len(str(r.payload)) < 256 else ''}')
|
268
285
|
|
269
286
|
for f in self.__response_callbacks.values():
|
270
287
|
asyncio.create_task(f(r))
|
@@ -574,7 +591,6 @@ class RawQuicClient(QuicConnectionProtocol):
|
|
574
591
|
if q is None:
|
575
592
|
break
|
576
593
|
sid, blob, end_stream = q.popleft()
|
577
|
-
print(f'Отправка стрима {sid}')
|
578
594
|
self._quic.send_stream_data(sid, blob, end_stream=end_stream)
|
579
595
|
self.transmit()
|
580
596
|
self._activity()
|
@@ -39,6 +39,8 @@ class KDCObject:
|
|
39
39
|
for i in self._requested_domains:
|
40
40
|
if i in servers_keys:
|
41
41
|
self._requested_domains.remove(i)
|
42
|
+
else:
|
43
|
+
servers_keys = {}
|
42
44
|
|
43
45
|
if len(self._requested_domains) > 0:
|
44
46
|
payload = self._requested_domains
|
@@ -48,11 +50,12 @@ class KDCObject:
|
|
48
50
|
print(f'ERROR: {r.command} {r.payload}')
|
49
51
|
raise r
|
50
52
|
|
51
|
-
servers_keys = r.payload
|
52
|
-
|
53
53
|
if servers_keys is None:
|
54
54
|
print(f'ERROR: {r.command} {r.payload}')
|
55
55
|
raise r
|
56
|
+
|
57
|
+
servers_keys.update(r.payload)
|
58
|
+
|
56
59
|
|
57
60
|
self._servers_keys.update(servers_keys)
|
58
61
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|