mirror of
https://github.com/LBRYFoundation/LBRY-Vault.git
synced 2025-08-26 23:13:25 +00:00
lnbase: fix read_message
This commit is contained in:
parent
6a8e5d5954
commit
1f6646fa25
1 changed files with 13 additions and 15 deletions
|
@ -579,6 +579,7 @@ class Peer(PrintError):
|
|||
self.network = network
|
||||
self.channel_db = channel_db
|
||||
self.path_finder = path_finder
|
||||
self.read_buffer = b''
|
||||
self.ping_time = 0
|
||||
self.futures = ["channel_accepted",
|
||||
"funding_signed",
|
||||
|
@ -623,24 +624,21 @@ class Peer(PrintError):
|
|||
async def read_message(self):
|
||||
rn_l, rk_l = self.rn()
|
||||
rn_m, rk_m = self.rn()
|
||||
read_buffer = b''
|
||||
while True:
|
||||
s = await self.reader.read(1)
|
||||
if not s:
|
||||
raise LightningPeerConnectionClosed()
|
||||
read_buffer += s
|
||||
if len(read_buffer) < 18:
|
||||
continue
|
||||
lc = read_buffer[:18]
|
||||
if len(self.read_buffer) >= 18:
|
||||
lc = self.read_buffer[:18]
|
||||
l = aead_decrypt(rk_l, rn_l, b'', lc)
|
||||
length = int.from_bytes(l, 'big')
|
||||
offset = 18 + length + 16
|
||||
if len(read_buffer) < offset:
|
||||
continue
|
||||
c = read_buffer[18:offset]
|
||||
read_buffer = read_buffer[offset:]
|
||||
if len(self.read_buffer) >= offset:
|
||||
c = self.read_buffer[18:offset]
|
||||
self.read_buffer = self.read_buffer[offset:]
|
||||
msg = aead_decrypt(rk_m, rn_m, b'', c)
|
||||
return msg
|
||||
s = await self.reader.read(2**10)
|
||||
if not s:
|
||||
raise LightningPeerConnectionClosed()
|
||||
self.read_buffer += s
|
||||
|
||||
async def handshake(self):
|
||||
hs = HandshakeState(self.pubkey)
|
||||
|
|
Loading…
Add table
Reference in a new issue