Marc-André Moreau
b70ecbbf62
libfreerdp-core: decouple initialization of rdpSettings from freerdp* instance
2013-10-12 18:20:25 -04:00
Norbert Federa
6f9a8dbc1e
winpr: greatly improved NtCurrentTeb performance
...
Use pthread_setspecific/pthread_getspecific to store/retrieve the thread
environment block (TEB). Use pthread_once to trigger the creation of that
data from within NtCurrentTeb.
This allows us to get rid of the process environment block stuff which
was only used to provide serialized access to a thread table in order to
retrieve the TEB.
NtCurrentTeb is currently only as a per-thread storage location for the
last error value used by SetLastError and GetLastError.
Also made the TestErrorSetLastError CTest a bit more demanding.
It makes sure the 4 threads run for at least 2 seconds.
Each thread constantly calls SetLastError with a random value and checks
if GetLastError returns the same value again. The total amount of
these iterations is calculated in order to measure the performance.
This change increases the NtCurrentTeb performance by roughly 50% on
linux and by several thousand percent (yes) on Mac OS X.
Thanks for watching.
2013-10-11 19:34:23 +02:00
Marc-André Moreau
7dd95b9587
libwinpr-crypto: improve Schannel unit test
2013-10-11 04:01:07 -04:00
Marc-André Moreau
3d7d4c50db
libwinpr-utils: fix IPv4 checksum and TCP sequence numbers with wlog packet messages
2013-10-09 16:37:45 -04:00
Marc-André Moreau
90b90ad496
libwinpr-utils: improve quality of data for reconstructed IP headers
2013-10-09 15:11:56 -04:00
Marc-André Moreau
7bdb63ad89
libwinpr-utils: initial wlog packet header reconstruction
2013-10-09 14:23:38 -04:00
Marc-André Moreau
166e3fbf2d
libwinpr-utils: start reconstructing IP headers for wlog packet message
2013-10-09 13:37:53 -04:00
Marc-André Moreau
a3f0f4c8dc
libfreerdp-core: started logging packets to pcap file
2013-10-08 23:43:57 -04:00
Marc-André Moreau
684db03578
libwinpr-utils: start implement wlog packet appender
2013-10-08 23:18:59 -04:00
Marc-André Moreau
07afc88878
libwinpr-utils: add some configurability to wlog with environment variables
2013-10-08 22:35:14 -04:00
Marc-André Moreau
a87e7deac4
libwinpr-utils: fix wlog build warnings
2013-10-08 19:39:03 -04:00
Marc-André Moreau
c96207fd69
Merge pull request #10 from MartinHaimberger/fixLogWarnings
...
fixed warining fo not constant log format string
2013-10-08 15:54:32 -07:00
Marc-André Moreau
85e6729854
Merge pull request #9 from hardening/awakecoding
...
Fix function prototype
2013-10-08 15:54:21 -07:00
Marc-André Moreau
1ee2fa73cf
Merge pull request #8 from MartinHaimberger/wlogfix
...
fixed memory leak in wlog
2013-10-08 15:54:09 -07:00
Marc-André Moreau
353816e050
Merge pull request #6 from MartinHaimberger/loglevel
...
Loglevel
2013-10-08 15:53:54 -07:00
Marc-André Moreau
fdae43aafc
mfreerdp: fix keyboard mapping for toggle keys
2013-10-07 16:43:23 -04:00
Bernhard Miklautz
57d295441f
windows build: use different .def file for xp
...
Use different def file for windows < 5.1.
2013-10-07 15:03:50 +02:00
Martin Haimberger
7d35c1adaf
fixed warining fo not constant log format string
2013-10-07 02:20:01 -07:00
Bernhard Miklautz
e6f3cd7dff
build: link winpr-synch against winpr-sysinfo
2013-10-05 14:09:04 +02:00
Hardening
c37c86601d
Fix function prototype
...
This patch fixes the prototypes with warnings enabled.
2013-10-04 23:07:31 +02:00
Marc-André Moreau
97447420c9
Merge branch 'master' of github.com:awakecoding/FreeRDP
2013-10-04 11:34:00 -04:00
Marc-André Moreau
e37981e57c
libwinpr-utils: improved binary appender
2013-10-04 11:33:49 -04:00
Martin Haimberger
fea6d83367
fixed memory leak in wlog
2013-10-04 03:51:10 -07:00
Martin Haimberger
5e073f5f17
loglevel filtering fix
2013-10-03 06:32:12 -07:00
Martin Haimberger
02487da987
added c++ declaration in wlog
2013-10-03 05:07:37 -07:00
Marc-André Moreau
aaeb4ea0b2
libwinpr-utils: add wlog support for image and binary data
2013-10-02 15:41:46 -04:00
Marc-André Moreau
0569de167d
libwinpr-utils: further split wlog framework into more source files, add some thread safety for write operations
2013-10-02 13:38:21 -04:00
Bernhard Miklautz
5c3ce890b1
winpr-thread: close fds before exec new process
...
Close all open file handles, except stdion/stdout/stderr before executing a new process
to make sure that no file descriptors leak or kept open.
2013-10-02 17:21:56 +02:00
Marc-André Moreau
3fb2724536
libwinpr-utils: fix default WLog behaviour
2013-10-01 20:45:20 -04:00
Marc-André Moreau
2684b829d0
libwinpr-utils: add simple parent/child hierarchy
2013-10-01 18:19:50 -04:00
Marc-André Moreau
0b29f72cc4
libwinpr-utils: added default file output path for wlog
2013-10-01 16:50:47 -04:00
Marc-André Moreau
a374525e6a
libwinpr-utils: split wlog framework
2013-10-01 16:08:26 -04:00
Marc-André Moreau
8695c5226b
libwinpr-file: added more error checking
2013-10-01 12:03:08 -04:00
Marc-André Moreau
480071cdeb
libwinpr-io: improve overlapped io with server-side named pipes
2013-09-25 23:16:33 -04:00
Marc-André Moreau
f4e98f29ec
libwinpr-pipe: add server-side named pipe waiting
2013-09-25 19:13:39 -04:00
Marc-André Moreau
8c72211eea
libwinpr-thread: fix link libraries
2013-09-25 16:38:41 -04:00
Marc-André Moreau
b3b6ee57f0
libwinpr-thread: add missing link dependencies for tests
2013-09-25 16:26:54 -04:00
Marc-André Moreau
7ec19ac0f2
libwinpr-thread: fix build on Windows
2013-09-25 15:47:18 -04:00
Marc-André Moreau
f6ee26f15a
winpr: fix noreturn warnings
2013-09-24 14:35:03 -04:00
Marc-André Moreau
9a124a1d60
libwinpr-thread: initial CreateProcessAsUser implementation
2013-09-24 13:08:29 -04:00
Marc-André Moreau
f363b93819
libwinpr-process: add searching of system path
2013-09-24 11:03:42 -04:00
Marc-André Moreau
4a77f12b32
libwinpr-security: expand stubs
2013-09-24 00:07:48 -04:00
Marc-André Moreau
0506bd1ac6
libwinpr-security: initial stub module
2013-09-23 22:39:28 -04:00
Marc-André Moreau
979ed1b756
libwinpr-pipe: implement WaitNamedPipe
2013-09-23 18:10:21 -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
bb9db97204
libwinpr-thread: improve CommandLineToArgv completeness
2013-09-21 20:05:14 -04:00
Marc-André Moreau
83e124f909
libwinpr-thread: partial support for character escaping in CommandLineToArgv
2013-09-21 19:49:00 -04:00
Marc-André Moreau
56672023db
libwinpr-thread: start implementing CommandLineToArgv
2013-09-21 17:16:49 -04:00
Marc-André Moreau
e841e6068b
winpr: fix inclusion of winternl.h
2013-09-20 14:39:31 -04:00
Marc-André Moreau
b9a3ff3c85
winpr: fix build on Linux
2013-09-19 15:47:54 -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
929d292f35
wfreerdp: fix compilation
2013-09-19 12:08:20 -04:00
Marc-André Moreau
10f1a898ef
libfreerdp-client: fix command-line parsing with .rdp file
2013-09-17 17:03:35 -04:00
Marc-André Moreau
c0ba0fb337
libwinpr-utils: fix BufferPool test
2013-09-16 17:59:29 -04:00
Marc-André Moreau
8f1aceac6a
libwinpr-nt: add missing link dependency
2013-09-16 17:49:16 -04:00
Marc-André Moreau
8a6b545a36
libwinpr-print: add missing include headers
2013-09-16 17:43:24 -04:00
Marc-André Moreau
518995a05e
freerdp: merge with master
2013-09-16 17:10:27 -04:00
Marc-André Moreau
3b7994a9a6
Merge pull request #1467 from akallabeth/cmdline_enhanced
...
Cmdline enhanced
2013-09-16 13:33:04 -07:00
Marc-André Moreau
22ce171261
libwinpr-utils: added custom prefix formatter in logger
2013-09-16 16:30:49 -04:00
Marc-André Moreau
5386d5cd60
libwinpr-utils: make use of logMessage structure and macro for logging
2013-09-16 13:24:50 -04:00
Marc-André Moreau
a4c8d97b4c
libwinpr-utils: start implementing FileAppender
2013-09-16 12:56:22 -04:00
Marc-André Moreau
af1ea7573c
libwinpr-utils: start implementing ConsoleAppender
2013-09-16 12:05:08 -04:00
Bernhard Miklautz
1b304321ef
winpr/registry: Fixed double free
...
fixes #1479
2013-09-16 17:23:26 +02:00
Marc-André Moreau
968ef14349
libwinpr-utils: introduce trace levels
2013-09-15 16:48:09 -04:00
Marc-André Moreau
6a8b5f2283
libwinpr-utils: start implementing WinPR logger
2013-09-15 15:46:02 -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
Marc-André Moreau
22855c933b
Merge branch 'xrdp-ng' of github.com:awakecoding/FreeRDP into xrdp-ng
2013-09-10 17:53:28 -04:00
Marc-André Moreau
7574e7bfc9
Merge branch 'master' of github.com:awakecoding/FreeRDP into xrdp-ng
2013-09-10 17:02:36 -04:00
Marc-André Moreau
4a4a36d5c4
cmake: remove vendor-specific options
2013-09-10 14:03:15 -04:00
Bernhard Miklautz
8c796e9afc
winpr/synch: link against librt
2013-09-10 10:38:23 +02:00
Armin Novak
21127ec33b
Added a new flag to indicate the presence of a single not escaped argument
...
allowing the legacy command line <server>:<port> syntax.
2013-09-10 10:29:45 +02:00
Armin Novak
a7a7bab619
Fixed optional argument parsing.
2013-09-09 17:21:15 +02:00
Armin Novak
4274b266c0
Fixed command line parser, now printing help, if an invalid option is detected.
2013-09-09 16:07:14 +02:00
Marc-André Moreau
f790831e7d
Merge branch 'master' of github.com:awakecoding/FreeRDP into xrdp-ng
2013-09-05 15:23:19 -04:00
Armin Novak
07139276b5
Added newlines at end of file, prevents clang from crashing...
2013-09-05 12:14:35 +02:00
Armin Novak
cf20efb4c6
Simplified code for FindFirstFileA, now always using FindClose
...
for cleanup.
2013-09-05 12:14:35 +02:00
Armin Novak
62356e667c
Fixed erroneous patch.
2013-09-05 12:14:34 +02:00
Armin Novak
4331fa1f8b
Fixed invalid API usage, ...
2013-09-05 12:14:34 +02:00
Armin Novak
e5c138a5b9
Fixed various memory leaks, allocation size issues and API misuse
...
warnings shown by clang as well as some compiler warnings.
2013-09-05 12:14:34 +02:00
Armin Novak
2a7ab454ba
Fixed static library compilation, using -fPIC now to allow linking
...
to dynamic lib.
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
62330ca669
Fixed variable mixup.
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
a355093219
Fixed coverity issue 1047645
2013-09-05 12:14:33 +02:00
Armin Novak
96285eec58
Fixed coverity issue 1047647
2013-09-05 12:14:33 +02:00
Armin Novak
d519bc3115
Fixed coverity issue 1047592
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
87a9a24ef2
Fixed coverity issue 1047593
2013-09-05 12:14:33 +02:00
Armin Novak
020bae25d7
Fixed coverity issue 1047594
2013-09-05 12:14:32 +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
f231f3fcc5
Fixed coverity issue 1047597
2013-09-05 12:14:32 +02:00
Armin Novak
1673e526f5
Fixed coverity issue 1047598
2013-09-05 12:14:32 +02:00
Armin Novak
e2cd11332b
Fixed coverity issue 1047599
2013-09-05 12:14:32 +02:00
Armin Novak
4bd1c567bd
Fixed coverity issue 1047600
2013-09-05 12:14:32 +02:00
Armin Novak
64c3aafcc6
Fixed coverity issue 1047602
2013-09-05 12:14:32 +02:00
Armin Novak
53e0d53b99
Fixed coverity issue 1047603
2013-09-05 12:14:32 +02:00
Armin Novak
a55afb58a4
Fixed coverity issue 1047634
2013-09-05 12:14:31 +02:00
Marc-André Moreau
7edfe66274
freerdp: various missing link dependencies and symbol exports
2013-09-03 21:48:26 -04:00
Marc-André Moreau
41f53696d5
Merge branch 'xrdp-ng' of github.com:awakecoding/FreeRDP into xrdp-ng
2013-09-03 18:50:18 -04:00
Marc-André Moreau
ee36541fb7
freerdp: merge with master
2013-09-03 18:49:48 -04:00
Bernhard Miklautz
90c2cb22ab
winpr: fixed test building
2013-08-29 09:44:41 +02:00
Marc-André Moreau
e429136c0c
libwinpr-wtsapi: started internal RPC stubs
2013-08-23 00:06:22 -04:00
Marc-André Moreau
8423fccbc2
libwinpr-pipe: add support for overlapped i/o with named pipes (synchronous, compatible implementation)
2013-08-22 22:36:37 -04:00
Marc-André Moreau
c1625c1ead
libwinpr-wtsapi: start implementation, extend NtApi
2013-08-22 19:20:59 -04:00
Marc-André Moreau
d5679889f3
libwinpr-nt: start implementing core NTDLL functions
2013-08-22 13:30:44 -04:00
Marc-André Moreau
68ec10a9d9
libwinpr-nt: implement NtCurrentTeb()
2013-08-22 10:18:38 -04:00
Marc-André Moreau
552cee7431
channels/server: start refactoring to fully match WTSApi
2013-08-20 18:06:19 -04:00
Marc-André Moreau
cea6de16ee
libwinpr-wtsapi: add VC API
2013-08-20 15:22:31 -04:00
Marc-André Moreau
1f0caa4161
libwinpr-wtsapi: complete unicode definitions
2013-08-20 14:22:42 -04:00
Marc-André Moreau
9d1dd14581
libwinpr-wtsapi: updated interface definition
2013-08-19 20:58:42 -04:00
Marc-André Moreau
7a88e7cb35
libwinpr-wtsapi: initial stubs
2013-08-19 20:38:43 -04:00
Marc-André Moreau
0ca78c877e
libwinpr-wtsapi: added empty module
2013-08-19 19:18:31 -04:00
Marc-André Moreau
1068a1f3cc
libwinpr-com: create empty module
2013-08-19 19:06:47 -04:00
Marc-André Moreau
d7656ada48
libfreerdp-codec: fix NSCodec encoding and buffer pool usage
2013-08-19 18:21:34 -04:00
Marc-André Moreau
317ffb2ca3
libwinpr-utils: backport fixed-size buffer pool inside variable size buffer pool
2013-08-19 17:14:24 -04: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
Marc-André Moreau
87593b4f19
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2013-08-15 13:16:05 -04:00
Marc-André Moreau
efff23acb5
Merge pull request #1395 from richterger/client_redir
...
Fix memory corruption in client redirection
2013-08-15 10:15:11 -07:00
Marc-André Moreau
9f25c4fc25
libfreerdp-codec: initial working fragmented NSCodec encoder
2013-08-15 13:13:02 -04:00
Marc-André Moreau
c149ede6f2
libwinpr-utils: add support for variable size buffer pool
2013-08-15 00:01:42 -04:00
Marc-André Moreau
0c6f62ce47
Merge pull request #1416 from akallabeth/cmake_generate_with_clean_source_tree
...
Cmake generate with clean source tree
2013-08-14 06:53:46 -07: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
b972830841
libfreerdp-codec: make use of ObjectPool for tiles
2013-08-13 09:34:15 -04:00
Marc-André Moreau
f8e870a258
libwinpr-utils: implement asynchronous mode for ListDictionary
2013-08-12 17:48:32 -04:00
Marc-André Moreau
356186ed54
Merge branch 'master' of github.com:awakecoding/FreeRDP
2013-08-12 12:09:44 -04:00
Armin Novak
c39d99b02d
winpr config.h now generated in binary tree.
2013-08-12 13:51:18 +02:00
Marc-André Moreau
bb30ceb006
mfreerdp: cleanup
2013-08-09 21:23:08 -04:00
Alessandro Pilotti
644e0efa76
Fixes libwinpr build issue on Windows
...
Adds conditional statements in file.c to solve a Posix portability
issue on Windows introduced with the following commit:
913d532e0d
2013-08-09 02:45:31 +03:00
Marc-André Moreau
e31b9b7709
libwinpr-pipe: add missing link dependency
2013-08-07 16:00:21 -04:00
Marc-André Moreau
a9bf93ed6a
libwinpr-pipe: add missing link dependencies for test code
2013-08-07 15:56:05 -04:00
Marc-André Moreau
34f9985add
freerdp: merge with master
2013-08-07 15:48:57 -04:00
Marc-André Moreau
331933635c
Merge pull request #1401 from nfedera/fix-2013-08-07-02
...
libwinpr-utils: Use criticalsection with spincount
2013-08-07 12:35:46 -07:00
Norbert Federa
3a58934eb2
libwinpr-utils: Use criticalsection with spincount
...
Use InitializeCriticalSectionAndSpinCount instead of IntializeCriticalSection.
Using spin counts for critical sections of short duration enables the calling
thread to avoid the wait operation in most situations which can dramatically
improve the overall performance on multiprocessor systems.
On Linux this change has no effect because the new winpr critical section
implementation does not use the SpinCount field under Linux because the NPTL
synchronization primitives are implemented using the extremely performant
futex system calls which have this magic already built in.
However, on Mac OS X this change improved the overall performance of the
multithreaded RemoteFX decoder by 25 percent.
I've used a SpinCount of 4000 which avoided 99 percent of the wait calls.
This value is also used by Microsoft's heap manager for its per-heap
critical sections.
Note: This change requires pull request #1397 to be merged.
2013-08-07 18:16:01 +02: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
richterger
505facbb6f
Fix off by one problem in StreamPool allocation
2013-08-07 08:01:33 +02:00
Marc-André Moreau
7b80b19306
cmake: add FindPixman.cmake
2013-08-05 20:50:23 -04:00
Marc-André Moreau
13872f33bf
libwinpr-utils: implement doubly-linked list
2013-08-05 17:29:14 -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
913d532e0d
winpr: fix build on Linux
2013-07-30 10:57:54 -04: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