core: handle transport->recv_callback correctly
the boolean return value of transport->recv_callback was directly assigned to "int status" in transport_check_fds. now status is set to -1 if transport_check_fds returns False. this was also the reason for the long delays on logoff followed by these messages: "SSL_read: I/O error" (with --sec nla|tls) "recv: Connection reset by peer" + "send: Broken pipe" (with --sec rdp)
This commit is contained in:
parent
b1833f26ea
commit
e0cf2a83f7
@ -347,7 +347,10 @@ int transport_check_fds(rdpTransport* transport)
|
||||
stream_set_pos(received, length);
|
||||
stream_seal(received);
|
||||
stream_set_pos(received, 0);
|
||||
status = transport->recv_callback(transport, received, transport->recv_extra);
|
||||
|
||||
if (transport->recv_callback(transport, received, transport->recv_extra) == False)
|
||||
status = -1;
|
||||
|
||||
stream_free(received);
|
||||
|
||||
if (status < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user