Commit Graph

288 Commits

Author SHA1 Message Date
Marc-André Moreau
c1d727e9cd freerdp: fix type build warnings 2014-05-09 15:44:49 -04:00
Marc-André Moreau
a202fe4057 freerdp: fix several type related warnings 2014-05-08 18:02:02 -04:00
Hobby-Student
18d70c6cda FreeBSD compile errors - add comments 2014-05-01 15:24:11 +02:00
Hobby-Student
7c8e1681cc FreeBSD compile errors - fix typo 2014-05-01 15:17:54 +02:00
Hobby-Student
03315cebe8 FreeBSD compile errors 2014-05-01 15:09:35 +02:00
Zhang Zhaolong
88760cbd83 libwinpr: fix memory leak in case TimerQueue is NULL. 2014-04-26 11:36:35 +08:00
Bernhard Miklautz
b817e92e5e cmake: mark required libraries for export 2014-04-23 10:16:02 +02:00
Marc-André Moreau
14b75d1b27 libfreerdp-core: fix build warnings and windows broken build 2014-03-25 15:19:52 -04:00
Benoît LeBlanc
557c082458 Merge branch 'master' of git://github.com/awakecoding/FreeRDP 2014-03-05 16:35:22 -05:00
Marc-André Moreau
fb2428309c mfreerdp: apply fixes from mac-audio branch 2014-03-03 16:57:43 -05:00
Marc-André Moreau
a143a70114 libfreerdp-core: link against libwinpr-wtsapi, dynamically register proper WtsApi implementation in FreeRDS 2014-02-16 20:41:19 -05:00
Hardening
13fc57fa86 Fix GetEventFileDescriptor() with server NamedPipe
The GetEventFileDescriptor() function was not returning the correct
file descriptor with the server HANDLE.
2014-02-07 15:18:17 +01:00
Benoît LeBlanc
53f2b8511d Merge branch 'master' of git://github.com/awakecoding/FreeRDP 2014-02-06 12:13:39 -05:00
Marc-André Moreau
c799db6855 libwinpr-synch: fix linker error 2014-02-05 13:09:25 -05:00
Benoît LeBlanc
9d929469d2 Merge branch 'master' of git://github.com/awakecoding/FreeRDP
# By Marc-André Moreau (27) and others
# Via Marc-André Moreau
* 'master' of git://github.com/awakecoding/FreeRDP: (48 commits)
  afreerdp: fix build on Android
  libwinpr-wtsapi: include wtsapi32.h on Windows
  wfreerdp: fix target exporting
  wfreerdp: fix building against OpenSSL with MONOLITHIC_BUILD and shared libraries
  wfreerdp: fix test build issues
  libwinpr-crypto: implement CryptProtectMemory/CryptUnprotectMemory
  libwinpr-memory: add missing definitions
  libwinpr-memory: start stubbing
  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.
  Fixes to process new command line options (autodetect, heartbeat, multitransport), join the MCS message channel and process auto-detect PDUs during the connection sequence.
  wfreerdp: fix build against static openssl library
  winpr-hash: fix building against openssl in static mode
  libfreerdp-gdi: fix invalidation of region with line drawing
  mfreerdp: fix hungarian keyboard '0' and 'i' key inversion
  Fixes build issue on Windows
  libwinpr-synch: add active/inactive linked list for timer queue
  libwinpr-synch: improve timer queue implementation
  libwinpr-synch: make use of head's expiration time in timer queue
  libwinpr-synch: make use of timespec for timer queue
  libwinpr-synch: improve timer queue implementation
  ...

Conflicts:
	client/common/CMakeLists.txt
2014-02-04 11:37:40 -05:00
Benoît LeBlanc
04734d8f37 ts_add_ms: replaced while() that could result in infinite lock 2014-02-04 11:35:16 -05:00
Marc-André Moreau
fab61ba946 afreerdp: fix build on Android 2014-02-03 16:03:43 -05:00
Marc-André Moreau
ae2a51fdc5 Merge branch 'master' of https://github.com/FreeRDP/FreeRDP 2014-01-28 22:58:18 -05:00
Alessandro Pilotti
9d6dcab3c6 Fixes build issue on Windows
Solves the following build issue:

error C2373: 'InitializeCriticalSectionEx' : redefinition;
different type modifiers
2014-01-28 01:09:14 +02:00
Marc-André Moreau
eb38b9f1e1 libwinpr-synch: add active/inactive linked list for timer queue 2014-01-27 10:37:38 -05:00
Marc-André Moreau
159f539ef2 libwinpr-synch: improve timer queue implementation 2014-01-26 21:56:07 -05:00
Marc-André Moreau
1f394eb81d libwinpr-synch: make use of head's expiration time in timer queue 2014-01-26 20:49:48 -05:00
Marc-André Moreau
3616b19290 libwinpr-synch: make use of timespec for timer queue 2014-01-26 20:39:13 -05:00
Marc-André Moreau
2e45ad143f libwinpr-synch: improve timer queue implementation 2014-01-26 17:21:12 -05:00
Marc-André Moreau
656766ca2e libwinpr-synch: start implementing timer queue 2014-01-26 12:37:38 -05:00
Marc-André Moreau
d5fcd78b65 libwinpr-synch: fix build on OS X 2014-01-26 00:06:27 -05:00
Marc-André Moreau
d2405a25f8 libwinpr-synch: initial waitable timer asynchronous procedure callback support 2014-01-24 22:44:23 -05:00
Marc-André Moreau
9a4fb396da libwinpr-synch: add unit test for waitable timer asynchronous procedure calls 2014-01-24 18:08:06 -05:00
Marc-André Moreau
fab0cd2779 libwinpr-synch: stub timer queues 2014-01-24 17:48:55 -05:00
Hardening
19fb713b83 Handle EINTR nicely
When we caught an EINTR during a select we should retry instead of returning an error
2014-01-07 16:36:41 +01:00
Marc-André Moreau
05947dd0b2 libfreerdp-core: fix linux build 2013-12-18 22:02:59 -05:00
Benoît LeBlanc
043b834ac2 Fixed WaitForSingleObject and WaitForMultipleObjects (timeouts incorrectly sets). Added detailed error reporting, better timeout error handling. 2013-12-17 18:21:12 -05:00
Benoît LeBlanc
f4a0216c76 Fixed WaitForSingleObject and WaitForMultipleObjects (timeouts incorrectly sets). Added detailed error reporting, better timeout error handling. 2013-12-17 18:20:33 -05:00
Marc-André Moreau
62199fc46a Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-12-10 11:54:03 -05:00
Bernhard Miklautz
2b6b4a6685 updated file headers 2013-12-04 11:44:22 +01:00
Benoît LeBlanc
13322f5ba2 Removed warning 2013-11-18 11:59:53 -05:00
Bernhard Miklautz
916f2d2dbf winpr: fixed build warnings
* moved pthread_tryjoin_np to toplevel CMakeLists.txt
* removed duplicated -DHAVE_PTHREAD_GNU_EXT
2013-11-15 16:04:04 +01:00
Armin Novak
fbc1acd70e Fixed includes and test function naming. 2013-11-15 11:43:01 +01:00
Armin Novak
5dbd94e2a3 Added unit tests for thread and mutex. 2013-11-15 11:38:59 +01:00
Armin Novak
efd2d833c2 Extended test, now also checks, if lock / unlock is working. 2013-11-15 08:38:59 +01:00
Armin Novak
e17a4d1f26 Using CLOCK_MONOTONIC instead of CLOCK_REALTIME now.
Fixed timeout comparison for systems missing GNU posix extensions.
2013-11-14 13:48:20 +01:00
Armin Novak
719c1a27d6 Fixed broken timed wait for thread and mutex objects in WaitForSingleObject. 2013-11-14 09:34:16 +01:00
Marc-André Moreau
55565e056c freerdp: export targets 2013-10-28 23:06:39 -04:00
Marc-André Moreau
89d45690c6 libwinpr-synch: don't use timed waits on OS X until they are properly ported 2013-10-25 10:48:37 -04:00
Marc-André Moreau
723e423799 libwinpr-synch: fix build on Mac OS X 2013-10-25 10:03:57 -04:00
Marc-André Moreau
d30f66b1b7 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-10-23 14:18:40 -04:00
Armin Novak
2ba55a48f8 Added missing variable declaration. 2013-10-23 12:25:04 +02:00
Armin Novak
17a024dcd1 Returing WAIT_TIMEOUT for MUTEX objects now too. 2013-10-23 12:16:23 +02:00
Armin Novak
c1051fe4c6 Always including <errno.h> now. 2013-10-23 12:13:53 +02:00
Armin Novak
7704788474 Implemented fallback functions for pthread_timedjoin_np and
pthread_mutex_timedlock functions for systems without PTHREAD_GNU_EXT
Now returning WAIT_TIMEOUT if the operation timed out.
2013-10-23 12:09:09 +02:00
Marc-André Moreau
0276b095eb Merge branch 'master' of github.com:FreeRDP/FreeRDP 2013-10-17 13:08:30 -04:00
Bernhard Miklautz
e6f3cd7dff build: link winpr-synch against winpr-sysinfo 2013-10-05 14:09:04 +02:00
Marc-André Moreau
f4e98f29ec libwinpr-pipe: add server-side named pipe waiting 2013-09-25 19:13:39 -04:00
Marc-André Moreau
3d2754e8ed libwinpr-environment: implement required functions for CreateProcess 2013-09-23 14:44:59 -04:00
Marc-André Moreau
8d142eb85f libwinpr-thread: initial CreateProcess() implementation 2013-09-22 17:23:00 -04:00
Marc-André Moreau
e8a8c1cf7f winpr: fix crashing tests 2013-09-19 14:17:00 -04:00
Marc-André Moreau
0c17eb1a23 winpr: fix unit tests on Windows 2013-09-19 13:50:00 -04:00
Marc-André Moreau
518995a05e freerdp: merge with master 2013-09-16 17:10:27 -04:00
Marc-André Moreau
4fbebba528 libwinpr-wait: add support for waiting on named pipes (non-standard) 2013-09-11 19:00:32 -04:00
Bernhard Miklautz
8c796e9afc winpr/synch: link against librt 2013-09-10 10:38:23 +02:00
Armin Novak
62356e667c Fixed erroneous patch. 2013-09-05 12:14:34 +02:00
Armin Novak
a3b531c036 Fixed issues found with clang-analyzer 2013-09-05 12:14:33 +02:00
Armin Novak
1e2455fa4a Fixed various memory leaks and compiler warnings. 2013-09-05 12:14:33 +02:00
Armin Novak
629ac4ad28 Fixed coverity issue 1047588 2013-09-05 12:14:33 +02:00
Armin Novak
04e9338668 Fixed coverity issue 1047595 2013-09-05 12:14:32 +02:00
Armin Novak
0c08b584b8 Fixed coverity issue 1047596 2013-09-05 12:14:32 +02:00
Armin Novak
2f20a8c12b Fixed various memory leaks and resource deallocation problems. 2013-08-19 17:44:52 +02:00
Armin Novak
1a3a6c3e0f Fixed check for _GNU_SOURCE pthread extensions. 2013-08-16 11:49:35 +02:00
Marc-André Moreau
1d3cf89cbc libwinpr-synch: fix wait.c build on Mac OS X 2013-08-15 15:02:24 -04:00
Armin Novak
86fd873907 Added error messages for not implemented functions. 2013-08-14 13:19:57 +02:00
Armin Novak
0752597e00 Thread timed join now only available with _GUN_SOURCE. 2013-08-14 13:18:18 +02:00
Armin Novak
c3e847f472 Implemented timeouts for WaitForSingleObject.
Added assertions for functions not implemented.
2013-08-14 13:18:18 +02:00
Marc-André Moreau
34f9985add freerdp: merge with master 2013-08-07 15:48:57 -04:00
Norbert Federa
2b25b4a520 libwinpr-sync: New complete critical section code
- Complete implementation including recursion support
- Added an intensive ctest (TestSynchCritical)
- Struct members are used exactly as Windows does it internally:
  LockCount starts at -1, RecursionCount at 0
- Same performance optimizations as internally on Windows:
    - Fast lock acquisition path using CAS -> SpinCount -> wait
    - SpinCount automatically disabled on uniprocessor systems
- On Linux SpinCount is disabled because it provided no advantage over NPTL/futex in all tests

Support for CRITICAL_SECTION's DebugInfo is not yet included (but trivial to add).
2013-08-07 10:20:04 +02:00
Marc-André Moreau
7b80b19306 cmake: add FindPixman.cmake 2013-08-05 20:50:23 -04:00
Marc-André Moreau
190ed85a3d libwinpr-synch: add detection of timerfd support 2013-08-03 19:50:17 -04:00
Marc-André Moreau
ecc543d87d Merge branch 'master' of github.com:FreeRDP/FreeRDP into multitouch 2013-08-03 16:22:09 -04:00
Norbert Federa
81ef251fc8 winpr: improve and fix locking for data structures
- Improved/completed(almost) winpr's critical section implementation
- Replaced WaitForSingleObject locking with critical sections

Note:
WaitForSingleObject should _never_ be used for granular low-contention
locks as it _always_ enters the kernel.

Just replacing WaitForSingleObject locking in Bufferpool with
EnterCriticalSection boosts the multithreaded rfx decoder
performance by almost 400% on win32.
2013-08-02 12:07:05 +02:00
Marc-André Moreau
4d2bc6ba46 libwinpr-synch: add unit tests, initial waitable timer support 2013-07-29 13:07:39 -04:00
Marc-André Moreau
007bd87ff4 libwinpr-synch: start implementing waitable timers 2013-07-29 11:57:29 -04:00
Marc-André Moreau
8a4e83bdfb libfreerdp-core: fix server-side update encoding edge case 2013-07-28 16:31:38 -04:00
Benoît LeBlanc
c17c2f811b FreeRDP:
- replaced char* by const char* in function prototypes
- MacFreeRDP: moved assignation of context function pointers
- freerdp: added more pointer and return value validations to prevent crashes
2013-07-04 14:42:40 -04:00
Norbert Federa
786df03bb6 libwinpr-synch: fix broken USleep (on WIN32)
Also reduce CPU usage by reducing the max busy-looping time to 1ms
2013-06-25 16:33:40 +02:00
Marc-André Moreau
8a2220a3d9 libwinpr-synch: remove unnecessary critical section 2013-05-16 19:27:12 -04:00
Marc-André Moreau
c0160b8015 libwinpr-handle: reduce usage of unneeded handle management functions 2013-05-16 18:27:26 -04:00
Marc-André Moreau
72e9087d1f winpr: unify handle types 2013-05-16 17:32:58 -04:00
Marc-André Moreau
e88b59c32c libfreerdp-core: improve async-transport mode 2013-04-30 17:16:38 -04:00
Marc-André Moreau
0cbdd6b641 freerdp: merge with master 2013-04-09 10:18:03 -04:00
Bernhard Miklautz
aea81fb5c8 winpr/mutex: Support for bInitialOwner in CreateMutex 2013-04-03 19:35:45 +02:00
Marc-André Moreau
022ceec22a xfreerdp: split client into executable and library 2013-04-02 16:22:30 -04:00
Marc-André Moreau
d13f89d359 xfreerdp: modify way to return thread exit code 2013-04-02 14:51:12 -04:00
Hardening
7701c9d934 Replace printf(...) by fprintf(stderr, ...) 2013-03-28 23:06:34 +01:00
Marc-André Moreau
8b9ea43d78 libfreerdp-core: fix locking with TS Gateway 2013-03-27 20:06:10 -04:00
Marc-André Moreau
882c914e6c channels/tsmf: fix build 2013-03-21 14:45:03 -04:00
Bernhard Miklautz
77df254265 Fixed some build warnings 2013-03-15 18:22:49 +01:00
Marc-André Moreau
47a7d54370 xfreerdp: stabilize asynchronous X11 event handling 2013-02-11 20:38:19 -05:00
Marc-André Moreau
4269ac5c14 xfreerdp: improve asynchronicity 2013-02-09 17:13:53 -05:00
Marc-André Moreau
a00ac1f689 Merge pull request #949 from hardening/eventfd
Add support for eventfd
2013-02-02 13:30:33 -08:00
hardening
497041b44e event: don't select then write when using eventfd, write directly 2013-02-01 00:47:44 +01:00
C-o-r-E
caa1032cce Merge remote-tracking branch 'upstream/master' 2013-01-23 16:10:57 -05:00
hardening
f0d5e24979 Added preliminary support for eventfd 2013-01-23 21:59:01 +01:00
C-o-r-E
58e5034d5f mfreerdp-server: replaced xnew/xzalloc calls 2013-01-23 12:54:09 -05:00
Marc-André Moreau
683e395bf8 Merge pull request #918 from awakecoding/master
RemoteFX Parallel Processing of Tiles
2013-01-22 19:03:06 -08:00
Marc-André Moreau
74bba0e767 libwinpr-pool: improve thread pool API on Linux 2013-01-22 16:19:32 -05:00
hardening
7b37f92b2b WaitForMultipleObjects should conform to API and return WAIT_FAILED when nCount is 0 2013-01-22 21:58:06 +01:00
Marc-André Moreau
f2f1c641a3 libwinpr-synch: merge with master 2012-12-21 12:22:37 -05:00
Vic Lee
502368dd95 libwinpr-synch: proper handling fd event creation on Windows. 2012-12-21 11:41:18 +08:00
Marc-André Moreau
8c746976bb libfreerdp-core: return proper event handles on Windows 2012-12-21 11:27:44 +08:00
Marc-André Moreau
05e6157d29 libfreerdp-core: return proper event handles on Windows 2012-12-19 12:16:39 -05:00
Marc-André Moreau
f9321045a4 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2012-12-17 10:41:26 -05:00
Alam Arias
7b0f4ce1ea libfreerdp-core: llvm said fd may not be set 2012-12-16 23:03:00 -05:00
Marc-André Moreau
6cdb09740c wfreerdp: fix build 2012-12-14 13:11:07 -05:00
Marc-André Moreau
92bf3e4ae0 libfreerdp-utils: remove sleep utils in favor of WinPR 2012-12-14 00:58:48 -05:00
Marc-André Moreau
7ff2be09b2 libfreerdp-core: more TSG memory cleanup 2012-12-12 22:03:40 -05:00
Marc-André Moreau
d8fa43c526 libwinpr-synch: fix race condition in event handling 2012-12-03 14:57:15 -05:00
Marc-André Moreau
3936a19914 libfreerdp-core: add asynchronous send queue 2012-11-28 13:38:01 -05:00
Marc-André Moreau
d0792ea4d1 libwinpr-synch: implement pipe-based semaphore 2012-11-28 12:47:04 -05:00
Marc-André Moreau
68e7e077bb libwinpr-synch: fix build on Windows 2012-11-26 20:34:36 -05:00
Marc-André Moreau
57d4a07af9 libfreerdp-utils: replace internal wait_obj implementation 2012-11-26 18:02:41 -05:00
Marc-André Moreau
e62860ab29 cmake: replace FindOptionalPackage macros with FindFeature macros 2012-11-02 19:27:01 -04:00
Marc-André Moreau
06fa85f31c cmake: refactoring of MONOLITHIC_BUILD 2012-10-13 17:30:59 -04:00
Marc-André Moreau
40eea7c76b cmake: rename WITH_MONOLITHIC_BUILD to MONOLITHIC_BUILD 2012-10-08 22:55:06 -04:00
Marc-André Moreau
9aa1217c4e libwinpr-pipe: implement anonymous pipes 2012-10-07 20:25:50 -04:00
Marc-André Moreau
e828feccb7 cmake: organize solution folders 2012-10-04 09:42:23 -04:00
Marc-André Moreau
12554c172f winpr: fix build on Windows 2012-10-03 17:53:03 -04:00
Marc-André Moreau
fcc9f91302 cmake: add support for solution groups 2012-09-30 22:58:59 -04:00
Marc-André Moreau
0df7bcf632 libwinpr-file: added CreateFile/DeleteFile 2012-09-26 16:25:23 -04:00
Marc-André Moreau
a11a69c70f channels/rdpdr/disk: replace thread utils by WinPR thread API 2012-09-23 13:54:14 -04:00
Marc-André Moreau
7d7536f649 libwinpr: add module definition files 2012-09-21 13:02:54 -04:00
Marc-André Moreau
403d85f080 cmake: bump soname version to 1.1.0 2012-09-20 20:45:56 -04:00
Marc-André Moreau
9cc76d0b02 libwinpr-synch: fix compilation on Windows 2012-09-19 03:07:47 +02:00
Marc-André Moreau
ca6a37eed4 libwinpr-synch: implemented semaphores + thread wait 2012-09-18 19:24:03 -04:00
Marc-André Moreau
4bd217055c libwinpr-synch: implemented Win32 Events 2012-09-18 18:36:13 -04:00
Marc-André Moreau
13dbbb9513 libfreerdp-utils: removing mutex util in favor of WinPR mutex API 2012-09-18 17:34:11 -04:00
Marc-André Moreau
78723f019f libwinpr-synch: stubbed more 2012-09-18 15:51:33 -04:00
Marc-André Moreau
deec68be19 libwinpr-synch: stubbed larger portions of the Synchronization API 2012-09-18 12:57:19 -04:00
Marc-André Moreau
faa4311232 libwinpr: add proper config.h inclusions 2012-08-14 17:20:53 -04:00
Marc-André Moreau
384af1d93b include: move winpr include directory inside winpr 2012-08-14 15:49:39 -04:00