From: <as...@us...> - 2009-08-27 07:30:44
|
Revision: 1508 http://rdesktop.svn.sourceforge.net/rdesktop/?rev=1508&view=rev Author: astrand Date: 2009-08-27 07:30:32 +0000 (Thu, 27 Aug 2009) Log Message: ----------- process_data_pdu never returns True nowadays, so the comment about the disc variable is incorrect. Removed the variable, since it's always False. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2009-08-26 15:20:32 UTC (rev 1507) +++ rdesktop/trunk/rdp.c 2009-08-27 07:30:32 UTC (rev 1508) @@ -1413,7 +1413,6 @@ rdp_loop(RD_BOOL * deactivated, uint32 * ext_disc_reason) { uint8 type; - RD_BOOL disc = False; /* True when a disconnect PDU was received */ RD_BOOL cont = True; STREAM s; @@ -1436,15 +1435,13 @@ return process_redirect_pdu(s); break; case RDP_PDU_DATA: - disc = process_data_pdu(s, ext_disc_reason); + process_data_pdu(s, ext_disc_reason); break; case 0: break; default: unimpl("PDU %d\n", type); } - if (disc) - return False; cont = g_next_packet < s->end; } return True; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <js...@us...> - 2009-10-19 23:03:03
|
Revision: 1519 http://rdesktop.svn.sourceforge.net/rdesktop/?rev=1519&view=rev Author: jsorg71 Date: 2009-10-19 23:02:52 +0000 (Mon, 19 Oct 2009) Log Message: ----------- send the correct num_caps in rdp_send_confirm_active, re-enable glyph cache Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2009-10-14 13:52:07 UTC (rev 1518) +++ rdesktop/trunk/rdp.c 2009-10-19 23:02:52 UTC (rev 1519) @@ -859,7 +859,7 @@ RDP_CAPLEN_ACTIVATE + RDP_CAPLEN_CONTROL + RDP_CAPLEN_POINTER + RDP_CAPLEN_SHARE + RDP_CAPLEN_BRUSHCACHE + 0x58 + 0x08 + 0x08 + 0x34 /* unknown caps */ + - 4 /* w2k fix, why? */ ; + 4 /* w2k fix, sessionid */ ; s = sec_init(sec_flags, 6 + 14 + caplen + sizeof(RDP_SOURCE)); @@ -873,7 +873,7 @@ out_uint16_le(s, caplen); out_uint8p(s, RDP_SOURCE, sizeof(RDP_SOURCE)); - out_uint16_le(s, 0xd); /* num_caps */ + out_uint16_le(s, 0xe); /* num_caps */ out_uint8s(s, 2); /* pad */ rdp_out_general_caps(s); @@ -887,10 +887,10 @@ rdp_out_share_caps(s); rdp_out_brushcache_caps(s); - rdp_out_unknown_caps(s, 0x0d, 0x58, caps_0x0d); /* international? */ - rdp_out_unknown_caps(s, 0x0c, 0x08, caps_0x0c); - rdp_out_unknown_caps(s, 0x0e, 0x08, caps_0x0e); - rdp_out_unknown_caps(s, 0x10, 0x34, caps_0x10); /* glyph cache? */ + rdp_out_unknown_caps(s, 0x0d, 0x58, caps_0x0d); /* CAPSTYPE_INPUT */ + rdp_out_unknown_caps(s, 0x0c, 0x08, caps_0x0c); /* CAPSTYPE_SOUND */ + rdp_out_unknown_caps(s, 0x0e, 0x08, caps_0x0e); /* CAPSTYPE_FONT */ + rdp_out_unknown_caps(s, 0x10, 0x34, caps_0x10); /* CAPSTYPE_GLYPHCACHE */ s_mark_end(s); sec_send(s, sec_flags); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <as...@us...> - 2010-01-07 18:52:53
|
Revision: 1527 http://rdesktop.svn.sourceforge.net/rdesktop/?rev=1527&view=rev Author: astrand Date: 2010-01-07 18:52:26 +0000 (Thu, 07 Jan 2010) Log Message: ----------- Indented on Fedora 11 Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2010-01-07 18:42:47 UTC (rev 1526) +++ rdesktop/trunk/rdp.c 2010-01-07 18:52:26 UTC (rev 1527) @@ -1058,8 +1058,8 @@ { uint16 width, height, cache_idx, masklen, datalen; sint16 x, y; - uint8 * mask; - uint8 * data; + uint8 *mask; + uint8 *data; RD_HCURSOR cursor; in_uint16_le(s, cache_idx); @@ -1073,8 +1073,7 @@ in_uint8p(s, mask, masklen); if ((width != 32) || (height != 32)) { - warning("process_colour_pointer_common: " - "width %d height %d\n", width, height); + warning("process_colour_pointer_common: " "width %d height %d\n", width, height); } /* sometimes x or y is out of bounds */ x = MAX(x, 0); @@ -1094,7 +1093,7 @@ } /* Process a New Pointer PDU - these pointers have variable bit depth */ -void +void process_new_pointer_pdu(STREAM s) { int xor_bpp; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <as...@us...> - 2010-01-11 13:11:25
|
Revision: 1530 http://rdesktop.svn.sourceforge.net/rdesktop/?rev=1530&view=rev Author: astrand Date: 2010-01-11 13:11:19 +0000 (Mon, 11 Jan 2010) Log Message: ----------- Added comments about the TS_EXTENDED_INFO_PACKET variables. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2010-01-07 20:12:04 UTC (rev 1529) +++ rdesktop/trunk/rdp.c 2010-01-11 13:11:19 UTC (rev 1530) @@ -429,32 +429,32 @@ { out_uint16_le(s, 0); } - out_uint16_le(s, 2); - out_uint16_le(s, len_ip + 2); /* Length of client ip */ - rdp_out_unistr(s, ipaddr, len_ip); - out_uint16_le(s, len_dll + 2); - rdp_out_unistr(s, "C:\\WINNT\\System32\\mstscax.dll", len_dll); + /* TS_EXTENDED_INFO_PACKET */ + out_uint16_le(s, 2); /* clientAddressFamily = AF_INET */ + out_uint16_le(s, len_ip + 2); /* cbClientAddress, Length of client ip */ + rdp_out_unistr(s, ipaddr, len_ip); /* clientAddress */ + out_uint16_le(s, len_dll + 2); /* cbClientDir */ + rdp_out_unistr(s, "C:\\WINNT\\System32\\mstscax.dll", len_dll); /* clientDir */ + /* TS_TIME_ZONE_INFORMATION */ tzone = (mktime(gmtime(&t)) - mktime(localtime(&t))) / 60; out_uint32_le(s, tzone); - rdp_out_unistr(s, "GTB, normaltid", 2 * strlen("GTB, normaltid")); out_uint8s(s, 62 - 2 * strlen("GTB, normaltid")); - out_uint32_le(s, 0x0a0000); out_uint32_le(s, 0x050000); out_uint32_le(s, 3); out_uint32_le(s, 0); out_uint32_le(s, 0); - rdp_out_unistr(s, "GTB, sommartid", 2 * strlen("GTB, sommartid")); out_uint8s(s, 62 - 2 * strlen("GTB, sommartid")); - out_uint32_le(s, 0x30000); out_uint32_le(s, 0x050000); out_uint32_le(s, 2); out_uint32(s, 0); out_uint32_le(s, 0xffffffc4); + + /* Rest of TS_EXTENDED_INFO_PACKET */ out_uint32_le(s, 0xfffffffe); out_uint32_le(s, g_rdp5_performanceflags); out_uint16(s, 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <as...@us...> - 2010-01-12 07:50:43
|
Revision: 1531 http://rdesktop.svn.sourceforge.net/rdesktop/?rev=1531&view=rev Author: astrand Date: 2010-01-12 07:50:36 +0000 (Tue, 12 Jan 2010) Log Message: ----------- Commented DaylightBias and clientSessionId fields. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2010-01-11 13:11:19 UTC (rev 1530) +++ rdesktop/trunk/rdp.c 2010-01-12 07:50:36 UTC (rev 1531) @@ -452,10 +452,10 @@ out_uint32_le(s, 0x050000); out_uint32_le(s, 2); out_uint32(s, 0); - out_uint32_le(s, 0xffffffc4); + out_uint32_le(s, 0xffffffc4); /* DaylightBias */ /* Rest of TS_EXTENDED_INFO_PACKET */ - out_uint32_le(s, 0xfffffffe); + out_uint32_le(s, 0xfffffffe); /* clientSessionId, consider changing to 0 */ out_uint32_le(s, g_rdp5_performanceflags); out_uint16(s, 0); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <as...@us...> - 2010-01-12 16:27:48
|
Revision: 1540 http://rdesktop.svn.sourceforge.net/rdesktop/?rev=1540&view=rev Author: astrand Date: 2010-01-12 14:52:04 +0000 (Tue, 12 Jan 2010) Log Message: ----------- Need to include ssl.h now that we are using ssl_hmac_md5. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2010-01-12 10:34:38 UTC (rev 1539) +++ rdesktop/trunk/rdp.c 2010-01-12 14:52:04 UTC (rev 1540) @@ -23,6 +23,7 @@ #include <unistd.h> #endif #include "rdesktop.h" +#include "ssl.h" #ifdef HAVE_ICONV #ifdef HAVE_ICONV_H This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-11-26 11:06:35
|
Revision: 1758 http://sourceforge.net/p/rdesktop/code/1758 Author: hean01 Date: 2013-11-26 11:06:32 +0000 (Tue, 26 Nov 2013) Log Message: ----------- Do not perform an actual redirect if server redirect pdu is flagged as informational. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-11-26 08:21:06 UTC (rev 1757) +++ rdesktop/trunk/rdp.c 2013-11-26 11:06:32 UTC (rev 1758) @@ -1484,6 +1484,8 @@ { uint32 len; + g_redirect = True; + /* these 2 bytes are unknown, seem to be zeros */ in_uint8s(s, 2); @@ -1554,7 +1556,9 @@ if (g_redirect_flags & PDU_REDIRECT_INFORMATIONAL) { - warning("PDU_REDIRECT_INFORMATIONAL set\n"); + /* By spec this is only for information and doesn't mean that an actual + redirect should be performed. How it should be used is not mentioned. */ + g_redirect = False; } if (g_redirect_flags & PDU_REDIRECT_HAS_TARGET_FQDN) @@ -1572,8 +1576,6 @@ warning("PDU_REDIRECT_HAS_TARGET_IP_ARRAY set\n"); } - g_redirect = True; - return True; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-11-26 11:47:19
|
Revision: 1761 http://sourceforge.net/p/rdesktop/code/1761 Author: hean01 Date: 2013-11-26 11:47:16 +0000 (Tue, 26 Nov 2013) Log Message: ----------- Fixe bug with size of destination for unistr convert. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-11-26 11:40:45 UTC (rev 1760) +++ rdesktop/trunk/rdp.c 2013-11-26 11:47:16 UTC (rev 1761) @@ -1503,7 +1503,7 @@ g_redirect_server = xmalloc(g_redirect_server_len); /* read ip string */ - rdp_in_unistr(s, g_redirect_server, sizeof(g_redirect_server), g_redirect_server_len); + rdp_in_unistr(s, g_redirect_server, g_redirect_server_len, g_redirect_server_len); } if (g_redirect_flags & PDU_REDIRECT_HAS_LOAD_BALANCE_INFO) @@ -1576,7 +1576,7 @@ g_redirect_server = xmalloc(g_redirect_server_len); /* read fqdn string */ - rdp_in_unistr(s, g_redirect_server, sizeof(g_redirect_server), g_redirect_server_len); + rdp_in_unistr(s, g_redirect_server, g_redirect_server_len, g_redirect_server_len); } if (g_redirect_flags & PDU_REDIRECT_HAS_TARGET_NETBIOS) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-11-28 11:18:14
|
Revision: 1763 http://sourceforge.net/p/rdesktop/code/1763 Author: hean01 Date: 2013-11-28 11:18:11 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Revert an issue introduced by commit r1757 due to unclear specs. The data is processed in lower layers in the protocol stack. Revision Links: -------------- http://sourceforge.net/p/rdesktop/code/1757 Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-11-28 11:10:35 UTC (rev 1762) +++ rdesktop/trunk/rdp.c 2013-11-28 11:18:11 UTC (rev 1763) @@ -1632,8 +1632,6 @@ return process_redirect_pdu(s); break; case RDP_PDU_ENHANCED_REDIRECT: - in_uint8s(s, 6); /* skip shareControlHeader */ - in_uint8s(s, 2); /* skip pad2Octets */ return process_redirect_pdu(s); break; case RDP_PDU_DATA: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-11-28 11:33:54
|
Revision: 1764 http://sourceforge.net/p/rdesktop/code/1764 Author: hean01 Date: 2013-11-28 11:33:50 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Fix issue while parsing the redirect packet to match the spec. However there is a change in the length compared to current implementation which has provenly been working, so lets handle it with a flag for now. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-11-28 11:18:11 UTC (rev 1763) +++ rdesktop/trunk/rdp.c 2013-11-28 11:33:50 UTC (rev 1764) @@ -72,6 +72,8 @@ extern uint8 *g_redirect_lb_info; extern uint32 g_redirect_lb_info_len; extern uint32 g_redirect_flags; +extern uint32 g_redirect_session_id; + /* END Session Directory support */ extern uint32 g_reconnect_logonid; @@ -1481,15 +1483,35 @@ /* Process redirect PDU from Session Directory */ static RD_BOOL -process_redirect_pdu(STREAM s /*, uint32 * ext_disc_reason */ ) +process_redirect_pdu(STREAM s, RD_BOOL enhanced_redirect /*, uint32 * ext_disc_reason */ ) { uint32 len; + uint16 redirect_identifier; g_redirect = True; /* these 2 bytes are unknown, seem to be zeros */ in_uint8s(s, 2); + /* FIXME: Previous implementation only reads 4 bytes which has been working + but todays spec says something different. Investigate and retest + server redirection using WTS 2003 cluster. + */ + + if (enhanced_redirect) + { + /* read identifier */ + in_uint16_le(s, redirect_identifier); + if (redirect_identifier != 0x0400) + error("Protocol error in server redirection, unexpected data."); + + /* FIXME: skip total length */ + in_uint8s(s, 2); + + /* read session_id */ + in_uint32_le(s, g_redirect_session_id); + } + /* read connection flags */ in_uint32_le(s, g_redirect_flags); @@ -1629,10 +1651,10 @@ *deactivated = True; break; case RDP_PDU_REDIRECT: - return process_redirect_pdu(s); + return process_redirect_pdu(s, False); break; case RDP_PDU_ENHANCED_REDIRECT: - return process_redirect_pdu(s); + return process_redirect_pdu(s, True); break; case RDP_PDU_DATA: process_data_pdu(s, ext_disc_reason); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-11-28 14:47:32
|
Revision: 1767 http://sourceforge.net/p/rdesktop/code/1767 Author: hean01 Date: 2013-11-28 14:47:29 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Missed to run indent-all script of previous script. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-11-28 14:46:14 UTC (rev 1766) +++ rdesktop/trunk/rdp.c 2013-11-28 14:47:29 UTC (rev 1767) @@ -343,7 +343,7 @@ int len_program = 2 * strlen(program); int len_directory = 2 * strlen(directory); - /* length of strings in TS_EXTENDED_PACKET includes null terminator*/ + /* length of strings in TS_EXTENDED_PACKET includes null terminator */ int len_ip = 2 * strlen(ipaddr) + 2; int len_dll = 2 * strlen("C:\\WINNT\\System32\\mstscax.dll") + 2; @@ -379,8 +379,7 @@ DEBUG_RDP5(("Sending RDP5-style Logon packet\n")); - packetlen = - + packetlen = /* size of TS_INFO_PACKET */ 4 + /* CodePage */ 4 + /* flags */ @@ -389,36 +388,30 @@ 2 + /* cbPassword */ 2 + /* cbAlternateShell */ 2 + /* cbWorkingDir */ - - 2 + len_domain + /* Domain */ - 2 + len_user + /* UserName */ - 2 + len_password + /* Password */ - 2 + len_program + /* AlternateShell */ - 2 + len_directory + /* WorkingDir */ - + 2 + len_domain + /* Domain */ + 2 + len_user + /* UserName */ + 2 + len_password + /* Password */ + 2 + len_program + /* AlternateShell */ + 2 + len_directory + /* WorkingDir */ /* size of TS_EXTENDED_INFO_PACKET */ - 2 + /* clientAdressFamily */ - 2 + /* cbClientAdress */ - len_ip + /* clientAddress */ - 2 + /* cbClientDir */ - len_dll + /* clientDir */ - + 2 + /* clientAdressFamily */ + 2 + /* cbClientAdress */ + len_ip + /* clientAddress */ + 2 + /* cbClientDir */ + len_dll + /* clientDir */ /* size of TS_TIME_ZONE_INFORMATION */ - 4 + /* Bias, (UTC = local time + bias */ - 64 + /* StandardName, 32 unicode char array, Descriptive standard time on client */ - 16 + /* StandardDate*/ - 4 + /* StandardBias */ - 64 + /* DaylightName, 32 unicode char array */ - 16 + /* DaylightDate */ - 4 + /* DaylightBias */ - 4 + /* clientSessionId */ - - 4 + /* performanceFlags */ - - 2 + /* cbAutoReconnectCookie, either 0 or 0x001c */ - + 4 + /* Bias, (UTC = local time + bias */ + 64 + /* StandardName, 32 unicode char array, Descriptive standard time on client */ + 16 + /* StandardDate */ + 4 + /* StandardBias */ + 64 + /* DaylightName, 32 unicode char array */ + 16 + /* DaylightDate */ + 4 + /* DaylightBias */ + 4 + /* clientSessionId */ + 4 + /* performanceFlags */ + 2 + /* cbAutoReconnectCookie, either 0 or 0x001c */ /* size of ARC_CS_PRIVATE_PACKET */ - 28; /* autoReconnectCookie */ + 28; /* autoReconnectCookie */ s = sec_init(sec_flags, packetlen); @@ -436,33 +429,33 @@ if (0 < len_domain) rdp_out_unistr(s, domain, len_domain); else - out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ + out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ if (0 < len_user) rdp_out_unistr(s, user, len_user); else - out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ + out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ if (0 < len_password) rdp_out_unistr(s, password, len_password); else - out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ + out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ if (0 < len_program) rdp_out_unistr(s, program, len_program); else - out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ + out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ if (0 < len_directory) rdp_out_unistr(s, directory, len_directory); else - out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ + out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ /* TS_EXTENDED_INFO_PACKET */ - out_uint16_le(s, 2); /* clientAddressFamily = AF_INET */ - out_uint16_le(s, len_ip); /* cbClientAddress, Length of client ip */ - rdp_out_unistr(s, ipaddr, len_ip); /* clientAddress */ - out_uint16_le(s, len_dll ); /* cbClientDir */ + out_uint16_le(s, 2); /* clientAddressFamily = AF_INET */ + out_uint16_le(s, len_ip); /* cbClientAddress, Length of client ip */ + rdp_out_unistr(s, ipaddr, len_ip); /* clientAddress */ + out_uint16_le(s, len_dll); /* cbClientDir */ rdp_out_unistr(s, "C:\\WINNT\\System32\\mstscax.dll", len_dll); /* clientDir */ /* TS_TIME_ZONE_INFORMATION */ @@ -484,7 +477,7 @@ out_uint32_le(s, 0xffffffc4); /* DaylightBias */ /* Rest of TS_EXTENDED_INFO_PACKET */ - out_uint32_le(s, 0); /* clientSessionId (Ignored by server MUST be 0) */ + out_uint32_le(s, 0); /* clientSessionId (Ignored by server MUST be 0) */ out_uint32_le(s, g_rdp5_performanceflags); /* Client Auto-Reconnect */ @@ -1580,7 +1573,7 @@ { /* the information in this blob is either a password or a cookie that should be passed though as blob and not parsed as a unicode string */ - + /* read blob length */ in_uint32_le(s, g_redirect_cookie_len); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-11-28 15:13:06
|
Revision: 1768 http://sourceforge.net/p/rdesktop/code/1768 Author: hean01 Date: 2013-11-28 15:13:04 +0000 (Thu, 28 Nov 2013) Log Message: ----------- Use redirect cookie instead of password if available. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-11-28 14:47:29 UTC (rev 1767) +++ rdesktop/trunk/rdp.c 2013-11-28 15:13:04 UTC (rev 1768) @@ -379,6 +379,12 @@ DEBUG_RDP5(("Sending RDP5-style Logon packet\n")); + if (g_redirect_cookie_len > 0) + { + len_password = g_redirect_cookie_len; + len_password -= 2; /* substract 2 bytes which is added below */ + } + packetlen = /* size of TS_INFO_PACKET */ 4 + /* CodePage */ @@ -437,7 +443,16 @@ out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ if (0 < len_password) - rdp_out_unistr(s, password, len_password); + { + if (0 < g_redirect_cookie_len) + { + out_uint8p(s, g_redirect_cookie, g_redirect_cookie_len); + } + else + { + rdp_out_unistr(s, password, len_password); + } + } else out_uint16_le(s, 0); /* mandatory 2 bytes null terminator */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-12-04 11:52:37
|
Revision: 1771 http://sourceforge.net/p/rdesktop/code/1771 Author: hean01 Date: 2013-12-04 11:52:33 +0000 (Wed, 04 Dec 2013) Log Message: ----------- Use g_redirect flag when creating a logon packet and clear the flag when finished. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-12-04 11:45:37 UTC (rev 1770) +++ rdesktop/trunk/rdp.c 2013-12-04 11:52:33 UTC (rev 1771) @@ -379,7 +379,7 @@ DEBUG_RDP5(("Sending RDP5-style Logon packet\n")); - if (g_redirect_cookie_len > 0) + if (g_redirect == True && g_redirect_cookie_len > 0) { len_password = g_redirect_cookie_len; len_password -= 2; /* substract 2 bytes which is added below */ @@ -444,7 +444,7 @@ if (0 < len_password) { - if (0 < g_redirect_cookie_len) + if (g_redirect == True && 0 < g_redirect_cookie_len) { out_uint8p(s, g_redirect_cookie, g_redirect_cookie_len); } @@ -514,6 +514,10 @@ } s_mark_end(s); + + /* clear the redirect flag */ + g_redirect = False; + sec_send(s, sec_flags); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2013-12-10 11:17:00
|
Revision: 1777 http://sourceforge.net/p/rdesktop/code/1777 Author: hean01 Date: 2013-12-10 11:16:56 +0000 (Tue, 10 Dec 2013) Log Message: ----------- Break out of rdp main loop if server sent a redirect PDU. This is needed on 2012r2 were server will not disconnect a rdp connection after a redirect packet. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2013-12-06 13:56:37 UTC (rev 1776) +++ rdesktop/trunk/rdp.c 2013-12-10 11:16:56 UTC (rev 1777) @@ -1670,7 +1670,7 @@ { while (rdp_loop(deactivated, ext_disc_reason)) { - if (g_pending_resize) + if (g_pending_resize || g_redirect) { return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-02-07 13:10:48
|
Revision: 1786 http://sourceforge.net/p/rdesktop/code/1786 Author: hean01 Date: 2014-02-07 13:10:45 +0000 (Fri, 07 Feb 2014) Log Message: ----------- Fix bug with broken auto reconnect packet, introduced in commit 1766. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2014-02-07 08:44:55 UTC (rev 1785) +++ rdesktop/trunk/rdp.c 2014-02-07 13:10:45 UTC (rev 1786) @@ -475,9 +475,9 @@ /* TS_EXTENDED_INFO_PACKET */ out_uint16_le(s, 2); /* clientAddressFamily = AF_INET */ out_uint16_le(s, len_ip); /* cbClientAddress, Length of client ip */ - rdp_out_unistr(s, ipaddr, len_ip); /* clientAddress */ + rdp_out_unistr(s, ipaddr, len_ip - 2); /* clientAddress */ out_uint16_le(s, len_dll); /* cbClientDir */ - rdp_out_unistr(s, "C:\\WINNT\\System32\\mstscax.dll", len_dll); /* clientDir */ + rdp_out_unistr(s, "C:\\WINNT\\System32\\mstscax.dll", len_dll - 2); /* clientDir */ /* TS_TIME_ZONE_INFORMATION */ tzone = (mktime(gmtime(&t)) - mktime(localtime(&t))) / 60; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-04-23 06:11:57
|
Revision: 1794 http://sourceforge.net/p/rdesktop/code/1794 Author: hean01 Date: 2014-04-23 06:11:55 +0000 (Wed, 23 Apr 2014) Log Message: ----------- Remove process of packets in rdp_connect. The process of packets in rdp_connect assumes that the first packets are demand active to set g_rdp_shareid which is not true. In case when CredSSP+Kerberos is in use an enhanced redirection PDU packet is sent before the demande active PDU. This fixes the problem with rdesktop silently exists in the case above. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2014-04-15 11:28:00 UTC (rev 1793) +++ rdesktop/trunk/rdp.c 2014-04-23 06:11:55 UTC (rev 1794) @@ -1728,23 +1728,14 @@ rdp_connect(char *server, uint32 flags, char *domain, char *password, char *command, char *directory, RD_BOOL reconnect) { - RD_BOOL deactivated = False; - uint32 ext_disc_reason = 0; - if (!sec_connect(server, g_username, domain, password, reconnect)) return False; rdp_send_logon_info(flags, domain, g_username, password, command, directory); - /* run RDP loop until first licence demand active PDU */ - while (!g_rdp_shareid) - { - if (g_network_error) - return False; + if (g_network_error) + return False; - if (!rdp_loop(&deactivated, &ext_disc_reason)) - return False; - } return True; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-05-20 06:27:12
|
Revision: 1799 http://sourceforge.net/p/rdesktop/code/1799 Author: hean01 Date: 2014-05-20 06:27:09 +0000 (Tue, 20 May 2014) Log Message: ----------- Use correct types for reading cursot hotspot and clamp the point into cursor boundingbox. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2014-05-13 14:36:18 UTC (rev 1798) +++ rdesktop/trunk/rdp.c 2014-05-20 06:27:09 UTC (rev 1799) @@ -1123,7 +1123,7 @@ process_colour_pointer_common(STREAM s, int bpp) { uint16 width, height, cache_idx, masklen, datalen; - sint16 x, y; + uint16 x, y; uint8 *mask; uint8 *data; RD_HCURSOR cursor; @@ -1141,10 +1141,9 @@ { warning("process_colour_pointer_common: " "width %d height %d\n", width, height); } - /* sometimes x or y is out of bounds */ - x = MAX(x, 0); + + /* keep hotspot within cursor bounding box */ x = MIN(x, width - 1); - y = MAX(y, 0); y = MIN(y, height - 1); cursor = ui_create_cursor(x, y, width, height, mask, data, bpp); ui_set_cursor(cursor); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-08-18 07:47:09
|
Revision: 1823 http://sourceforge.net/p/rdesktop/code/1823 Author: hean01 Date: 2014-08-18 07:47:07 +0000 (Mon, 18 Aug 2014) Log Message: ----------- Revert of commit 1794. Fixes regression with "disconnect: Invalid licensing message." Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2014-07-03 10:42:04 UTC (rev 1822) +++ rdesktop/trunk/rdp.c 2014-08-18 07:47:07 UTC (rev 1823) @@ -1733,14 +1733,23 @@ rdp_connect(char *server, uint32 flags, char *domain, char *password, char *command, char *directory, RD_BOOL reconnect) { + RD_BOOL deactivated = False; + uint32 ext_disc_reason = 0; + if (!sec_connect(server, g_username, domain, password, reconnect)) return False; rdp_send_logon_info(flags, domain, g_username, password, command, directory); - if (g_network_error) - return False; + /* run RDP loop until first licence demand active PDU */ + while (!g_rdp_shareid) + { + if (g_network_error) + return False; + if (!rdp_loop(&deactivated, &ext_disc_reason)) + return False; + } return True; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-08-27 12:15:26
|
Revision: 1824 http://sourceforge.net/p/rdesktop/code/1824 Author: hean01 Date: 2014-08-27 12:15:21 +0000 (Wed, 27 Aug 2014) Log Message: ----------- Fix sigsegv while using credssp and kerberos without specifying domainname as argument. Modified Paths: -------------- rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2014-08-18 07:47:07 UTC (rev 1823) +++ rdesktop/trunk/rdp.c 2014-08-27 12:15:21 UTC (rev 1824) @@ -189,6 +189,9 @@ void rdp_out_unistr(STREAM s, char *string, int len) { + if (string == NULL || len == 0) + return; + #ifdef HAVE_ICONV size_t ibl = strlen(string), obl = len + 2; static iconv_t iconv_h = (iconv_t) - 1; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |