xrdp: fix for non 'new' cursor clients like rdesktop

ulab-next
Jay Sorg 12 years ago
parent bc2c50602e
commit 2039bbe397

@ -428,17 +428,20 @@ libxrdp_send_pointer(struct xrdp_session *session, int cache_idx,
int data_bytes; int data_bytes;
DEBUG(("libxrdp_send_pointer sending cursor")); DEBUG(("libxrdp_send_pointer sending cursor"));
if (bpp == 0)
{
bpp = 24;
}
/* error check */ /* error check */
if ((session->client_info->pointer_flags & 1) == 0) if ((session->client_info->pointer_flags & 1) == 0)
{ {
if (bpp != 0) if (bpp != 24)
{ {
g_writeln("libxrdp_send_pointer: error"); g_writeln("libxrdp_send_pointer: error");
return 1; return 1;
} }
} }
if ((bpp != 0) && (bpp == 15) && (bpp != 16) && if ((bpp == 15) && (bpp != 16) && (bpp != 24) && (bpp != 32))
(bpp != 24) && (bpp != 32))
{ {
g_writeln("libxrdp_send_pointer: error"); g_writeln("libxrdp_send_pointer: error");
return 1; return 1;
@ -446,7 +449,7 @@ libxrdp_send_pointer(struct xrdp_session *session, int cache_idx,
make_stream(s); make_stream(s);
init_stream(s, 8192); init_stream(s, 8192);
xrdp_rdp_init_data((struct xrdp_rdp *)session->rdp, s); xrdp_rdp_init_data((struct xrdp_rdp *)session->rdp, s);
if (bpp == 0) if ((session->client_info->pointer_flags & 1) == 0)
{ {
out_uint16_le(s, RDP_POINTER_COLOR); out_uint16_le(s, RDP_POINTER_COLOR);
out_uint16_le(s, 0); /* pad */ out_uint16_le(s, 0); /* pad */
@ -481,7 +484,6 @@ libxrdp_send_pointer(struct xrdp_session *session, int cache_idx,
} }
} }
break; break;
case 0:
case 24: case 24:
p = data; p = data;
for (i = 0; i < 32; i++) for (i = 0; i < 32; i++)

Loading…
Cancel
Save