platform/upstream/freerdp.git
10 years agowfreerdp: floatbar: enabled.
Zhang Zhaolong [Thu, 27 Feb 2014 03:43:52 +0000 (11:43 +0800)]
wfreerdp: floatbar: enabled.

10 years agowfreerdp: floatbar: add implementation.
Zhang Zhaolong [Thu, 27 Feb 2014 03:40:21 +0000 (11:40 +0800)]
wfreerdp: floatbar: add implementation.

10 years agowfreerdp: floatbar: add bmp resources ids.
Zhang Zhaolong [Thu, 27 Feb 2014 03:38:21 +0000 (11:38 +0800)]
wfreerdp: floatbar: add bmp resources ids.

10 years agowfreerdp: floatbar: add bmp resources.
Zhang Zhaolong [Thu, 27 Feb 2014 03:37:17 +0000 (11:37 +0800)]
wfreerdp: floatbar: add bmp resources.

10 years agoMerge pull request #1689 from zhangzl2013/drive
Marc-André Moreau [Wed, 12 Feb 2014 12:23:34 +0000 (07:23 -0500)]
Merge pull request #1689 from zhangzl2013/drive

Drive channel fix on windows

10 years agodrive: win: add file rename support.
Zhang Zhaolong [Wed, 12 Feb 2014 10:13:42 +0000 (18:13 +0800)]
drive: win: add file rename support.

10 years agodrive: win: add 64 bits support.
Zhang Zhaolong [Wed, 12 Feb 2014 09:52:28 +0000 (17:52 +0800)]
drive: win: add 64 bits support.

10 years agodrive: win: fix file open flag.
Zhang Zhaolong [Wed, 12 Feb 2014 09:45:17 +0000 (17:45 +0800)]
drive: win: fix file open flag.

10 years agodrive: minor code formatting.
Zhang Zhaolong [Wed, 12 Feb 2014 03:34:33 +0000 (11:34 +0800)]
drive: minor code formatting.

10 years agoMerge pull request #1686 from zhangzl2013/wfreerdp-bugfix
Marc-André Moreau [Tue, 11 Feb 2014 14:14:38 +0000 (09:14 -0500)]
Merge pull request #1686 from zhangzl2013/wfreerdp-bugfix

wfreerdp: fix gdi polyline mistake.

10 years agoMerge pull request #1687 from zhangzl2013/audin-winmm
Marc-André Moreau [Tue, 11 Feb 2014 14:10:28 +0000 (09:10 -0500)]
Merge pull request #1687 from zhangzl2013/audin-winmm

add winmm audin subsystem

10 years agowfreerdp: add winmm audin subsystem.
Zhang Zhaolong [Tue, 11 Feb 2014 09:30:57 +0000 (17:30 +0800)]
wfreerdp: add winmm audin subsystem.

10 years agodrdynvc: fix free invalid pointer.
Zhang Zhaolong [Tue, 11 Feb 2014 09:28:12 +0000 (17:28 +0800)]
drdynvc: fix free invalid pointer.

10 years agoMerge pull request #1684 from bmiklautz/issue_1683
Marc-André Moreau [Mon, 10 Feb 2014 13:15:28 +0000 (08:15 -0500)]
Merge pull request #1684 from bmiklautz/issue_1683

smartcard: fix PCSC detection/build on OS X

10 years agowfreerdp: fix gdi polyline mistake.
Zhang Zhaolong [Mon, 10 Feb 2014 06:43:58 +0000 (14:43 +0800)]
wfreerdp: fix gdi polyline mistake.

10 years agobuild: cleaned up and fixed PCSC detection
Bernhard Miklautz [Sun, 9 Feb 2014 14:49:33 +0000 (15:49 +0100)]
build: cleaned up and fixed PCSC detection

10 years agosmartcard: added missing defines for OS X
Bernhard Miklautz [Sun, 9 Feb 2014 13:53:59 +0000 (14:53 +0100)]
smartcard: added missing defines for OS X

10 years agosmartcard: fix PCSC detection/build on OS X
Bernhard Miklautz [Thu, 6 Feb 2014 23:14:46 +0000 (00:14 +0100)]
smartcard: fix PCSC detection/build on OS X

fixes #1683

10 years agoMerge pull request #1679 from awakecoding/master
Marc-André Moreau [Wed, 5 Feb 2014 18:49:38 +0000 (13:49 -0500)]
Merge pull request #1679 from awakecoding/master

Robustness, WinPR, Codecs, CMake

10 years agolibwinpr-synch: fix linker error
Marc-André Moreau [Wed, 5 Feb 2014 18:09:25 +0000 (13:09 -0500)]
libwinpr-synch: fix linker error

10 years agolibfreerdp-core: fix ignored port settings for TS Gateway and vmconnect
Marc-André Moreau [Wed, 5 Feb 2014 16:54:42 +0000 (11:54 -0500)]
libfreerdp-core: fix ignored port settings for TS Gateway and vmconnect

10 years agolibfreerdp-codec: add more checks in MPPC compression test
Marc-André Moreau [Wed, 5 Feb 2014 13:54:10 +0000 (08:54 -0500)]
libfreerdp-codec: add more checks in MPPC compression test

10 years agolibfreerdp-codec: port MPPC unit tests
Marc-André Moreau [Wed, 5 Feb 2014 13:37:13 +0000 (08:37 -0500)]
libfreerdp-codec: port MPPC unit tests

10 years agoafreerdp: fix build on Android
Marc-André Moreau [Mon, 3 Feb 2014 21:03:43 +0000 (16:03 -0500)]
afreerdp: fix build on Android

10 years agolibwinpr-wtsapi: include wtsapi32.h on Windows
Marc-André Moreau [Mon, 3 Feb 2014 05:56:16 +0000 (00:56 -0500)]
libwinpr-wtsapi: include wtsapi32.h on Windows

10 years agowfreerdp: fix target exporting
Marc-André Moreau [Mon, 3 Feb 2014 03:37:54 +0000 (22:37 -0500)]
wfreerdp: fix target exporting

10 years agowfreerdp: fix building against OpenSSL with MONOLITHIC_BUILD and shared libraries
Marc-André Moreau [Sun, 2 Feb 2014 00:53:45 +0000 (19:53 -0500)]
wfreerdp: fix building against OpenSSL with MONOLITHIC_BUILD and shared libraries

10 years agowfreerdp: fix test build issues
Marc-André Moreau [Sat, 1 Feb 2014 17:50:28 +0000 (12:50 -0500)]
wfreerdp: fix test build issues

10 years agolibwinpr-crypto: implement CryptProtectMemory/CryptUnprotectMemory
Marc-André Moreau [Sat, 1 Feb 2014 16:52:04 +0000 (11:52 -0500)]
libwinpr-crypto: implement CryptProtectMemory/CryptUnprotectMemory

10 years agolibwinpr-memory: add missing definitions
Marc-André Moreau [Sat, 1 Feb 2014 01:48:31 +0000 (20:48 -0500)]
libwinpr-memory: add missing definitions

10 years agolibwinpr-memory: start stubbing
Marc-André Moreau [Fri, 31 Jan 2014 23:27:58 +0000 (18:27 -0500)]
libwinpr-memory: start stubbing

10 years agoMerge branch 'awakecoding' of github.com:vworkspace/FreeRDP
Marc-André Moreau [Fri, 31 Jan 2014 22:20:47 +0000 (17:20 -0500)]
Merge branch 'awakecoding' of github.com:vworkspace/FreeRDP

10 years agoIncreased size of stream on GCC conference create request from 512 to 1024. For...
vworkspace [Fri, 31 Jan 2014 18:52:37 +0000 (13:52 -0500)]
Increased size of stream on GCC conference create request from 512 to 1024.  For large numbers of static virtual channels, the stream was being overflowed and was causing crashes.

10 years agoMerge branch 'awakecoding' of github.com:vworkspace/FreeRDP
Marc-André Moreau [Fri, 31 Jan 2014 15:48:31 +0000 (10:48 -0500)]
Merge branch 'awakecoding' of github.com:vworkspace/FreeRDP

10 years agoFixes to process new command line options (autodetect, heartbeat, multitransport...
Mike McDonald [Thu, 30 Jan 2014 03:53:32 +0000 (22:53 -0500)]
Fixes to process new command line options (autodetect, heartbeat, multitransport), join the MCS message channel and process auto-detect PDUs during the connection sequence.

10 years agowfreerdp: fix build against static openssl library
Marc-André Moreau [Wed, 29 Jan 2014 20:27:43 +0000 (15:27 -0500)]
wfreerdp: fix build against static openssl library

10 years agoMerge branch 'master' of https://github.com/FreeRDP/FreeRDP
Marc-André Moreau [Wed, 29 Jan 2014 03:58:18 +0000 (22:58 -0500)]
Merge branch 'master' of https://github.com/FreeRDP/FreeRDP

10 years agoMerge pull request #1672 from cloudbase/master
Marc-André Moreau [Wed, 29 Jan 2014 03:52:42 +0000 (19:52 -0800)]
Merge pull request #1672 from cloudbase/master

Fixes build issue on Windows

10 years agowinpr-hash: fix building against openssl in static mode
Marc-André Moreau [Wed, 29 Jan 2014 03:41:11 +0000 (22:41 -0500)]
winpr-hash: fix building against openssl in static mode

10 years agolibfreerdp-gdi: fix invalidation of region with line drawing
Marc-André Moreau [Wed, 29 Jan 2014 02:46:47 +0000 (21:46 -0500)]
libfreerdp-gdi: fix invalidation of region with line drawing

10 years agomfreerdp: fix hungarian keyboard '0' and 'i' key inversion
Marc-André Moreau [Tue, 28 Jan 2014 21:23:42 +0000 (16:23 -0500)]
mfreerdp: fix hungarian keyboard '0' and 'i' key inversion

10 years agoFixes build issue on Windows
Alessandro Pilotti [Mon, 27 Jan 2014 23:06:10 +0000 (01:06 +0200)]
Fixes build issue on Windows

Solves the following build issue:

error C2373: 'InitializeCriticalSectionEx' : redefinition;
different type modifiers

10 years agolibwinpr-synch: add active/inactive linked list for timer queue
Marc-André Moreau [Mon, 27 Jan 2014 15:37:38 +0000 (10:37 -0500)]
libwinpr-synch: add active/inactive linked list for timer queue

10 years agolibwinpr-synch: improve timer queue implementation
Marc-André Moreau [Mon, 27 Jan 2014 02:56:07 +0000 (21:56 -0500)]
libwinpr-synch: improve timer queue implementation

10 years agolibwinpr-synch: make use of head's expiration time in timer queue
Marc-André Moreau [Mon, 27 Jan 2014 01:49:48 +0000 (20:49 -0500)]
libwinpr-synch: make use of head's expiration time in timer queue

10 years agolibwinpr-synch: make use of timespec for timer queue
Marc-André Moreau [Mon, 27 Jan 2014 01:39:13 +0000 (20:39 -0500)]
libwinpr-synch: make use of timespec for timer queue

10 years agolibwinpr-synch: improve timer queue implementation
Marc-André Moreau [Sun, 26 Jan 2014 22:21:12 +0000 (17:21 -0500)]
libwinpr-synch: improve timer queue implementation

10 years agolibwinpr-synch: start implementing timer queue
Marc-André Moreau [Sun, 26 Jan 2014 17:37:32 +0000 (12:37 -0500)]
libwinpr-synch: start implementing timer queue

10 years agolibwinpr-synch: fix build on OS X
Marc-André Moreau [Sun, 26 Jan 2014 05:06:27 +0000 (00:06 -0500)]
libwinpr-synch: fix build on OS X

10 years agoMerge branch 'auto-detect' of github.com:vworkspace/FreeRDP
Marc-André Moreau [Sat, 25 Jan 2014 22:08:43 +0000 (17:08 -0500)]
Merge branch 'auto-detect' of github.com:vworkspace/FreeRDP

Conflicts:
include/freerdp/settings.h
libfreerdp/core/gcc.c
libfreerdp/core/gcc.h
libfreerdp/core/mcs.h
libfreerdp/core/rdp.c

10 years agoMerge branch 'master' of github.com:FreeRDP/FreeRDP
Marc-André Moreau [Sat, 25 Jan 2014 21:34:34 +0000 (16:34 -0500)]
Merge branch 'master' of github.com:FreeRDP/FreeRDP

10 years agolibwinpr-synch: initial waitable timer asynchronous procedure callback support
Marc-André Moreau [Sat, 25 Jan 2014 03:44:23 +0000 (22:44 -0500)]
libwinpr-synch: initial waitable timer asynchronous procedure callback support

10 years agolibwinpr-synch: add unit test for waitable timer asynchronous procedure calls
Marc-André Moreau [Fri, 24 Jan 2014 23:08:06 +0000 (18:08 -0500)]
libwinpr-synch: add unit test for waitable timer asynchronous procedure calls

10 years agolibwinpr-synch: stub timer queues
Marc-André Moreau [Fri, 24 Jan 2014 22:48:55 +0000 (17:48 -0500)]
libwinpr-synch: stub timer queues

10 years agolibfreerdp-core: improve encoding and decoding of GCC core data block
Marc-André Moreau [Fri, 24 Jan 2014 18:03:37 +0000 (13:03 -0500)]
libfreerdp-core: improve encoding and decoding of GCC core data block

10 years agolibwinpr-sspi: fix encoding of server-side NTLM challenge message
Marc-André Moreau [Fri, 24 Jan 2014 18:02:45 +0000 (13:02 -0500)]
libwinpr-sspi: fix encoding of server-side NTLM challenge message

10 years agoAdded heartbeat to rdpRdp struct and added calls to heartbeat constructor and destructor
Mike McDonald [Fri, 24 Jan 2014 13:38:28 +0000 (08:38 -0500)]
Added heartbeat to rdpRdp struct and added calls to heartbeat constructor and destructor

10 years agoAdded heartbeat code
Mike McDonald [Fri, 24 Jan 2014 03:23:47 +0000 (22:23 -0500)]
Added heartbeat code

10 years agoFirst cut at network characteristics auto-detect and multitransport protocol
Mike McDonald [Thu, 23 Jan 2014 23:01:31 +0000 (18:01 -0500)]
First cut at network characteristics auto-detect and multitransport protocol

10 years agolibfreerdp-core: more GCC and MCS fixes
Marc-André Moreau [Thu, 23 Jan 2014 22:41:05 +0000 (17:41 -0500)]
libfreerdp-core: more GCC and MCS fixes

10 years agolibfreerdp-core: fix and update parsing of server-side GCC client data blocks
Marc-André Moreau [Thu, 23 Jan 2014 21:00:02 +0000 (16:00 -0500)]
libfreerdp-core: fix and update parsing of server-side GCC client data blocks

10 years agoMerge pull request #1664 from vworkspace/auto-reconnect
Marc-André Moreau [Thu, 23 Jan 2014 18:15:18 +0000 (10:15 -0800)]
Merge pull request #1664 from vworkspace/auto-reconnect

Addition of auto reconnect to FreeRDP core and X11 client

10 years agoMerge pull request #1668 from bmiklautz/issue_1654
Marc-André Moreau [Thu, 23 Jan 2014 18:13:45 +0000 (10:13 -0800)]
Merge pull request #1668 from bmiklautz/issue_1654

xfreerdp: handle negative mouse coordinates

10 years agoxfreerdp: handle negative mouse coordinates
Bernhard Miklautz [Wed, 22 Jan 2014 14:16:14 +0000 (15:16 +0100)]
xfreerdp: handle negative mouse coordinates

If the pointer is moved out a window relatives coordinates can get negative
in X. This case wasn't handled.

fixed #1654

10 years agoChanged #define for SOL_TCP to be IPPROTO_TCP instead of 6
Mike McDonald [Tue, 21 Jan 2014 16:06:29 +0000 (11:06 -0500)]
Changed #define for SOL_TCP to be IPPROTO_TCP instead of 6

10 years agoAdded #define for SOL_TCP to fix compilation error on iOS
Mike McDonald [Tue, 21 Jan 2014 13:27:21 +0000 (08:27 -0500)]
Added #define for SOL_TCP to fix compilation error on iOS

10 years agoModified FreeRDP core to ignore SIGPIPE signal. This signal was being generated...
Mike McDonald [Mon, 20 Jan 2014 16:20:50 +0000 (11:20 -0500)]
Modified FreeRDP core to ignore SIGPIPE signal.  This signal was being generated during a call to SSL_shutdown when the socket is in a disconnected state.  The proper way to handle this is to ignore SIGPIPE and allow the write system call to report an errno of EPIPE.

10 years agoRevert "Fixed tls_read and tls_write to prevent a subsequent crash in SSL_shutdown...
Mike McDonald [Mon, 20 Jan 2014 16:09:45 +0000 (11:09 -0500)]
Revert "Fixed tls_read and tls_write to prevent a subsequent crash in SSL_shutdown when read/write errors occur."

This reverts commit 2a4923835143b4196ca7cafdaece687e93e79beb.

10 years agoRevert "Modified TLS code to handle disconnects a little cleaner."
Mike McDonald [Mon, 20 Jan 2014 16:08:33 +0000 (11:08 -0500)]
Revert "Modified TLS code to handle disconnects a little cleaner."

This reverts commit c273a4ac5e7cca51fc7dbdc10a683227bb164120.

10 years agoRevert "Fixed comment in tls_disconnect."
Mike McDonald [Mon, 20 Jan 2014 16:06:08 +0000 (11:06 -0500)]
Revert "Fixed comment in tls_disconnect."

This reverts commit 7f040406acca031d9e7f2e8c397a8348e13e9db9.

10 years agoMerge pull request #22 from hardening/fix_eintr
Marc-André Moreau [Mon, 20 Jan 2014 13:20:51 +0000 (05:20 -0800)]
Merge pull request #22 from hardening/fix_eintr

Fix eintr

10 years agoFixed comment in tls_disconnect.
Mike McDonald [Fri, 17 Jan 2014 16:54:35 +0000 (11:54 -0500)]
Fixed comment in tls_disconnect.

10 years agoModified TLS code to handle disconnects a little cleaner.
Mike McDonald [Fri, 17 Jan 2014 16:51:39 +0000 (11:51 -0500)]
Modified TLS code to handle disconnects a little cleaner.

10 years agoFixed tls_read and tls_write to prevent a subsequent crash in SSL_shutdown when read...
Mike McDonald [Fri, 17 Jan 2014 15:24:13 +0000 (10:24 -0500)]
Fixed tls_read and tls_write to prevent a subsequent crash in SSL_shutdown when read/write errors occur.

10 years agoAdded auto reconnect to FreeRDP core and X11 client
Mike McDonald [Thu, 16 Jan 2014 22:38:56 +0000 (17:38 -0500)]
Added auto reconnect to FreeRDP core and X11 client

10 years agoMerge pull request #1662 from dpoe/master
Marc-André Moreau [Wed, 15 Jan 2014 03:51:44 +0000 (19:51 -0800)]
Merge pull request #1662 from dpoe/master

Add additional evdev key mappings for multimedia and Korean keyboards

10 years agoadd additional evdev key mappings for multimedia and Korean keyboards
Daryl Poe [Tue, 14 Jan 2014 22:18:20 +0000 (15:18 -0700)]
add additional evdev key mappings for multimedia and Korean keyboards

10 years agoMerge pull request #23 from hardening/planar_perf
Marc-André Moreau [Tue, 14 Jan 2014 16:40:14 +0000 (08:40 -0800)]
Merge pull request #23 from hardening/planar_perf

Improve performance for delta_encoder

10 years agoImprove performance for delta_encoder
Hardening [Tue, 14 Jan 2014 08:44:38 +0000 (09:44 +0100)]
Improve performance for delta_encoder

This patch inline the case of the first line to drop the if() that was done
at each loop.
Some variable have been renamed for code clarity.

10 years agolibfreerdp-codec: got planar encoder to work 100% correctly
Marc-André Moreau [Tue, 14 Jan 2014 03:16:10 +0000 (22:16 -0500)]
libfreerdp-codec: got planar encoder to work 100% correctly

10 years agolibfreerdp-codec: minor planar codec fix (undocumented behaviour for RLE)
Marc-André Moreau [Sun, 12 Jan 2014 21:28:06 +0000 (16:28 -0500)]
libfreerdp-codec: minor planar codec fix (undocumented behaviour for RLE)

10 years agolibfreerdp-core: implement parsing of less frequent core rdp messages
Marc-André Moreau [Sun, 12 Jan 2014 03:54:08 +0000 (22:54 -0500)]
libfreerdp-core: implement parsing of less frequent core rdp messages

10 years agoMerge branch 'master' of github.com:FreeRDP/FreeRDP
Marc-André Moreau [Wed, 8 Jan 2014 16:16:35 +0000 (11:16 -0500)]
Merge branch 'master' of github.com:FreeRDP/FreeRDP

10 years agoMerge pull request #1656 from hardening/CVE-2014-0791-v2
Marc-André Moreau [Wed, 8 Jan 2014 16:01:38 +0000 (08:01 -0800)]
Merge pull request #1656 from hardening/CVE-2014-0791-v2

Fix CVE-2014-0791

10 years agoFix CVE-2014-0791
Hardening [Wed, 8 Jan 2014 15:12:51 +0000 (16:12 +0100)]
Fix CVE-2014-0791

This patch fixes CVE-2014-0791, the remaining length in the stream is checked
before doing some malloc().

10 years agoMerge pull request #1640 from hardening/capafix2
Marc-André Moreau [Wed, 8 Jan 2014 14:17:24 +0000 (06:17 -0800)]
Merge pull request #1640 from hardening/capafix2

More security fixes for capabilities

10 years agoHandle EINTR nicely
Hardening [Tue, 7 Jan 2014 15:36:41 +0000 (16:36 +0100)]
Handle EINTR nicely

When we caught an EINTR during a select we should retry instead of returning an error

10 years agoMore security fixes for capabilities
Hardening [Wed, 18 Dec 2013 09:50:46 +0000 (10:50 +0100)]
More security fixes for capabilities

This patch fixes a security issue which would allow an attackant to set bytes
to 1 at choosen places.
It also fixes a warning when DEBUG_CAPABILITIES is set.

10 years agolibfreerdp-codec: reduce size of GDI bitmap encoder
Marc-André Moreau [Fri, 20 Dec 2013 21:02:20 +0000 (16:02 -0500)]
libfreerdp-codec: reduce size of GDI bitmap encoder

10 years agolibfreerdp-codec: make planar encoder pass compression/decompression tests
Marc-André Moreau [Fri, 20 Dec 2013 07:41:25 +0000 (02:41 -0500)]
libfreerdp-codec: make planar encoder pass compression/decompression tests

10 years agolibfreerdp-codec: add new planar codec test data
Marc-André Moreau [Fri, 20 Dec 2013 00:56:58 +0000 (19:56 -0500)]
libfreerdp-codec: add new planar codec test data

10 years agolibwinpr-input: minor code style cleanup
Marc-André Moreau [Thu, 19 Dec 2013 03:53:34 +0000 (22:53 -0500)]
libwinpr-input: minor code style cleanup

10 years agolibfreerdp-core: fix linux build
Marc-André Moreau [Thu, 19 Dec 2013 03:02:59 +0000 (22:02 -0500)]
libfreerdp-core: fix linux build

10 years agoMerge branch 'master' of github.com:mrthebunny/FreeRDP
Marc-André Moreau [Thu, 19 Dec 2013 02:52:41 +0000 (21:52 -0500)]
Merge branch 'master' of github.com:mrthebunny/FreeRDP

10 years agolibfreerdp-core: send Access Denied TLS alert when server-side NLA fails
Marc-André Moreau [Thu, 19 Dec 2013 00:44:18 +0000 (19:44 -0500)]
libfreerdp-core: send Access Denied TLS alert when server-side NLA fails

10 years agoFixed mac cli message box message
Benoît LeBlanc [Wed, 18 Dec 2013 18:00:16 +0000 (13:00 -0500)]
Fixed mac cli message box message

10 years agoFixed handling gateway authentication error
Benoît LeBlanc [Wed, 18 Dec 2013 17:59:53 +0000 (12:59 -0500)]
Fixed handling gateway authentication error
Handle NULL pdu

10 years agoCode cleanup
Benoît LeBlanc [Wed, 18 Dec 2013 17:44:40 +0000 (12:44 -0500)]
Code cleanup

10 years agoMore security fixes for capabilities
Hardening [Wed, 18 Dec 2013 09:54:02 +0000 (10:54 +0100)]
More security fixes for capabilities

This patch fixes a security issue which would allow an attackant to set bytes to 1 at choosen places.
It also fixes a warning when DEBUG_CAPABILITIES is set.

10 years agoFixed WaitForSingleObject and WaitForMultipleObjects (timeouts incorrectly sets)...
Benoît LeBlanc [Tue, 17 Dec 2013 23:21:12 +0000 (18:21 -0500)]
Fixed WaitForSingleObject and WaitForMultipleObjects (timeouts incorrectly sets). Added detailed error reporting, better timeout error handling.