Commit Graph

504 Commits

Author SHA1 Message Date
Marc-André Moreau
3895c930a3 Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow 2014-08-05 09:56:12 -04:00
Marc-André Moreau
51f6ffd2ba libfreerdp-codec: improve rfx progressive RLGR1 implementation 2014-08-02 22:26:05 -04:00
Hardening
ff95b9aafa Make LinkedList return errors when something fails 2014-07-31 10:38:59 +02:00
Norbert Federa
cdcdec99bc OpenSSL thread safety
freerdp/winpr had the following issues:
* The non reentrant SSL_library_init() was called concurrently (crash)
* Missing code/api to set the eventually required OpenSSL static and dynamic locking callbacks
* Missing code/api to free the application-global or thread-local OpenSSL data and tables

This commit creates two new winpr functions:

BOOL winpr_InitializeSSL(DWORD flags):

Use the flag WINPR_SSL_INIT_ALREADY_INITIALIZED if you want to tell winpr that
your application has already initialized OpenSSL.
If required use the flag WINPR_SSL_INIT_ENABLE_LOCKING to tell winpr that it
should set the OpenSSL static and dynamic locking callbacks.
Otherwise just call it with the flag WINPR_SSL_INIT_DEFAULT.

The recommended way is that your application calls this function once before
any threads are created. However, in order to support lazy OpenSSL library
initialization winpr_InitializeSSL() can also safely be called multiple times
and concurrently because it uses the new InitOnceExecuteOnce() function to
guarantee that the initialization is only performed successfully once during
the life time of the calling process.

BOOL winpr_CleanupSSL(DWORD flags):

If you create a thread that uses SSL you should call this function before the
thread returns using the flag WINPR_SSL_CLEANUP_THREAD in order to clean up
the thread-local OpenSSL data and tables.
Call the function with the flag WINPR_SSL_CLEANUP_GLOBAL before terminating
your application.

Note: This commit only replaced the current occurences of the
SSL_load_error_strings(); SSL_library_init(); pairs in the freerdp source
with winpr_InitializeSSL(). None of the server or client applications has been
changed according to the recommended usage described above (TBDL).
2014-07-28 21:55:57 +02:00
Norbert Federa
fae8f6fbf2 winpr/sync: Added InitOnceExecuteOnce plus CTest 2014-07-24 21:12:59 +02:00
Marc-André Moreau
d8b858811f shadow: initial windows server-side connectivity 2014-07-17 21:15:22 -04:00
Marc-André Moreau
19c25cf2b4 winpr-pool: fix header on non-Windows 2014-07-17 17:34:51 -04:00
Marc-André Moreau
e6f4754ed3 winpr: improve windows builds across visual studio versions and toolsets 2014-07-17 15:11:04 -04:00
Emmanuel Ledoux
80f641c38a winpr-comm, serial: excluded Android platforms as well 2014-07-04 17:40:06 +02:00
Emmanuel Ledoux
7bbeff3427 winpr-comm: made its current implementation verific specific to __linux__ since it was done on top of NTTY. 2014-07-04 16:16:26 +02:00
Emmanuel Ledoux
9217de3bb1 winpr-utils: WLog_PrintMessageVA, include stdarg.h from wlog.h instead of wlog.c 2014-07-04 14:52:13 +02:00
Emmanuel Ledoux
300a511672 winpr-utils: exported WLog_PrintMessageVA() and defined WLog_PrintVA() in order to be then able to wrap wlog messages in another variadic function. 2014-07-02 15:37:13 +02:00
Emmanuel Ledoux
9fc225ac5d Merge branch 'ports'
Conflicts:
	channels/serial/client/serial_tty.c
