You can subscribe to this list here.
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
(4) |
Sep
(3) |
Oct
(9) |
Nov
|
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2010 |
Jan
(41) |
Feb
(1) |
Mar
(24) |
Apr
(5) |
May
|
Jun
(6) |
Jul
|
Aug
(1) |
Sep
|
Oct
|
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
(20) |
May
(1) |
Jun
|
Jul
|
Aug
(2) |
Sep
(5) |
Oct
(1) |
Nov
(2) |
Dec
(5) |
2012 |
Jan
(5) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(5) |
Jul
(4) |
Aug
|
Sep
(2) |
Oct
(3) |
Nov
(14) |
Dec
(2) |
2013 |
Jan
(6) |
Feb
(3) |
Mar
(10) |
Apr
(4) |
May
|
Jun
(12) |
Jul
(2) |
Aug
(10) |
Sep
(14) |
Oct
|
Nov
(21) |
Dec
(9) |
2014 |
Jan
|
Feb
(11) |
Mar
(3) |
Apr
(3) |
May
(14) |
Jun
(8) |
Jul
(5) |
Aug
(4) |
Sep
(10) |
Oct
(2) |
Nov
(4) |
Dec
|
2015 |
Jan
|
Feb
(4) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <as...@us...> - 2015-03-13 08:57:27
|
Revision: 1847 http://sourceforge.net/p/rdesktop/code/1847 Author: astrand Date: 2015-03-13 08:57:20 +0000 (Fri, 13 Mar 2015) Log Message: ----------- Update the visible copyright year. Modified Paths: -------------- rdesktop/trunk/rdesktop.c Modified: rdesktop/trunk/rdesktop.c =================================================================== --- rdesktop/trunk/rdesktop.c 2015-02-11 14:33:57 UTC (rev 1846) +++ rdesktop/trunk/rdesktop.c 2015-03-13 08:57:20 UTC (rev 1847) @@ -167,7 +167,7 @@ { fprintf(stderr, "rdesktop: A Remote Desktop Protocol client.\n"); fprintf(stderr, - "Version " PACKAGE_VERSION ". Copyright (C) 1999-2011 Matthew Chapman et al.\n"); + "Version " PACKAGE_VERSION ". Copyright (C) 1999-2015 Matthew Chapman et al.\n"); fprintf(stderr, "See http://www.rdesktop.org/ for more information.\n\n"); fprintf(stderr, "Usage: %s [options] server[:port]\n", program); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2015-02-11 14:34:04
|
Revision: 1846 http://sourceforge.net/p/rdesktop/code/1846 Author: hean01 Date: 2015-02-11 14:33:57 +0000 (Wed, 11 Feb 2015) Log Message: ----------- Make sure to break out of inner loop when pending resize is triggered. This will make a reconnect happen as fast as possible and prevent waiting for any xwin inputs or data on rdp channel. Modified Paths: -------------- rdesktop/trunk/xwin.c Modified: rdesktop/trunk/xwin.c =================================================================== --- rdesktop/trunk/xwin.c 2015-02-11 12:57:53 UTC (rev 1845) +++ rdesktop/trunk/xwin.c 2015-02-11 14:33:57 UTC (rev 1846) @@ -2649,7 +2649,7 @@ return 1; } -/* Returns 0 after user quit, 1 otherwise */ +/* Returns 0 after user quit or pending resize, 1 otherwise */ int ui_select(int rdp_socket) { @@ -2666,6 +2666,9 @@ /* User quit */ return 0; + if (g_pending_resize) + return 0; + if (g_seamless_active) sw_check_timers(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2015-02-11 12:57:55
|
Revision: 1845 http://sourceforge.net/p/rdesktop/code/1845 Author: hean01 Date: 2015-02-11 12:57:53 +0000 (Wed, 11 Feb 2015) Log Message: ----------- Clarification of shortcircuit of hook code when initialization of dll failed. Modified Paths: -------------- seamlessrdp/trunk/ServerExe/hookdll.c Modified: seamlessrdp/trunk/ServerExe/hookdll.c =================================================================== --- seamlessrdp/trunk/ServerExe/hookdll.c 2015-02-11 12:05:34 UTC (rev 1844) +++ seamlessrdp/trunk/ServerExe/hookdll.c 2015-02-11 12:57:53 UTC (rev 1845) @@ -6,7 +6,7 @@ Copyright 2005-2010 Peter Åstrand <as...@ce...> for Cendio AB Copyright 2006-2008 Pierre Ossman <os...@ce...> for Cendio AB - Copyright 2013-2014 Henrik Andersson <he...@ce...> for Cendio AB + Copyright 2013-2015 Henrik Andersson <he...@ce...> for Cendio AB This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -43,6 +43,8 @@ static HINSTANCE g_instance = NULL; +static int g_initialized = 0; + static unsigned int g_conn_serial; /* @@ -278,7 +280,7 @@ LONG style; - if (!g_wm_seamless_focus) + if (!g_initialized) goto end; if (code < 0) @@ -436,7 +438,7 @@ LONG style; - if (!g_wm_seamless_focus) + if (!g_initialized) goto end; if (code < 0) @@ -521,7 +523,7 @@ static LRESULT CALLBACK cbt_hook_proc(int code, WPARAM wparam, LPARAM lparam) { - if (!g_wm_seamless_focus) + if (!g_initialized) goto end; if (code < 0) @@ -625,7 +627,7 @@ { RECT rect; - if (!g_wm_seamless_focus) + if (!g_initialized) return; check_conn_serial(); @@ -659,7 +661,7 @@ EXTERN void SafeZChange(unsigned int serial, HWND hwnd, HWND behind) { - if (!g_wm_seamless_focus) + if (!g_initialized) return; WaitForSingleObject(g_mutex, INFINITE); @@ -703,7 +705,7 @@ EXTERN void SafeFocus(unsigned int serial, HWND hwnd) { - if (!g_wm_seamless_focus) + if (!g_initialized) return; WaitForSingleObject(g_mutex, INFINITE); @@ -724,7 +726,7 @@ LONG style; int curstate; - if (!g_wm_seamless_focus) + if (!g_initialized) return; check_conn_serial(); @@ -772,7 +774,7 @@ EXTERN int GetInstanceCount() { - if (!g_wm_seamless_focus) + if (!g_initialized) return 0; return g_shdata->instance_count; @@ -807,6 +809,7 @@ ++g_shdata->instance_count; ReleaseMutex(g_mutex); g_wm_seamless_focus = RegisterWindowMessage(FOCUS_MSG_NAME); + g_initialized = 1; } break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2015-02-11 12:05:41
|
Revision: 1844 http://sourceforge.net/p/rdesktop/code/1844 Author: hean01 Date: 2015-02-11 12:05:34 +0000 (Wed, 11 Feb 2015) Log Message: ----------- Prevent crash when launching iexplorer in protected mode. g_wm_seamless_focus does actually mean that hook initialization failed and one reason for that is that CreateMutex() can return null due to security restrictions. this handling and shortcircuit of hooks was introduced with commit 1584 which probably can be resolved by opening the mutex requesting only syncronize access. Modified Paths: -------------- seamlessrdp/trunk/ServerExe/hookdll.c Modified: seamlessrdp/trunk/ServerExe/hookdll.c =================================================================== --- seamlessrdp/trunk/ServerExe/hookdll.c 2015-02-10 08:48:58 UTC (rev 1843) +++ seamlessrdp/trunk/ServerExe/hookdll.c 2015-02-11 12:05:34 UTC (rev 1844) @@ -278,14 +278,14 @@ LONG style; - check_conn_serial(); - if (!g_wm_seamless_focus) goto end; if (code < 0) goto end; + check_conn_serial(); + hwnd = ((CWPSTRUCT *) details)->hwnd; msg = ((CWPSTRUCT *) details)->message; wparam = ((CWPSTRUCT *) details)->wParam; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <as...@us...> - 2015-02-10 08:49:06
|
Revision: 1843 http://sourceforge.net/p/rdesktop/code/1843 Author: astrand Date: 2015-02-10 08:48:58 +0000 (Tue, 10 Feb 2015) Log Message: ----------- Modern versions of binutils requires that you list all DSOs. libcrypto normally requires libdl. Modified Paths: -------------- rdesktop/trunk/configure.ac Modified: rdesktop/trunk/configure.ac =================================================================== --- rdesktop/trunk/configure.ac 2014-11-19 07:44:18 UTC (rev 1842) +++ rdesktop/trunk/configure.ac 2015-02-10 08:48:58 UTC (rev 1843) @@ -103,9 +103,9 @@ if test x"$static_openssl" = "xyes"; then # OpenSSL generally relies on libz AC_SEARCH_LIBS(deflate, z) - LIBS="-L$ssldir/lib -L$ssldir/lib64 -Wl,-Bstatic -lssl -lcrypto -Wl,-Bdynamic $LIBS" + LIBS="-L$ssldir/lib -L$ssldir/lib64 -Wl,-Bstatic -lssl -lcrypto -Wl,-Bdynamic -ldl $LIBS" else - LIBS="-L$ssldir/lib -L$ssldir/lib64 -lssl -lcrypto $LIBS" + LIBS="-L$ssldir/lib -L$ssldir/lib64 -lssl -lcrypto -ldl $LIBS" # # target-specific stuff This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-11-19 07:44:23
|
Revision: 1842 http://sourceforge.net/p/rdesktop/code/1842 Author: hean01 Date: 2014-11-19 07:44:18 +0000 (Wed, 19 Nov 2014) Log Message: ----------- Apply patch #218 Fixes compilation of rdesktop on IRIX Modified Paths: -------------- rdesktop/trunk/rdpsnd_sgi.c rdesktop/trunk/xkeymap.c Modified: rdesktop/trunk/rdpsnd_sgi.c =================================================================== --- rdesktop/trunk/rdpsnd_sgi.c 2014-11-10 14:03:29 UTC (rev 1841) +++ rdesktop/trunk/rdpsnd_sgi.c 2014-11-19 07:44:18 UTC (rev 1842) @@ -20,8 +20,10 @@ */ #include "rdesktop.h" +#include "rdpsnd.h" #include <errno.h> #include <dmedia/audio.h> +#include <unistd.h> /* #define IRIX_DEBUG 1 */ @@ -253,7 +255,6 @@ { struct audio_packet *packet; ssize_t len; - unsigned int i; STREAM out; int gf; @@ -263,7 +264,7 @@ return; packet = rdpsnd_queue_current_packet(); - out = &packet->s; + out = (STREAM)(void *)&(packet->s); len = out->end - out->p; Modified: rdesktop/trunk/xkeymap.c =================================================================== --- rdesktop/trunk/xkeymap.c 2014-11-10 14:03:29 UTC (rev 1841) +++ rdesktop/trunk/xkeymap.c 2014-11-19 07:44:18 UTC (rev 1842) @@ -919,7 +919,7 @@ void restore_remote_modifiers(uint32 ev_time, uint8 scancode) { - key_translation dummy = { }; + key_translation dummy = { 0 }; if (is_modifier(scancode)) return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-11-10 14:03:31
|
Revision: 1841 http://sourceforge.net/p/rdesktop/code/1841 Author: hean01 Date: 2014-11-10 14:03:29 +0000 (Mon, 10 Nov 2014) Log Message: ----------- Added workaround for problematic MS Office Tooltips. Modified Paths: -------------- seamlessrdp/trunk/ServerExe/hookdll.c Modified: seamlessrdp/trunk/ServerExe/hookdll.c =================================================================== --- seamlessrdp/trunk/ServerExe/hookdll.c 2014-11-03 11:35:37 UTC (rev 1840) +++ seamlessrdp/trunk/ServerExe/hookdll.c 2014-11-10 14:03:29 UTC (rev 1841) @@ -125,6 +125,7 @@ HWND result; HWND owner; LONG exstyle; + char name[512]; /* Use the same logic to determine if the window should be "transient" (ie have no task icon) as MS uses. This is documented at @@ -136,10 +137,19 @@ result = NULL; } else { /* no taskbar icon */ - if (owner) + if (owner) { result = owner; - else + + /* MS Office assigns wrong owner for tooltips which will + create problems with focusing of correct window after + hide of tooltip. This is a workaround to always ignore + use of owner of Office Tooltips. */ + GetClassName(hwnd, name, sizeof(name)); + if (strcmp(name, "OfficeTooltip") == 0) + result = (HWND) - 1; + } else { result = (HWND) - 1; + } } return result; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-11-03 11:35:48
|
Revision: 1840 http://sourceforge.net/p/rdesktop/code/1840 Author: hean01 Date: 2014-11-03 11:35:37 +0000 (Mon, 03 Nov 2014) Log Message: ----------- Use correct uri's in example. Modified Paths: -------------- rdesktop/trunk/doc/makerelease.txt Modified: rdesktop/trunk/doc/makerelease.txt =================================================================== --- rdesktop/trunk/doc/makerelease.txt 2014-11-03 11:34:49 UTC (rev 1839) +++ rdesktop/trunk/doc/makerelease.txt 2014-11-03 11:35:37 UTC (rev 1840) @@ -8,8 +8,8 @@ * Test build the tarball on a few systems. Test "rpmbuild -ta" as well * Tag: - svn copy https://rdesktop.svn.sourceforge.net/svnroot/rdesktop/rdesktop/trunk \ - https://rdesktop.svn.sourceforge.net/svnroot/rdesktop/rdesktop/tags/rdesktop-x.y.z + svn copy https://svn.code.sf.net/p/rdesktop/code/rdesktop/trunk \ + https://svn.code.sf.net/p/rdesktop/code/rdesktop/tags/rdesktop-x.y.z * Do a new SF file release This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-11-03 11:34:56
|
Revision: 1839 http://sourceforge.net/p/rdesktop/code/1839 Author: hean01 Date: 2014-11-03 11:34:49 +0000 (Mon, 03 Nov 2014) Log Message: ----------- Bump trunk version to 1.8.3post Modified Paths: -------------- rdesktop/trunk/configure.ac rdesktop/trunk/rdesktop.spec Modified: rdesktop/trunk/configure.ac =================================================================== --- rdesktop/trunk/configure.ac 2014-10-31 12:06:37 UTC (rev 1838) +++ rdesktop/trunk/configure.ac 2014-11-03 11:34:49 UTC (rev 1839) @@ -1,4 +1,4 @@ -AC_INIT(rdesktop, 1.8.3) +AC_INIT(rdesktop, 1.8.3post) AC_CONFIG_SRCDIR([rdesktop.c]) Modified: rdesktop/trunk/rdesktop.spec =================================================================== --- rdesktop/trunk/rdesktop.spec 2014-10-31 12:06:37 UTC (rev 1838) +++ rdesktop/trunk/rdesktop.spec 2014-11-03 11:34:49 UTC (rev 1839) @@ -1,6 +1,6 @@ Summary: Remote Desktop Protocol client Name: rdesktop -Version: 1.8.3 +Version: 1.8.3post Release: 1 License: GPL; see COPYING Group: Applications/Communications This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-10-31 12:06:49
|
Revision: 1838 http://sourceforge.net/p/rdesktop/code/1838 Author: hean01 Date: 2014-10-31 12:06:37 +0000 (Fri, 31 Oct 2014) Log Message: ----------- Tag release 1.8.3 Added Paths: ----------- rdesktop/tags/rdesktop-1.8.3/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-10-31 11:39:07
|
Revision: 1837 http://sourceforge.net/p/rdesktop/code/1837 Author: hean01 Date: 2014-10-31 11:39:04 +0000 (Fri, 31 Oct 2014) Log Message: ----------- Updated CHangeLog and bumped version to 1.8.3 Modified Paths: -------------- rdesktop/trunk/configure.ac rdesktop/trunk/doc/ChangeLog rdesktop/trunk/rdesktop.spec Modified: rdesktop/trunk/configure.ac =================================================================== --- rdesktop/trunk/configure.ac 2014-09-11 11:54:46 UTC (rev 1836) +++ rdesktop/trunk/configure.ac 2014-10-31 11:39:04 UTC (rev 1837) @@ -1,4 +1,4 @@ -AC_INIT(rdesktop, 1.8.2post) +AC_INIT(rdesktop, 1.8.3) AC_CONFIG_SRCDIR([rdesktop.c]) Modified: rdesktop/trunk/doc/ChangeLog =================================================================== --- rdesktop/trunk/doc/ChangeLog 2014-09-11 11:54:46 UTC (rev 1836) +++ rdesktop/trunk/doc/ChangeLog 2014-10-31 11:39:04 UTC (rev 1837) @@ -1,3 +1,24 @@ +rdesktop (1.8.3) + * Added a persistent mode used with SeamlessRDP + * Added US international keyboard layout with dead keys + * Code cleanup to match specifications, use constants defined + instead of magic numbers, remove of dead code + * Fix regression with failed connection and a invalid licensing + message, introduced in 1.8.2 + * Fix issue with Non ASCII user / password when using CredSSP + * Fix issues using smartcard redirection with Windows 2012 R2 + * Fix issue with windows key functionality + * Fix memory corruption when using rdp_out_unistr() + * Fix workaround for the lack of support for alpha cursors + * Fix silent exit when redirected when using CredSSP + * Fix crash when starting rdesktop without domain specified + while using CredSSP + * Fix issue in SeamlessRDP protocol parser upon reconnect + * Fix issue were a new SeamlessRDP application is respawned + upon a reconnection + + -- Henrik Andersson <he...@us...> 2014-10-31 + rdesktop (1.8.2) * Support enhanced server redirection (Session broker 2012) * Support License Error Alert PDU Modified: rdesktop/trunk/rdesktop.spec =================================================================== --- rdesktop/trunk/rdesktop.spec 2014-09-11 11:54:46 UTC (rev 1836) +++ rdesktop/trunk/rdesktop.spec 2014-10-31 11:39:04 UTC (rev 1837) @@ -1,6 +1,6 @@ Summary: Remote Desktop Protocol client Name: rdesktop -Version: 1.8.2post +Version: 1.8.3 Release: 1 License: GPL; see COPYING Group: Applications/Communications This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-11 11:54:55
|
Revision: 1836 http://sourceforge.net/p/rdesktop/code/1836 Author: hean01 Date: 2014-09-11 11:54:46 +0000 (Thu, 11 Sep 2014) Log Message: ----------- Fixes a bug with Windows Server 2012 r2 and smartcard redirection were the RDPDR channel is shutdown by server. The RDPDR channel is shutdown by server when responses from abdonend iorequests are received on a reinitialized RDPDR channel. This fix adds epochs for RDPDR channel and tags iorequest to specific epoch to handle abdonend iorequest. Revision Links: -------------- http://sourceforge.net/p/rdesktop/code/2 Modified Paths: -------------- rdesktop/trunk/proto.h rdesktop/trunk/rdesktop.c rdesktop/trunk/rdpdr.c rdesktop/trunk/scard.c rdesktop/trunk/scard.h Modified: rdesktop/trunk/proto.h =================================================================== --- rdesktop/trunk/proto.h 2014-09-11 11:15:46 UTC (rev 1835) +++ rdesktop/trunk/proto.h 2014-09-11 11:54:46 UTC (rev 1836) @@ -352,7 +352,7 @@ void scard_lock(int lock); void scard_unlock(int lock); int scard_enum_devices(uint32 * id, char *optarg); -void scardSetInfo(uint32 device, uint32 id, uint32 bytes_out); +void scardSetInfo(uint32 epoch, uint32 device, uint32 id, uint32 bytes_out); void scard_reset_state(); /* *INDENT-OFF* */ Modified: rdesktop/trunk/rdesktop.c =================================================================== --- rdesktop/trunk/rdesktop.c 2014-09-11 11:15:46 UTC (rev 1835) +++ rdesktop/trunk/rdesktop.c 2014-09-11 11:54:46 UTC (rev 1836) @@ -557,8 +557,7 @@ /* setup default flags for TS_INFO_PACKET */ flags = RDP_INFO_MOUSE | RDP_INFO_DISABLECTRLALTDEL - | RDP_INFO_UNICODE | RDP_INFO_MAXIMIZESHELL - | RDP_INFO_ENABLEWINDOWSKEY; + | RDP_INFO_UNICODE | RDP_INFO_MAXIMIZESHELL | RDP_INFO_ENABLEWINDOWSKEY; prompt_password = False; g_seamless_spawn_cmd[0] = domain[0] = g_password[0] = shell[0] = directory[0] = 0; @@ -790,15 +789,18 @@ } else if (str_startswith(optarg, "b")) /* broadband */ { - g_rdp5_performanceflags = RDP5_NO_CURSOR_SHADOW | RDP5_NO_WALLPAPER; + g_rdp5_performanceflags = + RDP5_NO_CURSOR_SHADOW | RDP5_NO_WALLPAPER; } else if (str_startswith(optarg, "l")) /* lan */ { - g_rdp5_performanceflags = RDP5_NO_CURSOR_SHADOW | RDP5_DISABLE_NOTHING; + g_rdp5_performanceflags = + RDP5_NO_CURSOR_SHADOW | RDP5_DISABLE_NOTHING; } else { - g_rdp5_performanceflags = RDP5_NO_CURSOR_SHADOW | strtol(optarg, NULL, 16); + g_rdp5_performanceflags = + RDP5_NO_CURSOR_SHADOW | strtol(optarg, NULL, 16); } break; Modified: rdesktop/trunk/rdpdr.c =================================================================== --- rdesktop/trunk/rdpdr.c 2014-09-11 11:15:46 UTC (rev 1835) +++ rdesktop/trunk/rdpdr.c 2014-09-11 11:54:46 UTC (rev 1836) @@ -68,6 +68,7 @@ extern RD_BOOL g_notify_stamp; static VCHANNEL *rdpdr_channel; +static uint32 g_epoch; /* If select() times out, the request for the device with handle g_min_timeout_fd is aborted */ RD_NTHANDLE g_min_timeout_fd; @@ -695,7 +696,7 @@ out.size = sizeof(buffer); #ifdef WITH_SCARD - scardSetInfo(device, id, bytes_out + 0x14); + scardSetInfo(g_epoch, device, id, bytes_out + 0x14); #endif status = fns->device_control(file, request, s, &out); result = buffer_len = out.p - out.data; @@ -823,6 +824,7 @@ if server version is < 12 */ if (vmin < 0x000c) g_client_id = 0x815ed39d; /* IP address (use 127.0.0.1) 0x815ed39d */ + g_epoch++; rdpdr_send_client_announce_reply(); rdpdr_send_client_name_request(); Modified: rdesktop/trunk/scard.c =================================================================== --- rdesktop/trunk/scard.c 2014-09-11 11:15:46 UTC (rev 1835) +++ rdesktop/trunk/scard.c 2014-09-11 11:54:46 UTC (rev 1836) @@ -63,7 +63,7 @@ static pthread_mutex_t **scard_mutex = NULL; -static uint32 curDevice = 0, curId = 0, curBytesOut = 0; +static uint32 curEpoch = 0, curDevice = 0, curId = 0, curBytesOut = 0; static PSCNameMapRec nameMapList = NULL; static int nameMapCount = 0; @@ -87,11 +87,12 @@ #endif /* MAKE_PROTO */ void -scardSetInfo(uint32 device, uint32 id, uint32 bytes_out) +scardSetInfo(uint32 epoch, uint32 device, uint32 id, uint32 bytes_out) { curDevice = device; curId = id; curBytesOut = bytes_out; + curEpoch = epoch; } #ifndef MAKE_PROTO @@ -2456,6 +2457,7 @@ data->memHandle = lcHandle; data->device = curDevice; data->id = curId; + data->epoch = curEpoch; data->handle = handle; data->request = request; data->in = duplicateStream(&(data->memHandle), in, 0, SC_TRUE); @@ -2527,7 +2529,14 @@ size_t buffer_len = 0; scard_device_control(data->handle, data->request, data->in, data->out); buffer_len = (size_t) data->out->p - (size_t) data->out->data; - rdpdr_send_completion(data->device, data->id, 0, buffer_len, data->out->data, buffer_len); + + /* if iorequest belongs to another epoch, don't send response + back to server due to it's considered as abdonend. + */ + if (data->epoch == curEpoch) + rdpdr_send_completion(data->device, data->id, 0, buffer_len, data->out->data, + buffer_len); + SC_destroyThreadData(data); } Modified: rdesktop/trunk/scard.h =================================================================== --- rdesktop/trunk/scard.h 2014-09-11 11:15:46 UTC (rev 1835) +++ rdesktop/trunk/scard.h 2014-09-11 11:54:46 UTC (rev 1836) @@ -154,6 +154,7 @@ { uint32 device; uint32 id; + uint32 epoch; RD_NTHANDLE handle; uint32 request; STREAM in; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-11 11:15:51
|
Revision: 1835 http://sourceforge.net/p/rdesktop/code/1835 Author: hean01 Date: 2014-09-11 11:15:46 +0000 (Thu, 11 Sep 2014) Log Message: ----------- Workaround for bug in pcsc lite where timeout value 0 for SCardGetStatusChange() behaves just like INFINIT. Modified Paths: -------------- rdesktop/trunk/scard.c Modified: rdesktop/trunk/scard.c =================================================================== --- rdesktop/trunk/scard.c 2014-09-11 08:58:40 UTC (rev 1834) +++ rdesktop/trunk/scard.c 2014-09-11 11:15:46 UTC (rev 1835) @@ -3,7 +3,7 @@ Smart Card support Copyright (C) Alexi Volkov <al...@my...> 2006 Copyright 2010-2013 Pierre Ossman <os...@ce...> for Cendio AB - Copyright 2011-2013 Henrik Andersson <he...@ce...> for Cendio AB + Copyright 2011-2014 Henrik Andersson <he...@ce...> for Cendio AB This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1175,6 +1175,11 @@ memset(myRsArray, 0, dwCount * sizeof(SERVER_SCARD_READERSTATE_A)); copyReaderState_ServerToMyPCSC(rsArray, myRsArray, (SERVER_DWORD) dwCount); + /* Workaround for a bug in pcsclite, timeout value of 0 is handled as INFINIT + but is by Windows PCSC spec. used for polling current state. + */ + if (dwTimeout == 0) + dwTimeout = 1; rv = SCardGetStatusChange(myHContext, (MYPCSC_DWORD) dwTimeout, myRsArray, (MYPCSC_DWORD) dwCount); copyReaderState_MyPCSCToServer(myRsArray, rsArray, (MYPCSC_DWORD) dwCount); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-11 08:58:42
|
Revision: 1834 http://sourceforge.net/p/rdesktop/code/1834 Author: hean01 Date: 2014-09-11 08:58:40 +0000 (Thu, 11 Sep 2014) Log Message: ----------- Fix implementation of DR_CORE_CLIENT_NAME_REQ packet. Modified Paths: -------------- rdesktop/trunk/rdpdr.c Modified: rdesktop/trunk/rdpdr.c =================================================================== --- rdesktop/trunk/rdpdr.c 2014-09-11 08:54:31 UTC (rev 1833) +++ rdesktop/trunk/rdpdr.c 2014-09-11 08:58:40 UTC (rev 1834) @@ -219,10 +219,9 @@ s = channel_init(rdpdr_channel, 16 + hostlen); out_uint16_le(s, RDPDR_CTYP_CORE); out_uint16_le(s, PAKID_CORE_CLIENT_NAME); - out_uint16_le(s, 0x63); /* unknown */ - out_uint16_le(s, 0x72); - out_uint32(s, 0); - out_uint32_le(s, hostlen); + out_uint32_le(s, 1); /* UnicodeFlag */ + out_uint32_le(s, 0); /* CodePage */ + out_uint32_le(s, hostlen); /* ComputerNameLen */ rdp_out_unistr(s, g_rdpdr_clientname, hostlen - 2); s_mark_end(s); channel_send(s, rdpdr_channel); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-11 08:54:38
|
Revision: 1833 http://sourceforge.net/p/rdesktop/code/1833 Author: hean01 Date: 2014-09-11 08:54:31 +0000 (Thu, 11 Sep 2014) Log Message: ----------- - Clarification of client and server announce - Make sure to use server supplied ClientID if server VersionMinor is >= 12. Modified Paths: -------------- rdesktop/trunk/rdpdr.c Modified: rdesktop/trunk/rdpdr.c =================================================================== --- rdesktop/trunk/rdpdr.c 2014-09-11 08:38:27 UTC (rev 1832) +++ rdesktop/trunk/rdpdr.c 2014-09-11 08:54:31 UTC (rev 1833) @@ -73,6 +73,8 @@ RD_NTHANDLE g_min_timeout_fd; uint32 g_num_devices; +uint32 g_client_id; + /* Table with information about rdpdr devices */ RDPDR_DEVICE g_rdpdr_device[RDPDR_MAX_DEVICES]; char *g_rdpdr_clientname = NULL; @@ -193,9 +195,9 @@ s = channel_init(rdpdr_channel, 12); out_uint16_le(s, RDPDR_CTYP_CORE); out_uint16_le(s, PAKID_CORE_CLIENTID_CONFIRM); - out_uint16_le(s, 1); /* unknown */ - out_uint16_le(s, 5); - out_uint32_be(s, 0x815ed39d); /* IP address (use 127.0.0.1) 0x815ed39d */ + out_uint16_le(s, 1); /* VersionMajor, MUST be set to 0x1 */ + out_uint16_le(s, 5); /* VersionMinor */ + out_uint32_be(s, g_client_id); /* ClientID */ s_mark_end(s); channel_send(s, rdpdr_channel); } @@ -792,6 +794,7 @@ rdpdr_process(STREAM s) { uint32 handle; + uint16 vmin; uint16 component; uint16 pakid; @@ -812,6 +815,16 @@ break; case PAKID_CORE_SERVER_ANNOUNCE: + /* DR_CORE_SERVER_ANNOUNCE_REQ */ + in_uint8s(s, 2); /* skip versionMajor */ + in_uint16_le(s, vmin); /* VersionMinor */ + in_uint32_le(s, g_client_id); /* ClientID */ + + /* The RDP client is responsibility to provide a random client id + if server version is < 12 */ + if (vmin < 0x000c) + g_client_id = 0x815ed39d; /* IP address (use 127.0.0.1) 0x815ed39d */ + rdpdr_send_client_announce_reply(); rdpdr_send_client_name_request(); break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-11 08:38:34
|
Revision: 1832 http://sourceforge.net/p/rdesktop/code/1832 Author: hean01 Date: 2014-09-11 08:38:27 +0000 (Thu, 11 Sep 2014) Log Message: ----------- - Clarification of code. - Make sure to send DR_CORE_CAPABILITY_RSP as response to DR_CORE_SERVER_ANNOUNCE_REQ. Modified Paths: -------------- rdesktop/trunk/rdpdr.c Modified: rdesktop/trunk/rdpdr.c =================================================================== --- rdesktop/trunk/rdpdr.c 2014-09-11 08:19:23 UTC (rev 1831) +++ rdesktop/trunk/rdpdr.c 2014-09-11 08:38:27 UTC (rev 1832) @@ -255,8 +255,9 @@ } static void -rdpdr_send_available(void) +rdpdr_send_client_device_list_announce(void) { + /* DR_CORE_CLIENT_ANNOUNCE_RSP */ uint32 driverlen, printerlen, bloblen; int i; STREAM s; @@ -748,8 +749,9 @@ } static void -rdpdr_send_clientcapability(void) +rdpdr_send_client_capability_response(void) { + /* DR_CORE_CAPABILITY_RSP */ STREAM s; s = channel_init(rdpdr_channel, 0x50); out_uint16_le(s, RDPDR_CTYP_CORE); @@ -815,8 +817,7 @@ break; case PAKID_CORE_CLIENTID_CONFIRM: - rdpdr_send_clientcapability(); - rdpdr_send_available(); + rdpdr_send_client_device_list_announce(); break; case PAKID_CORE_DEVICE_REPLY: @@ -827,6 +828,7 @@ break; case PAKID_CORE_SERVER_CAPABILITY: + rdpdr_send_client_capability_response(); break; default: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-11 08:19:30
|
Revision: 1831 http://sourceforge.net/p/rdesktop/code/1831 Author: hean01 Date: 2014-09-11 08:19:23 +0000 (Thu, 11 Sep 2014) Log Message: ----------- Clarify implementation to match MS-RDPEFS spec. Modified Paths: -------------- rdesktop/trunk/rdpdr.c Modified: rdesktop/trunk/rdpdr.c =================================================================== --- rdesktop/trunk/rdpdr.c 2014-09-11 07:50:48 UTC (rev 1830) +++ rdesktop/trunk/rdpdr.c 2014-09-11 08:19:23 UTC (rev 1831) @@ -186,8 +186,9 @@ } static void -rdpdr_send_connect(void) +rdpdr_send_client_announce_reply(void) { + /* DR_CORE_CLIENT_ANNOUNCE_RSP */ STREAM s; s = channel_init(rdpdr_channel, 12); out_uint16_le(s, RDPDR_CTYP_CORE); @@ -201,8 +202,9 @@ static void -rdpdr_send_name(void) +rdpdr_send_client_name_request(void) { + /* DR_CORE_CLIENT_NAME_REQ */ STREAM s; uint32 hostlen; @@ -808,8 +810,8 @@ break; case PAKID_CORE_SERVER_ANNOUNCE: - rdpdr_send_connect(); - rdpdr_send_name(); + rdpdr_send_client_announce_reply(); + rdpdr_send_client_name_request(); break; case PAKID_CORE_CLIENTID_CONFIRM: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-11 07:50:52
|
Revision: 1830 http://sourceforge.net/p/rdesktop/code/1830 Author: hean01 Date: 2014-09-11 07:50:48 +0000 (Thu, 11 Sep 2014) Log Message: ----------- Remove dead code. Modified Paths: -------------- rdesktop/trunk/rdpdr.c Modified: rdesktop/trunk/rdpdr.c =================================================================== --- rdesktop/trunk/rdpdr.c 2014-09-11 06:36:25 UTC (rev 1829) +++ rdesktop/trunk/rdpdr.c 2014-09-11 07:50:48 UTC (rev 1830) @@ -300,13 +300,6 @@ out_uint32(s, 0); } } -#if 0 - out_uint32_le(s, 0x20); /* Device type 0x20 - smart card */ - out_uint32_le(s, 0); - out_uint8p(s, "SCARD", 5); - out_uint8s(s, 3); - out_uint32(s, 0); -#endif s_mark_end(s); channel_send(s, rdpdr_channel); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <as...@us...> - 2014-09-11 06:36:28
|
Revision: 1829 http://sourceforge.net/p/rdesktop/code/1829 Author: astrand Date: 2014-09-11 06:36:25 +0000 (Thu, 11 Sep 2014) Log Message: ----------- diag message spelling fix: persitent > persistent Modified Paths: -------------- rdesktop/trunk/seamless.c Modified: rdesktop/trunk/seamless.c =================================================================== --- rdesktop/trunk/seamless.c 2014-09-09 12:34:09 UTC (rev 1828) +++ rdesktop/trunk/seamless.c 2014-09-11 06:36:25 UTC (rev 1829) @@ -549,7 +549,7 @@ unsigned int res; if (!g_seamless_rdp) return (unsigned int) -1; - printf("%s persitent seamless mode.\n", enable?"Enable":"Disable"); + printf("%s persistent seamless mode.\n", enable?"Enable":"Disable"); res = seamless_send("PERSISTENT", "%d", enable); return res; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-09 12:34:17
|
Revision: 1828 http://sourceforge.net/p/rdesktop/code/1828 Author: hean01 Date: 2014-09-09 12:34:09 +0000 (Tue, 09 Sep 2014) Log Message: ----------- Make use of constants defined in specification instead of magic character numbers found in protocol stream for clarity. Modified Paths: -------------- rdesktop/trunk/constants.h rdesktop/trunk/rdpdr.c Modified: rdesktop/trunk/constants.h =================================================================== --- rdesktop/trunk/constants.h 2014-09-02 10:24:40 UTC (rev 1827) +++ rdesktop/trunk/constants.h 2014-09-09 12:34:09 UTC (rev 1828) @@ -450,6 +450,24 @@ #define TSSNDCAPS_VOLUME 0x00000002 /* RDPDR constants */ + +#define RDPDR_CTYP_CORE 0x4472 +#define RDPDR_CTYP_PRN 0x5052 + +#define PAKID_CORE_SERVER_ANNOUNCE 0x496e +#define PAKID_CORE_CLIENTID_CONFIRM 0x4343 +#define PAKID_CORE_CLIENT_NAME 0x434e +#define PAKID_CORE_DEVICE_LIST_ANNOUNCE 0x4441 +#define PAKID_CORE_DEVICE_REPLY 0x6472 +#define PAKID_CORE_DEVICE_IOREQUEST 0x4952 +#define PAKID_CORE_DEVICE_IOCOMPLETION 0x4943 +#define PAKID_CORE_SERVER_CAPABILITY 0x5350 +#define PAKID_CORE_CLIENT_CAPABILITY 0x4350 +#define PAKID_CORE_DEVICELIST_REMOVE 0x444d +#define PAKID_PRN_CACHE_DATA 0x5043 +#define PAKID_CORE_USER_LOGGEDON 0x554c +#define PAKID_PRN_USING_XPS 0x5543 + #define RDPDR_MAX_DEVICES 0x10 #define DEVICE_TYPE_SERIAL 0x01 #define DEVICE_TYPE_PARALLEL 0x02 Modified: rdesktop/trunk/rdpdr.c =================================================================== --- rdesktop/trunk/rdpdr.c 2014-09-02 10:24:40 UTC (rev 1827) +++ rdesktop/trunk/rdpdr.c 2014-09-09 12:34:09 UTC (rev 1828) @@ -2,7 +2,7 @@ rdesktop: A Remote Desktop Protocol client. Copyright (C) Matthew Chapman <matthewc.unsw.edu.au> 1999-2008 Copyright 2004-2011 Peter Astrand <as...@ce...> for Cendio AB - Copyright 2010-2013 Henrik Andersson <he...@ce...> for Cendio AB + Copyright 2010-2014 Henrik Andersson <he...@ce...> for Cendio AB This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -188,11 +188,10 @@ static void rdpdr_send_connect(void) { - uint8 magic[4] = "rDCC"; STREAM s; - s = channel_init(rdpdr_channel, 12); - out_uint8a(s, magic, 4); + out_uint16_le(s, RDPDR_CTYP_CORE); + out_uint16_le(s, PAKID_CORE_CLIENTID_CONFIRM); out_uint16_le(s, 1); /* unknown */ out_uint16_le(s, 5); out_uint32_be(s, 0x815ed39d); /* IP address (use 127.0.0.1) 0x815ed39d */ @@ -204,7 +203,6 @@ static void rdpdr_send_name(void) { - uint8 magic[4] = "rDNC"; STREAM s; uint32 hostlen; @@ -215,7 +213,8 @@ hostlen = (strlen(g_rdpdr_clientname) + 1) * 2; s = channel_init(rdpdr_channel, 16 + hostlen); - out_uint8a(s, magic, 4); + out_uint16_le(s, RDPDR_CTYP_CORE); + out_uint16_le(s, PAKID_CORE_CLIENT_NAME); out_uint16_le(s, 0x63); /* unknown */ out_uint16_le(s, 0x72); out_uint32(s, 0); @@ -256,15 +255,15 @@ static void rdpdr_send_available(void) { - - uint8 magic[4] = "rDAD"; uint32 driverlen, printerlen, bloblen; int i; STREAM s; PRINTER *printerinfo; s = channel_init(rdpdr_channel, announcedata_size()); - out_uint8a(s, magic, 4); + out_uint16_le(s, RDPDR_CTYP_CORE); + out_uint16_le(s, PAKID_CORE_DEVICE_LIST_ANNOUNCE); + out_uint32_le(s, g_num_devices); for (i = 0; i < g_num_devices; i++) @@ -317,14 +316,14 @@ rdpdr_send_completion(uint32 device, uint32 id, uint32 status, uint32 result, uint8 * buffer, uint32 length) { - uint8 magic[4] = "rDCI"; STREAM s; #ifdef WITH_SCARD scard_lock(SCARD_LOCK_RDPDR); #endif s = channel_init(rdpdr_channel, 20 + length); - out_uint8a(s, magic, 4); + out_uint16_le(s, RDPDR_CTYP_CORE); + out_uint16_le(s, PAKID_CORE_DEVICE_IOCOMPLETION); out_uint32_le(s, device); out_uint32_le(s, id); out_uint32_le(s, status); @@ -756,11 +755,10 @@ static void rdpdr_send_clientcapability(void) { - uint8 magic[4] = "rDPC"; STREAM s; - s = channel_init(rdpdr_channel, 0x50); - out_uint8a(s, magic, 4); + out_uint16_le(s, RDPDR_CTYP_CORE); + out_uint16_le(s, PAKID_CORE_CLIENT_CAPABILITY); out_uint32_le(s, 5); /* count */ out_uint16_le(s, 1); /* first */ out_uint16_le(s, 0x28); /* length */ @@ -797,58 +795,58 @@ rdpdr_process(STREAM s) { uint32 handle; - uint8 *magic; + uint16 component; + uint16 pakid; #if WITH_DEBUG_RDP5 printf("--- rdpdr_process ---\n"); hexdump(s->p, s->end - s->p); #endif - in_uint8p(s, magic, 4); - if ((magic[0] == 'r') && (magic[1] == 'D')) + in_uint16(s, component); + in_uint16(s, pakid); + + if (component == RDPDR_CTYP_CORE) { - if ((magic[2] == 'R') && (magic[3] == 'I')) + switch (pakid) { - rdpdr_process_irp(s); - return; - } - if ((magic[2] == 'n') && (magic[3] == 'I')) - { - rdpdr_send_connect(); - rdpdr_send_name(); - return; - } - if ((magic[2] == 'C') && (magic[3] == 'C')) - { - /* connect from server */ - rdpdr_send_clientcapability(); - rdpdr_send_available(); - return; - } - if ((magic[2] == 'r') && (magic[3] == 'd')) - { - /* connect to a specific resource */ - in_uint32(s, handle); + case PAKID_CORE_DEVICE_IOREQUEST: + rdpdr_process_irp(s); + break; + + case PAKID_CORE_SERVER_ANNOUNCE: + rdpdr_send_connect(); + rdpdr_send_name(); + break; + + case PAKID_CORE_CLIENTID_CONFIRM: + rdpdr_send_clientcapability(); + rdpdr_send_available(); + break; + + case PAKID_CORE_DEVICE_REPLY: + in_uint32(s, handle); #if WITH_DEBUG_RDP5 - DEBUG(("RDPDR: Server connected to resource %d\n", handle)); + DEBUG(("RDPDR: Server connected to resource %d\n", handle)); #endif - return; + break; + + case PAKID_CORE_SERVER_CAPABILITY: + break; + + default: + unimpl("RDPDR pakid 0x%x of component 0x%x\n", pakid, component); + break; + } - if ((magic[2] == 'P') && (magic[3] == 'S')) - { - /* server capability */ - return; - } } - if ((magic[0] == 'R') && (magic[1] == 'P')) + else if (component == RDPDR_CTYP_PRN) { - if ((magic[2] == 'C') && (magic[3] == 'P')) - { + if (pakid == PAKID_PRN_CACHE_DATA) printercache_process(s); - return; - } } - unimpl("RDPDR packet type %c%c%c%c\n", magic[0], magic[1], magic[2], magic[3]); + else + unimpl("RDPDR component 0x%x\n", component); } RD_BOOL This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-09-02 10:24:47
|
Revision: 1827 http://sourceforge.net/p/rdesktop/code/1827 Author: hean01 Date: 2014-09-02 10:24:40 +0000 (Tue, 02 Sep 2014) Log Message: ----------- Make sure we close the connection before redirect. Complementary fix for commit r1825. Revision Links: -------------- http://sourceforge.net/p/rdesktop/code/1825 Modified Paths: -------------- rdesktop/trunk/rdesktop.c Modified: rdesktop/trunk/rdesktop.c =================================================================== --- rdesktop/trunk/rdesktop.c 2014-08-29 10:57:24 UTC (rev 1826) +++ rdesktop/trunk/rdesktop.c 2014-09-02 10:24:40 UTC (rev 1827) @@ -1159,7 +1159,10 @@ } if (g_redirect) + { + rdp_disconnect(); continue; + } /* By setting encryption to False here, we have an encrypted login packet but unencrypted transfer of other packets */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <he...@us...> - 2014-08-29 10:57:28
|
Revision: 1826 http://sourceforge.net/p/rdesktop/code/1826 Author: hean01 Date: 2014-08-29 10:57:24 +0000 (Fri, 29 Aug 2014) Log Message: ----------- Add additional 4 bytes to stream allocation. Fixes memory corruptions where rdp_out_unistr() wants string len plus 4 bytes allocated memory. Modified Paths: -------------- rdesktop/trunk/cssp.c Modified: rdesktop/trunk/cssp.c =================================================================== --- rdesktop/trunk/cssp.c 2014-08-27 12:19:59 UTC (rev 1825) +++ rdesktop/trunk/cssp.c 2014-08-29 10:57:24 UTC (rev 1826) @@ -262,7 +262,7 @@ memset(&message, 0, sizeof(message)); // domainName [0] - s_realloc(&tmp, strlen(domain) * sizeof(uint16)); + s_realloc(&tmp, 4 + strlen(domain) * sizeof(uint16)); s_reset(&tmp); rdp_out_unistr(&tmp, domain, strlen(domain) * sizeof(uint16)); s_mark_end(&tmp); @@ -275,7 +275,7 @@ s_free(h1); // userName [1] - s_realloc(&tmp, strlen(username) * sizeof(uint16)); + s_realloc(&tmp, 4 + strlen(username) * sizeof(uint16)); s_reset(&tmp); rdp_out_unistr(&tmp, username, strlen(username) * sizeof(uint16)); s_mark_end(&tmp); @@ -289,7 +289,7 @@ s_free(h1); // password [2] - s_realloc(&tmp, strlen(password) * sizeof(uint16)); + s_realloc(&tmp, 4 + strlen(password) * sizeof(uint16)); s_reset(&tmp); rdp_out_unistr(&tmp, password, strlen(password) * sizeof(uint16)); s_mark_end(&tmp); @@ -339,7 +339,7 @@ // cardName [1] if (card) { - s_realloc(&tmp, strlen(card) * sizeof(uint16)); + s_realloc(&tmp, 4 + strlen(card) * sizeof(uint16)); s_reset(&tmp); rdp_out_unistr(&tmp, card, strlen(card) * sizeof(uint16)); s_mark_end(&tmp); @@ -355,7 +355,7 @@ // readerName [2] if (reader) { - s_realloc(&tmp, strlen(reader) * sizeof(uint16)); + s_realloc(&tmp, 4 + strlen(reader) * sizeof(uint16)); s_reset(&tmp); rdp_out_unistr(&tmp, reader, strlen(reader) * sizeof(uint16)); s_mark_end(&tmp); @@ -371,7 +371,7 @@ // containerName [3] if (container) { - s_realloc(&tmp, strlen(container) * sizeof(uint16)); + s_realloc(&tmp, 4 + strlen(container) * sizeof(uint16)); s_reset(&tmp); rdp_out_unistr(&tmp, container, strlen(container) * sizeof(uint16)); s_mark_end(&tmp); @@ -387,7 +387,7 @@ // cspName [4] if (csp) { - s_realloc(&tmp, strlen(csp) * sizeof(uint16)); + s_realloc(&tmp, 4 + strlen(csp) * sizeof(uint16)); s_reset(&tmp); rdp_out_unistr(&tmp, csp, strlen(csp) * sizeof(uint16)); s_mark_end(&tmp); 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:20:07
|
Revision: 1825 http://sourceforge.net/p/rdesktop/code/1825 Author: hean01 Date: 2014-08-27 12:19:59 +0000 (Wed, 27 Aug 2014) Log Message: ----------- Make sure we handle redirection PDU packet received within rdp_connect() loop. Fixes silent exits of rdesktop when receiving a redirection PDU before license handling which is a corner case appeared while using CredSSP+Kerberos. Modified Paths: -------------- rdesktop/trunk/rdesktop.c rdesktop/trunk/rdp.c Modified: rdesktop/trunk/rdesktop.c =================================================================== --- rdesktop/trunk/rdesktop.c 2014-08-27 12:15:21 UTC (rev 1824) +++ rdesktop/trunk/rdesktop.c 2014-08-27 12:19:59 UTC (rev 1825) @@ -1133,6 +1133,7 @@ and therefor we just clear this error before we connect to redirected server. */ g_network_error = False; + g_redirect = False; } ui_init_connection(); @@ -1157,6 +1158,8 @@ continue; } + if (g_redirect) + continue; /* By setting encryption to False here, we have an encrypted login packet but unencrypted transfer of other packets */ @@ -1169,7 +1172,6 @@ tcp_run_ui(True); deactivated = False; - g_redirect = False; g_reconnect_loop = False; rdp_main_loop(&deactivated, &ext_disc_reason); Modified: rdesktop/trunk/rdp.c =================================================================== --- rdesktop/trunk/rdp.c 2014-08-27 12:15:21 UTC (rev 1824) +++ rdesktop/trunk/rdp.c 2014-08-27 12:19:59 UTC (rev 1825) @@ -1752,6 +1752,9 @@ if (!rdp_loop(&deactivated, &ext_disc_reason)) return False; + + if (g_redirect) + return True; } 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. |
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. |