Commit Graph

1499 Commits

Author SHA1 Message Date
Marc-André Moreau
9838200068 libfreerdp-core: fix unix domain socket support 2014-08-06 12:08:00 -04:00
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
85b1d6c167 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	libfreerdp/codec/h264.c
2014-08-05 09:55:54 -04:00
Marc-André Moreau
c060fb07a2 libfreerdp-codec: fix build on Windows 2014-07-29 13:41:21 -04:00
Marc-André Moreau
a3de93d867 libfreerdp-codec: start parsing progressive codec 2014-07-28 23:41:16 -04:00
Bernhard Miklautz
a124f6a7c6 fix comment style
// to /* */
2014-07-29 05:22:30 +02:00
Bernhard Miklautz
a9eed46e38 Fix warnings found in Xcode 2014-07-29 05:22:30 +02:00
Bernhard Miklautz
8c318da7b1 fix compiler warnings 2014-07-29 05:22:29 +02:00
Bernhard Miklautz
b8415af0d8 Fix compiler warnings.
This commit is based on pull request #1493
2014-07-29 05:22:29 +02:00
Marc-André Moreau
0c408c213c libfreerdp-codec: stub progressive codec decompressor 2014-07-28 17:42:23 -04:00
Marc-André Moreau
8321d7ffad libfreerdp-codec: fix OpenH264 usage thanks to @erbth's hack 2014-07-28 17:22:02 -04:00
Marc-André Moreau
6c034f17eb Merge branch 'egfx' of github.com:vworkspace/FreeRDP into egfx 2014-07-28 17:04:03 -04:00
Marc-André Moreau
780079d629 Merge branch 'master' of github.com:awakecoding/FreeRDP into egfx 2014-07-28 16:59:29 -04:00
Marc-André Moreau
b56eaccdc3 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	client/common/client.c
2014-07-28 16:58:32 -04:00
Marc-André Moreau
42ec69f9c7 Merge branch 'master' of github.com:awakecoding/FreeRDP 2014-07-28 16:47:56 -04:00
Marc-André Moreau
e303c3bd4c channels: cleanup RDP8 virtual channels 2014-07-28 16:47:42 -04:00
Marc-André Moreau
15d2b35574 Merge pull request #1982 from bmiklautz/feat/read_pdu
Transport re-factor and clean up
2014-07-28 16:32:06 -04: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
Bernhard Miklautz
b17045ddd8 fix: typos and formating 2014-07-28 13:12:01 +02:00
Marc-André Moreau
ef04373628 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-07-26 14:43:10 -04:00
Bernhard Miklautz
bdad9524dc refactor transport_read_pdu and check_fds
transport_check_fds and transport_read_pdu had almost the same
functionality: reading and validating one pdu at a time.

Now transport_read_pdu reads one pdu from the transport layer and verifies
that the pdu data is valid - as before.
transport_read_pdu also ensures that the stream is sealed and
rewound when the pdu is received completely.
transport_check_fds just uses transport_read_pdu and does *not* do
the verification a second time based on the stream.

Besides the clean up this fixes the following problems:

* transport_read always read 4 bytes. Fast-path input synchronize pdus
  are only 3 bytes long. In this case on byte got lost in the stream
	buffer which lead to "de-synchronization" of server and
	client.

* Size check in tpdu_read_connection_confirm - already read bytes
  weren't taken into account.
2014-07-24 16:34:59 +02:00
Bernhard Miklautz
47dd22ba87 transport refactor
rename transport_read to transport_read_pdu. This name is more
descriptive what the function actually does.
2014-07-24 16:34:59 +02:00
Bernhard Miklautz
2bb0659fb4 core: improve fast-path multifragment handling
* make sure fast-path packages are not fragmented if no
  multifragment support was announced
* handle special server side case where the multifragment size
  received from the client is smaller than one maximum fast-path
  PDU size
2014-07-24 16:29:46 +02:00
Benoit LeBlanc
653d52bff3 Merge branch 'master' of git://github.com/awakecoding/FreeRDP 2014-07-18 12:02:52 -04:00
Marc-André Moreau
d8b858811f shadow: initial windows server-side connectivity 2014-07-17 21:15:22 -04:00
Marc-André Moreau
5d4f28a788 Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow 2014-07-17 17:33:33 -04:00
Daniel Bungert
625f7c3c22 Add arguments for managing tls ciphers & netmon
This adds 2 arguments:
    /tls-ciphers                List of permitted openssl ciphers - see ciphers(1)
    /tls-ciphers-netmon         Use tls ciphers that netmon can parse

