40 lines
950 B
Python
40 lines
950 B
Python
|
from aiohttp import web
|
||
|
from p2psc.pubkey_handler import PubkeyHandler
|
||
|
from p2psc.p2psc import P2psc
|
||
|
|
||
|
class P2pLayer
|
||
|
def __init__(self):
|
||
|
self.p2pcrypt = False
|
||
|
config = getConfig()
|
||
|
if config.website.p2pcrypt:
|
||
|
self.p2pcrypt = True
|
||
|
if not self.p2pcrypt:
|
||
|
return
|
||
|
self.handler = PubkeyHandler()
|
||
|
self.p2p = P2psc(self.handler, self.handler.get_myid())
|
||
|
|
||
|
@web.middleware
|
||
|
async def p2p_middle(self, request, handler):
|
||
|
if not p2pscrypr:
|
||
|
return await handler(request)
|
||
|
|
||
|
if request.headers.get('P2pHandShake', None):
|
||
|
resturen await self.p2p_handshake(request)
|
||
|
|
||
|
if request.header.get('P2pdata', None):
|
||
|
request = await self.p2p_decode_request(request)
|
||
|
resp = await handler(request)
|
||
|
return await self.p2p_encode_response(resp)
|
||
|
|
||
|
return handler(request)
|
||
|
|
||
|
async def p2p_handshake(self, request):
|
||
|
pass
|
||
|
|
||
|
async def p2p_decode_request(self, request):
|
||
|
pass
|
||
|
|
||
|
async def p2p_encode_response(self, response):
|
||
|
return response
|
||
|
|