Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
control_chan.setcallback(controll)
# write data to the master coming from the sub
forward_to_master_file = proxy_channelX.makefile("w")
# read bootstrap byte from sub, send it on to master
log("reading bootstrap byte from sub", spec.id)
initial = sub_io.read(1)
assert initial == "1".encode("ascii"), initial
log("forwarding bootstrap byte from sub", spec.id)
forward_to_master_file.write(initial)
# enter message forwarding loop
while True:
try:
message = Message.from_io(sub_io)
except EOFError:
log("EOF from sub, terminating proxying loop", spec.id)
break
message.to_io(forward_to_master_file)
# proxy_channelX will be closed from remote_exec's finalization code
def _thread_receiver(self):
def log(*msg):
self._trace("[receiver-thread]", *msg)
log("RECEIVERTHREAD: starting to run")
io = self._io
try:
while 1:
msg = Message.from_io(io)
log("received", msg)
with self._receivelock:
msg.received(self)
del msg
except (KeyboardInterrupt, GatewayReceivedTerminate):
pass
except EOFError:
log("EOF without prior gateway termination message")
self._error = self.exc_info()[1]
except Exception:
log(self._geterrortext(self.exc_info()))
log("finishing receiving thread")
# wake up and terminate any execution waiting to receive
self._channelfactory._finished_receiving()
log("terminating execution")
self._terminate_execution()
def test_wire_protocol(self):
for i, handler in enumerate(Message._types):
one = py.io.BytesIO()
data = "23".encode("ascii")
Message(i, 42, data).to_io(one)
two = py.io.BytesIO(one.getvalue())
msg = Message.from_io(two)
assert msg.msgcode == i
assert isinstance(msg, Message)
assert msg.channelid == 42
assert msg.data == data
assert isinstance(repr(msg), str)
control_chan.setcallback(controll)
# write data to the master coming from the sub
forward_to_master_file = proxy_channelX.makefile("w")
# read bootstrap byte from sub, send it on to master
log('reading bootstrap byte from sub', spec.id)
initial = sub_io.read(1)
assert initial == '1'.encode('ascii'), initial
log('forwarding bootstrap byte from sub', spec.id)
forward_to_master_file.write(initial)
# enter message forwarding loop
while True:
try:
message = Message.from_io(sub_io)
except EOFError:
log('EOF from sub, terminating proxying loop', spec.id)
break
message.to_io(forward_to_master_file)
# proxy_channelX will be closed from remote_exec's finalization code