With KB2919355, client/server negotiate the use of
TLS cipher TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
which works fine except that netmon can't parse it.
By adding commandline /tls-ciphers-netmon, we restrict
the available ciphers to a list that netmon can
deal with.  Also adds /tls-ciphers, which
accepts a string arg, for further customization.
2014-07-17 06:59:06 -06:00
Norbert Federa
8482eed323 core: addd missing PlaySound server callback 2014-07-16 15:38:10 +02:00
Marc-André Moreau
21571eea88 channels/remdesk: add PassStub generation 2014-07-15 20:09:19 -04:00
Vic Lee
8df60ecbe4 tls: fix some error handling. 2014-07-15 11:36:35 +08:00
Mike McDonald
4370c26e0d Added the ability to decode H.264 frames using libavcodec and refactored code to make it a little cleaner. 2014-07-14 09:59:57 -04:00
Vic Lee
29cb8680ce server: allow partial channel read (fix rdpsnd). 2014-07-14 20:00:38 +08:00
Marc-André Moreau
8ae00f7385 shadow: start hooking X11 code as subsystem 2014-07-11 19:30:40 -04:00
Marc-André Moreau
4d3ea77972 Merge pull request #1917 from SBoyNumber1/BitmapCacheV3OnAndroid
Added detect of uncompressed data in CACHE_BITMAP_REV3_ORDER. According ...
2014-07-11 16:35:11 -04:00
Marc-André Moreau
61b35e2e8f Merge pull request #1948 from jbd1986/fix-french-canadian
I am making several changes to clean up French Canadian keyboard defs.
2014-07-11 16:34:43 -04:00
Bernhard Miklautz
c99d4648ff Merge pull request #1950 from hardening/kill_select
kill the last remaining select() in libfreerdp
2014-07-11 16:41:31 +02:00
Bernhard Miklautz
39d78ba707 Merge pull request #1954 from nfedera/fix-2014-07-10-01
transport_read: ensure stream buf size >= pdu size
2014-07-11 15:08:10 +02:00
Armin Novak
ad3255354d Added WITH_LIBRARY_VERSIONING, allowing to build shared libraries without
SOVERSION information. (required by Android)
2014-07-11 11:53:58 +02:00
Hardening
3fce288c66 Fix unclean SSL disconnection
This patch prevent an infinite loop when the remote peer disconnect
the socket without cleanly closing the SSL connection.
2014-07-10 23:35:11 +02:00
Norbert Federa
c206a35c12 transport_read: ensure stream buf size >= pdu size
Without this check a simple nc < /dev/urandom server:3389 could
kill the server instantly.
2014-07-10 12:09:48 +02:00
Bernhard Miklautz
6a49bcfe40 winpr: always build "monolitic"
winpr is now always build as single library.
The build option MONOLITHIC_BUILD doesn't influence this behavior anymore.

The only exception is winpr-makecert-tool which is still build as extra
library.

This obsoletes complex_libraries for winpr.
2014-07-10 11:10:58 +02:00
Mike McDonald
1087b50e92 Added use of U/V planes to freerdp_image_copy_yuv420p_to_xrgb function. 2014-07-09 19:56:05 -04:00
Marc-André Moreau
03c91a92d1 libfreerdp-codec: add more egfx h264 debugging 2014-07-09 16:41:36 -04:00
Hardening
6223460557 kill the last remaining select() in libfreerdp 2014-07-09 11:28:41 +02:00
Marc-André Moreau
1a4b84ade4 Merge branch 'egfx' of github.com:vworkspace/FreeRDP into egfx 2014-07-08 18:04:49 -04:00
Mike McDonald
3e817090b9 Added SetOption calls to enable trace logging in OpenH264. 2014-07-08 17:45:48 -04:00
Marc-André Moreau
f7e5365719 libfreerdp-codec: add more gfx H264 debug output 2014-07-08 17:16:13 -04:00
Justin DeFields
00b01f1b4e I am making several changes to cleanup French Canadian, with the end result being: ca,fr -> Canadian French ca,fr-legacy -> Canadian English ca,eng -> Canadian English. Currently ca,fr isn't defined, ca,fr-legacy thinks it's Canadian French and it isn't anyway because the value is wrong for that definition, and ca,eng is US. 2014-07-08 16:51:50 -04:00
Benoît LeBlanc
18eaddc7fe Merge branch 'master' of git://github.com/awakecoding/FreeRDP
# By Marc-André Moreau (20) and others
# Via Mike McDonald (6) and others
* 'master' of git://github.com/awakecoding/FreeRDP: (26 commits)
  libfreerdp-codec: fix C++ headers
  libfreerdp-codec: fix ClearCodec short vbar cache hit
  libfreerdp-codec: improve ClearCodec error checking
  libfreerdp-codec: fix ClearCodec RLEX decoding
  libfreerdp-codec: ClearCodec fix error codes and wrapping around of cursors
  libfreerdp-codec: fix some ClearCodec flag checking
  Fixed issue with last merge.
  Added #ifdef WITH_OPENH264 ... #endif to appropriate places in the code.
  libfreerdp-codec: handle long vbar length mismatch
  channels/rdpgfx: add egfx command line options and settings
  libfreerdp-codec: reduce number of variables
  libfreerdp-codec: improve ClearCodec robustness
  libfreerdp-codec: simplify ClearCodec code
  Initial implementation of H.264 decoder for MS-RDPEGFX
  libfreerdp-codec: improve ClearCodec subcodec xStart, yStart handling
  libfreerdp-codec: improve ClearCodec subcodec support
  libfreerdp-codec: improve ClearCodec error checking
  libfreerdp-codec: more ClearCodec vBar caching
  channels/rdpgfx: harden parsing code
  libfreerdp-codec: add ClearCodec glyph cache
  ...
2014-07-08 16:45:59 -04:00
Benoît LeBlanc
84d0089401 Added KeyboardHook to settings 2014-07-08 16:32:28 -04:00