2014-06-30 17:22:15 +02:00
Marc-André Moreau
c156006195 Merge branch 'master' of github.com:awakecoding/FreeRDP into egfx 2014-06-23 11:55:27 -04:00
Marc-André Moreau
78d3c82798 xfreerdp: fix multiple egfx-related memory leaks 2014-06-20 13:52:13 -04:00
Emmanuel Ledoux
f454a5c0c8 winpr-handle: CloseHandle(), added ability to register some callback functions
winpr-comm: implemented CommCloseHandle()
2014-06-19 19:07:45 +02:00
Emmanuel Ledoux
d38a323526 winpr-comm, winpr-file: better initialization of the static variables 2014-06-19 12:03:36 +02:00
Marc-André Moreau
3aac5ec897 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-06-18 16:12:54 -04:00
Marc-André Moreau
948d137426 libwinpr-sspi: add support for passing NTLMv2 hash 2014-06-18 16:02:13 -04:00
Marc-André Moreau
e272bc923e libwinpr-sspi: fix server-side NTLM authentication against NTLMv2 without key exchange 2014-06-18 14:42:35 -04:00
Emmanuel Ledoux
e6c82f99d5 serial: ability to setup the server serial driver thanks to a third parameter on the command line 2014-06-18 18:20:21 +02:00
Emmanuel Ledoux
62d893b2bd winpr-comm: implemented IOCTL_SERIAL_RESET_DEVICE 2014-06-17 17:49:06 +02:00
Emmanuel Ledoux
9fc0e6eccc winpr-comm: CommReadFile and CommWriteFile are now protected by a mutex
winpr-comm: implemented IOCTL_SERIAL_IMMEDIATE_CHAR
2014-06-17 16:34:20 +02:00
Emmanuel Ledoux
34c3654faf winpr-comm: implemented IOCTL_SERIAL_CONFIG_SIZE 2014-06-17 15:19:16 +02:00
Emmanuel Ledoux
0db3d9dbb0 winpr-comm: cleaning up code, focused on indentation and whitespaces 2014-06-16 19:18:45 +02:00
Mario Reja
45f9a72975 Added define guards for _rotl and related bit rotation functions, which collided with function definitions in x86intrin.h 2014-06-13 14:25:28 +03:00
Marc-André Moreau
adbfcf53ea libwinpr-sspi: fix failing test 2014-06-10 18:09:51 -04:00
Marc-André Moreau
a7de9e5ac9 Merge branch 'master' of github.com:awakecoding/FreeRDP into sspi
Conflicts:
	winpr/include/winpr/timezone.h
	winpr/libwinpr/timezone/timezone.c
2014-06-10 16:40:58 -04:00
Marc-André Moreau
1b93dca6c0 libwinpr-sspi: add support for querying user+domain and setting NTLM hash 2014-06-10 16:38:16 -04:00
Marc-André Moreau
20464a08ee winpr: remove installable config.h header 2014-06-10 08:24:20 -04:00
Marc-André Moreau
a37c6bb653 libwinpr-sspi: fix build on Linux 2014-06-07 16:46:32 -04:00
Marc-André Moreau
576e0c4d1a libwinpr-sspi: fix exporting of SSPI API 2014-06-07 14:43:02 -04:00
Alessandro Pilotti
7d2f96e84f Fixes timezone API definition issues on Windows
GetDynamicTimeZoneInformation, SetDynamicTimeZoneInformation and
GetTimeZoneInformationForYear are provided by the Windows SDK accordingly
with ethe MSDN cocumentation for SDK with versions above 7.1A.

Those functions are incorrectly included by the 7.1A SDK if _WIN32_WINNT
>= 0x0501 instead of _WIN32_WINNT >= 0x0600.

