mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-19 14:08:11 +00:00
fix write of empty messages, add loging to wire
This commit is contained in:
parent
398e46e9ff
commit
1da27dd558
@ -1,6 +1,7 @@
|
|||||||
import ustruct
|
import ustruct
|
||||||
from . import msg
|
from . import msg
|
||||||
from . import loop
|
from . import loop
|
||||||
|
from . import log
|
||||||
|
|
||||||
IFACE = const(0)
|
IFACE = const(0)
|
||||||
|
|
||||||
@ -58,7 +59,7 @@ def write_wire_msg(mtype, mbuf):
|
|||||||
mbuf = memoryview(mbuf)
|
mbuf = memoryview(mbuf)
|
||||||
data = rep[9:]
|
data = rep[9:]
|
||||||
|
|
||||||
while mbuf:
|
while True:
|
||||||
n = min(len(data), len(mbuf))
|
n = min(len(data), len(mbuf))
|
||||||
data[:n] = mbuf[:n]
|
data[:n] = mbuf[:n]
|
||||||
i = n
|
i = n
|
||||||
@ -67,10 +68,14 @@ def write_wire_msg(mtype, mbuf):
|
|||||||
i += 1
|
i += 1
|
||||||
yield from write_report(rep)
|
yield from write_report(rep)
|
||||||
mbuf = mbuf[n:]
|
mbuf = mbuf[n:]
|
||||||
|
if not mbuf:
|
||||||
|
break
|
||||||
data = rep[1:]
|
data = rep[1:]
|
||||||
|
|
||||||
|
|
||||||
def read(*types):
|
def read(*types):
|
||||||
|
if __debug__:
|
||||||
|
log.debug(__name__, 'Reading one of %s', types)
|
||||||
mtype, mbuf = yield from read_wire_msg()
|
mtype, mbuf = yield from read_wire_msg()
|
||||||
for t in types:
|
for t in types:
|
||||||
if t.wire_type == mtype:
|
if t.wire_type == mtype:
|
||||||
@ -80,6 +85,8 @@ def read(*types):
|
|||||||
|
|
||||||
|
|
||||||
def write(m):
|
def write(m):
|
||||||
|
if __debug__:
|
||||||
|
log.debug(__name__, 'Writing %s', m)
|
||||||
mbuf = m.dumps()
|
mbuf = m.dumps()
|
||||||
mtype = m.message_type.wire_type
|
mtype = m.message_type.wire_type
|
||||||
yield from write_wire_msg(mtype, mbuf)
|
yield from write_wire_msg(mtype, mbuf)
|
||||||
|
Loading…
Reference in New Issue
Block a user