From 9d12c25fd3908b0056067dd0aa6b4b6bbccf0754 Mon Sep 17 00:00:00 2001 From: Vic Lee Date: Mon, 8 Aug 2011 14:54:46 +0800 Subject: [PATCH] libfreerdp-core:transport: fix nonblocking fregmented packet receiving. --- libfreerdp-core/transport.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libfreerdp-core/transport.c b/libfreerdp-core/transport.c index 454888847..b6a513100 100644 --- a/libfreerdp-core/transport.c +++ b/libfreerdp-core/transport.c @@ -126,9 +126,9 @@ int transport_read(rdpTransport* transport, STREAM* s) while (True) { if (transport->layer == TRANSPORT_LAYER_TLS) - status = tls_read(transport->tls, s->data, s->size); + status = tls_read(transport->tls, stream_get_tail(s), stream_get_left(s)); else if (transport->layer == TRANSPORT_LAYER_TCP) - status = tcp_read(transport->tcp, s->data, s->size); + status = tcp_read(transport->tcp, stream_get_tail(s), stream_get_left(s)); if (status == 0 && transport->blocking) { @@ -239,7 +239,8 @@ int transport_check_fds(rdpTransport* transport) if (length == 0) { - printf("transport_check_fds: protocol error, not a TPKT header (%d).\n", header); + printf("transport_check_fds: protocol error, not a TPKT or Fast Path header.\n"); + freerdp_hexdump(stream_get_head(transport->recv_buffer), pos); return -1; }