The issue arises when building with an XP compatible toolset (e.g.
v120_xp).
2014-06-07 20:11:32 +03:00
Marc-André Moreau
a07f616895 libwinpr-sspi: improve link interface 2014-06-07 10:50:51 -04:00
Marc-André Moreau
1b5a2340d2 libwinpr-sspi: even more code hardening 2014-06-07 00:17:11 -04:00
Marc-André Moreau
220f885774 libwinpr-sspi: code hardening 2014-06-06 17:20:34 -04:00
Marc-André Moreau
c5a1a8ac27 libwinpr-sspi: fix native sspi build 2014-06-05 22:10:08 -04:00
Marc-André Moreau
abd475060c libwinpr-winsock: fix build on Windows 2014-06-01 21:52:33 -04:00
Marc-André Moreau
1172596d59 libwinpr-winsock: initial winsock implementation 2014-06-01 15:04:28 -04:00
Marc-André Moreau
1ddd6c5e0d libwinpr-utils: add WLog support for Win32 debugger console output 2014-05-31 10:10:19 -04:00
Marc-André Moreau
357b9197a8 libwinpr-timezone: fix build on Windows 2014-05-29 21:29:24 -04:00
Marc-André Moreau
e5a77c3105 libwinpr-utils: add support for fine grained wlog filter 2014-05-29 15:23:15 -04:00
Marc-André Moreau
e33d7321bb libwinpr-timezone: stub functions 2014-05-29 11:58:53 -04:00
Marc-André Moreau
af6fb83d3b libwinpr-utils: extend wlog prefix format 2014-05-28 10:38:32 -04:00
Emmanuel Ledoux
1e9e8b68bf winpr-comm: got IOCTL_SERIAL_GET_DTRRTS 2014-05-28 11:39:10 +02:00
Emmanuel Ledoux
9796224936 - winpr-comm: got a finalized version of IOCTL_SERIAL_WAIT_ON_MASK
- serial: cleaning up the code
2014-05-27 11:33:10 +02:00
Emmanuel Ledoux
13e10c5de9 winpr-comm: identified the ioctl 0x00220034 as IOCTL_USBPRINT_GET_1284_ID (support not yet implemented) 2014-05-26 16:31:56 +02:00
Marc-André Moreau
c866d19bd4 winpr-crt: fix bit rotation macros 2014-05-23 14:00:46 -04:00
Emmanuel Ledoux
5dc21b5604 winpr-comm: renamed waitMask WaitEventMask
winpr-comm: removed ReadIrpQueue
2014-05-23 15:55:44 +02:00
Emmanuel Ledoux
4feafcc40d winpr-comm: got IOCTL_SERIAL_SET_XOFF and IOCTL_SERIAL_SET_XON 2014-05-23 13:04:43 +02:00
Emmanuel Ledoux
ee268a92ee serial: got a thread per IRP
winpr-comm: got IOCTL_SERIAL_GET_COMMSTATUS, IOCTL_SERIAL_SET_BREAK_ON and IOCTL_SERIAL_SET_BREAK_OFF
winpr-comm: tcdrain called by CommWriteFile() :(
2014-05-23 12:27:09 +02:00
Marc-André Moreau
19b25a792e winpr-crt: add bit rotation functions 2014-05-22 16:31:14 -04:00
Marc-André Moreau
146305f9b2 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-05-22 13:59:25 -04:00
Martin Haimberger
535d7668a7 fixed missing extern C for cpp in makecert.h 2014-05-22 01:28:01 -07:00
Emmanuel Ledoux
baf4896a38 serial: got rid of most the warning message with MAKE_BUILD_TYPE=Release
winpr-comm: consolidated _set_handflow()/_get_handflow()
winpr-comm: introduced a permissive mode
winpr-comm: implementation of IOCTL_SERIAL_WAIT_ON_MASK still in progress
2014-05-19 16:53:57 +02:00
Emmanuel Ledoux
8179affea9 winpr-comm: got IOCTL_SERIAL_PURGE 2014-05-14 21:21:31 +02:00
Emmanuel Ledoux
6cc44ff112 winpr-comm: got IOCTL_SERIAL_SET_QUEUE_SIZE 2014-05-14 17:30:29 +02:00
Emmanuel Ledoux
4243928c2e winpr-comm: fixed _set_lines() / _clear_lines()
winpr-comm: got IOCTL_SERIAL_SET_WAIT_MASK / IOCTL_SERIAL_GET_WAIT_MASK and a non-blocking version of IOCTL_SERIAL_WAIT_ON_MASK
2014-05-14 16:29:10 +02:00
Emmanuel Ledoux
4c743de69c winpr-comm: got IOCTL_SERIAL_SET_TIMEOUTS / IOCTL_SERIAL_GET_TIMEOUTS
serial redirection: use of winpr-comm's functions and not serial_tty.* anymore
2014-05-12 17:33:56 +02:00
Marc-André Moreau
0bcb3eb63d libwinpr-locale: fix inclusion of stdarg.h 2014-05-10 17:31:42 -04:00
Marc-André Moreau
b8d60d5715 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-05-10 10:59:56 -04:00
Marc-André Moreau
ee282a931b freerdp: fix build warnings on Windows 2014-05-10 09:50:36 -04:00
Marc-André Moreau
fb3662c7e2 winpr: fix ranlib missing symbols warnings on OS X 2014-05-09 22:44:19 -04:00
Hardening
50f1f0df6f Add some const modifiers
This allows these functions to be used with const buffers.
2014-05-09 22:36:50 +02:00
Marc-André Moreau
bbc9fc4393 freerdp: add more vendor options 2014-05-09 12:25:05 -04:00
Marc-André Moreau
a202fe4057 freerdp: fix several type related warnings 2014-05-08 18:02:02 -04:00
Marc-André Moreau
c2bdd5d413 Merge pull request #1825 from hardening/compil_warnings
Fix some compilation warnings
2014-05-08 16:09:18 -04:00
Bernhard Miklautz
139630be94 makecert: install header file
install the makecert header file for the exported static libary to
winpr/tools/makecert.h
2014-05-07 21:09:34 +02:00
Hardening
597cba042a Fix some compilation warnings 2014-04-29 16:02:31 +02:00
Emmanuel Ledoux
18dd3d3141 winpr-comm: tests are done according the "remote serial driver" in TestGetCommState/TestSetCommState 2014-04-28 22:32:27 +02:00
Marc-André Moreau
9a8b8372d4 winpr: fix type redefinition 2014-04-27 22:35:04 -04:00
Marc-André Moreau
19dc76b329 winpr: check for __LP64__ for DWORD and LONG definitions 2014-04-27 22:05:31 -04:00
Marc-André Moreau
b67288868d Merge branch 'master' of github.com:awakecoding/FreeRDP into fdsapi 2014-04-27 19:18:23 -04:00
Marc-André Moreau
746e8a6929 libwinpr-smartcard: fix usage of native data types 2014-04-25 18:49:57 -04:00
Emmanuel Ledoux
6fcc1b4478 winpr-comm: first import of comm_ioctl.h and the REMOTE_SERIAL_DRIVER type. 2014-04-25 00:20:48 +02:00
Emmanuel Ledoux
346c598bbe Introduced RegisterHandleCreator() to be used with CreateFile() 2014-04-22 17:00:14 +02:00
Hardening
bb2852df06 Add an helper function for the Key object 2014-04-18 23:07:43 +02:00
Emmanuel Ledoux
7e44488e0a winpr-file: introduced HANDLE_CREATOR type
winpr-comm: got a _CommHandleCreator
2014-04-18 19:25:25 +02:00
Hardening
ef11358668 Enhance ListDictonnary
This patch enhances ListDictionnary so that you can set callbacks for
keys and for values.
2014-04-18 18:26:04 +02:00
Emmanuel Ledoux
f9fc107c20 new functions: DefineCommDevice / QueryCommDevice / IsCommDevice 2014-04-18 17:18:08 +02:00
Hardening
6febe88026 Fixes for queue and stack
This patch does misc fixes in queue and stack:
* the *_new() were not handling OOM correctly ;
* the *_Contains() methods were not using the equals cb;
* the lock were not always taken when accessing internal members;
2014-04-18 16:27:51 +02:00
Emmanuel Ledoux
75ff8fd9a4 add tchar function: _tcsncmp 2014-04-18 15:04:11 +02:00
Bernhard Miklautz
291569d1e5 winpr: change GetKnownSubPath to use a const path 2014-04-17 10:04:34 +02:00
Bernhard Miklautz
b8cf4a2304 remove re-declaration of extended pipe functions
remove them from winpr/pipe.h since they are defined and declared
in winpr/file.h
2014-04-17 10:04:06 +02:00
Marc-André Moreau
edb3ad383e Merge pull request #1784 from hardening/collections_reallocs
Don't leak memory when realloc fails
2014-04-14 14:17:05 -04:00
Marc-André Moreau
d699128a57 channels/smartcard: add more debug output 2014-04-13 15:50:51 -04:00
Marc-André Moreau
9afe63aa76 libwinpr-smartcard: improve GetStatusChange 2014-04-13 00:43:12 -04:00
Marc-André Moreau
7ff1c984c2 channels/smartcard: add more debug output, make distinction between reader and card state 2014-04-12 14:31:54 -04:00
Marc-André Moreau
fd6052f348 channels/smartcard: add more debug output 2014-04-12 12:42:09 -04:00
Marc-André Moreau
727a4914f2 channels/smartcard: add more debug output 2014-04-11 18:57:04 -04:00
Marc-André Moreau
8cac6519e1 channels/smartcard: added detailed debug tracing 2014-04-11 02:17:36 -04:00
Hardening
31c77baba0 Don't leak memory when realloc fails 2014-04-09 21:53:42 +02:00
Marc-André Moreau
b91c10392f channels/smartcard: improve SCardGetAttrib 2014-04-08 23:52:24 -04:00
Marc-André Moreau
2aa248853a channels/smartcard: cancel outstanding IRPs on re-initialization 2014-04-05 17:15:17 -04:00
Marc-André Moreau
f9ada64587 libwinpr-smartcard: fix compilation on Windows 2014-04-04 16:45:11 -04:00
Marc-André Moreau
91898fb293 libwinpr-smartcard: add winscard.dll backend 2014-04-04 15:50:04 -04:00
Marc-André Moreau
06bf1ecc95 libwinpr-smartcard: implement dynamic API stubs 2014-04-04 15:30:03 -04:00
Marc-André Moreau
308e32ccb9 channels/smartcard: refactoring 2014-04-03 17:29:12 -04:00
Marc-André Moreau
89ad7638e4 channels/smartcard: migrate code to libwinpr-smartcard 2014-04-03 15:27:55 -04:00
Marc-André Moreau
d5ca2162ad libwinpr-smartcard: dynamically load pcsclite 2014-04-02 22:08:04 -04:00