Commit Graph

1960 Commits

Author SHA1 Message Date
Armin Novak 3b70d1178b Added AVC444 chroma support to shadow server. 2018-02-02 10:39:33 +01:00
Sri Ramanujam bedc1ac4c6 Use libavcodec's VA-API decoding.
Leverages libavcodec's hw decode support to provide VA-API based
hardware decoding. Depends on the local build of ffmpeg having hardware
VA-API support compiled in and the appropriate libva drivers and
libraries installed.
2018-02-02 02:31:23 -05:00
Armin Novak 8f7bc7990f Added SSE optimized RGB to AVC444 frame split and test. 2018-01-30 11:17:16 +01:00
Armin Novak dc3d536398 Changed length arguments and return to size_t 2018-01-17 08:14:06 +01:00
Armin Novak 23e1afb44a Added new and optimized YUV primitives.
* RGBToAVC444YUVv2: Split a RGB frame in luma and/or chroma v2 YUV420 frames
* RGBX specific versions of RGBToAVC444YUV and RGBToYUV420_8u_P3AC4R
2018-01-10 14:46:18 +01:00
akallabeth 4077d55a6c
Merge pull request #4332 from hardening/xrandr_and_fixes
Xrandr and fixes
2018-01-08 09:20:56 +01:00
David Fort 191b8f950f Fix for #4330
Since ec027bf dynamic resolution is broken when used with egfx. Before that commit
we were tracking a server sent resize by setting a DesktopResize callback. This callback
is called when the desktop is resized by the server. Anyway the problem was that when this
callback is called, the activation sequence is not always completed, which were leading to
some freeze with 2012r2 servers (sending packets before the sequence is finished).
So with the faulty commit, we are tracking server resizes by subscribing to the Actived
event, that is called at the end of a reactivation sequence, so we're sure to not send packets
when not fully activated.
Anyway the issue that shows on (#4330) is that when you use egfx, no reactivation sequence happens,
the server only sends a ResetGraphics message with the new size, and so we miss the resized event.
This fix introduces a new GraphicsReset event, makes the display channel subscribe to that event,
and react accordingly.
2017-12-23 13:50:54 +01:00
Armin Novak cf899eb5ba Fix #4299: gdi_CRgnToRect
The coordinates from RDP ROP commands do not (always) have
0,0 as the origin of the drawing operation.
Adjust the coordinates to our local coordinate system.
2017-12-22 13:43:37 +01:00
Armin Novak b293b17ac9 Added ROP to string functions for log messages. 2017-12-22 10:25:05 +01:00
David Fort 2a6c9e1b87 Add an activated event and a Timer event
Added an event that is triggered when the activation sequence is finished.
We also define a timer event that is neat to have for regular operation.
2017-12-19 15:21:15 +01:00
akallabeth 71fd6f3116
Merge pull request #4313 from hardening/dyn_res_update
disp: implement dynamic resolution for X11
2017-12-19 13:49:02 +01:00
David Fort 80dab90f1a disp: implement dynamic resolution for X11
If the display channel is available we use it to allow the user to resize the
xfreerdp window. When the window is resized we announce a new monitor layout and
the server reacts by doing a reactivation sequence to the new size.
The minimum window size is limited to 300x300 as 2012 servers crash horribly
if we send them a smaller layout.
2017-12-14 15:13:11 +01:00
Bernhard Miklautz 1e6fea7fa7 fix channel/smartcard: simplify channel variables
Path was not really used and name was duplicated. Use the device->Name
directly.
2017-12-13 17:04:06 +01:00
Martin Fleisz 6aa914363a
Merge pull request #4301 from hardening/geometry
geometry: a skeleton for the MS-RDPEGT channel
2017-12-13 09:09:33 +01:00
David Fort 3b670703fb
Merge pull request #4277 from akallabeth/mac_server
Mac fixes
2017-12-12 10:40:14 +01:00
David Fort a6cfd3c49a geometry: a skeleton for the MS-RDPEGT channel
The base for implementing the MS-RDPEGT client channel that allows to track window
geometry.
2017-12-08 11:26:29 +01:00
David Fort e73da4a656 display control channel: add a callback called when we receive capabilities
We need a signal to know when the channel is ready and it's safe to send the
monitor layouts.
2017-12-01 14:19:39 +01:00
Armin Novak 2cc64298f2 Fix #4281: Added option to prefer IPv6 over IPv4 2017-11-27 11:43:54 +01:00
Armin Novak 57958cb178 Fixed #3810: Renamed color functions 2017-11-24 13:21:43 +01:00
Brent Collins d98b88642b Add new command-line option to force xfreerdp into a fips compliant mode.
This option will ensure that NLA is disabled(since NTLM uses weak crypto algorithms), FIPS
encryption is enabled, and ensure fips mode is enabled for openssl.

Selectively override specific uses of MD5/RC4 with new API calls specifically tailored to override FIPS.

Add comments on why overriding the use of these algorithms under FIPS is acceptable for the locations where overrides happen.

Remove check of server proprietary certificate which was already being ignore to avoid use of MD5.

Initialize winpr openssl earlier to ensure fips mode is set before starting using any crypto algorithms.
2017-11-17 12:43:06 +01:00
Armin Novak 8c2bd951ae Allow printing of custom arguments in help. 2017-11-15 15:25:34 +01:00
Ben Cohen 6093ec62e0 Fix comments at the start of these files and adjust copyrights 2017-11-10 20:16:00 +00:00
Ben Cohen 0e90841a18 Forward ssh-agent data between ssh-agent and RDP
Add the sshagent plugin to forward the ssh-agent protocol over an RDP
dynamic virtual channel, just as the normal ssh-agent forwards it over
an SSH channel.  Add the "/ssh-agent" command line option to enable it.
Usage:

Run FreeRDP with the ssh-agent plugin enabled:

   xfreerdp /ssh-agent ...

In the remote desktop session run xrdp-ssh-agent and evaluate the output
in the shell as for ssh-agent to set the required environment variables
(specifically $SSH_AUTH_SOCK):

   eval "$(xrdp-ssh-agent -s)"

This is the same as for the normal ssh-agent.  You would typically do
this in your Xsession or /etc/xrdp/startwm.sh.

Limitations:

1. Error checking and handling could be improved.

2. This is only tested on Linux and will only work on systems where
clients talk to the ssh-agent via Unix domain sockets.  It won't
currently work on Windows but it could be ported.
2017-11-10 20:16:00 +00:00
Armin Novak 7a73a0eb1b Added additional NLA error mappings. 2017-11-06 09:49:03 +01:00
Armin Novak 367bddd7ad Added better error mapping for NEGO results. 2017-10-25 09:58:13 +02:00
Bernhard Miklautz 4592deee72 extend /size to allow width or height percentages (#4146)
If the size parameter is used with a percentages like /size:50% now
an additional 'w' or 'h' can be appended (like /size:50%w) to specify
where the percentage should be applied. If both or none are set the
behavior is like it was before and the percentage is applied to width
and height.
2017-09-25 09:35:49 +02:00
Armin Novak d3df6ed40f Removed unused variable. 2017-08-31 09:57:49 +02:00
Armin Novak c3d4b7d262 fseeko and ftello for 64bit file support. 2017-08-14 08:42:49 +02:00
Armin Novak d2d621106d Fixed capability checks for mouse and unicode input. 2017-07-31 12:30:35 +02:00
Armin Novak 1fb63aea5f Fixed wrong type for AuthenticationLevel.
Replaced type BOOL with INT32 as according to MSDN they are typedefed.
This keeps the ABI compatible and fixes the wrong data type.
2017-07-20 09:35:41 +02:00
Armin Novak 8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Armin Novak 14c6dd91f5 Readded H264 struct pointers, keep API compatible. 2017-07-17 11:38:06 +02:00
Armin Novak 96d53933d2 Deactivated all H264 related code paths. 2017-07-17 10:39:08 +02:00
Armin Novak 5764d5a78a Disable GFX H264 if no backend compiled in. 2017-07-17 09:25:21 +02:00
David Fort 5ef9232703 Merge pull request #3905 from ilammy/x11-cliprdr/file-clipping
Local-to-remote file clipping for xfreerdp
2017-06-07 21:20:34 +02:00
David Fort b92a789dfd Merge pull request #3963 from akallabeth/qoe_ack
Added client RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU
2017-05-22 11:10:03 +02:00
davewheel 4bfb4dddbf Add a callback to provide NTLM hashes on server-side
Adds a callback that allows servers to compute NTLM hashes by themselves. The typical
use of this callback is to provide a function that gives precomputed hash values.

Sponsored by: Wheel Systems (http://www.wheelsystems.com)
2017-05-18 14:24:24 +02:00
Armin Novak f414522b7a Added setting for QoeAck. 2017-05-18 14:07:09 +02:00
David Fort 17a4e95a5b Drop some annoying warning
Probably that some unused functions should be removed, but at least it makes
it compile with no warnings.
2017-05-12 13:54:16 +02:00
Armin Novak b1d631f1e5 Added support for Set Keyboard IME Status 2017-05-12 09:43:58 +02:00
akallabeth 8df8cc6fb5 Merge pull request #3937 from hardening/h264_multimon
Fix h264 in multimon scenario
2017-05-09 11:16:12 +02:00
Armin Novak f3e0c95d45 Added a GFX area update callback. 2017-05-03 08:48:03 +02:00
David Fort b2ee8a19ab Fixed progressive code style and added error handling 2017-05-02 18:39:33 +02:00
David Fort d170c10ee6 Fix H264 in multi monitor case
The H264 context is surface specific, so in multi-monitor (with multiple surfaces)
the decoding was failing. This patch fixes that by introducing a surface specific
h264 context.
2017-05-02 18:39:33 +02:00
Armin Novak a2167d5417 Added surface width and heigth for YUV combine. 2017-04-18 14:12:40 +02:00
Armin Novak b0d3cfda4d Added AVC444v2 client support. 2017-04-11 11:29:14 +02:00
ilammy ef4421fc77 channels/cliprdr: fix CLIPRDR_FILECONTENTS_REQUEST
clipDataId is an optional field of CLIPRDR_FILECONTENTS_REQUEST.
The client should not send it to the server without sending a prior
CLIPRDR_LOCK_CLIPDATA request. The reverse is true as well: the
server should not include these additional 4 bytes without locking
the file in question.

The value zero is a valid ID, it cannot be used as a sentinel value.
Introduce a separate flag to tell whether the clipDataId has been set
and can be relied upon.

Also fix formatting. These stupid line breaks have negative impact on
readability, and the lines do fit into the 100 column limit either way.
2017-04-09 03:15:49 +03:00
ilammy 5fb89985f0 x11/cliprdr: handle text/uri-list format
To handle a new format we should first be able to transform the format
name from the local clipboard owner into its remote representation. In
our case this will be trasforming the "text/uri-list" target into the
"FileGroupDescriptorW" named format.

Add CB_FORMAT_TEXTURILIST to identify the local format by its ID during
the data conversion step. This numeric ID has nothing to do with the ID
which will be sent to server. It's a bit weird, but that's how XFreeRDP
works.

After that add a new client format with this ID and appropriate local
and remote format names (in atom and formatName fields respectively).
Do this only if wClipboard actually supports "text/uri-list" format.
(It could fail to initialize the local file subsystem, in which case
it will fail all file-related requests and there would be no point in
advertising the file format support in the first place.)

Finally, handle the actual format data request for a new named format
in xf_cliprdr_process_requested_data(). Remember to convert the
FILEDESCRIPTOR array we receive from wClipboard into the
CLIPRDR_FILELIST expected by the server. Also take care to not leak
memory during this conversion.

Note that this handles only the CLIPRDR_FORMAT_DATA_REQUEST. The server
is still not able to retrieve the file content as this is done via a
separate request-reply sequence.
2017-04-09 03:15:49 +03:00
ilammy a992743d99 channels/cliprdr: CLIPRDR_FILELIST utilities
The format is described in MS-RDPECLIP 2.2.5.2.3 Packed File List
(CLIPRDR_FILELIST). These functions handle conversion between the
on-the-wire data from cliprdr and arrays of FILEDESCRIPTOR structs.

FILETIME handling is a bit wacky, but that's what we currently have.
2017-04-09 03:15:48 +03:00
ilammy 6ad05d5ea3 winpr: define file attribute flags
The flags are defined by MS-RDPECLIP 2.2.5.2.3.1 File Descriptor
(CLIPRDR_FILEDESCRIPTOR) as well as by 'File Attribute Constants'
in WinAPI reference [1].

The idea is to delegate FILEDESCRIPTOR format processing to WinPR
instead of cliprdr channel, so move the struct definition there. The
definition used by cliprdr protocol is identical but with some fields
treated as reserved.

The defintions are placed into <winpr/shell.h> as FileGroupDescriptorW
is a shell clipboard format.

Also remove the definition of CLIPRDR_FILELIST. The clients would be
using WinPR to handle the file clipping, so CLIPRDR_FILELIST does not
have to be handled explicitly. The clients will have serialization and
deserialization functions to handle CLIPRDR_FILELIST.

[1]: https://msdn.microsoft.com/en-us/library/windows/desktop/gg258117(v=vs.85).aspx
2017-04-09 03:15:48 +03:00
Norbert Federa 1739f27b82 rdpegfx: fix RemoteFX Progressive Codec decoding
Since this comes via a Wire-To-Surface-2 PDU we don't have
any left/top/right/bottom destination values.
The current code has always dealt with zeros when updating the
invalid region which resulted in black rectangles.
The correct update region is determined during decompression.
2017-04-03 18:59:58 +02:00
Armin Novak d119745d97 String representation of logon_error_info 2017-03-02 18:09:51 +01:00
akallabeth 7ce1dd0a6c Merge pull request #3791 from akallabeth/kerberos
Kerberos (Rebased #3417)
2017-02-23 13:46:34 +01:00
Armin Novak 70baa6fe26 Added additional connect errors. 2017-02-22 09:50:59 +01:00
David Fort 7b437178bb Add a ClientCapabilities callback
This callback is called when the client capabilities have been received. This callback
appears to be more useful than the Capabilities one that is called just before the server
sends its capabilities.
2017-02-21 23:44:47 +01:00
HenryJacques 3f9cbfe31d Update error.h 2017-02-20 15:59:56 +01:00
Bernhard Miklautz 23cfd34525 Merge pull request #3746 from volth/command-line-action-script-rebased
Add command line option to override action script path
2017-02-20 14:08:14 +01:00
akallabeth 2e64cca742 Merge pull request #3775 from nfedera/rgb_to_avc444yuv
RGB to AVC444YUV converter with SSSE3 support
2017-02-17 10:06:38 +01:00
akallabeth 4065581c98 Merge pull request #3756 from bigpjo/master
.RDP Password Attribute
2017-02-17 09:52:22 +01:00
Norbert Federa 13a60ae138 primitives: added RGB to AVC444YUV converter 2017-02-16 17:03:40 +01:00
Armin Novak 6960ca209b Added GFX surface command profiler. 2017-02-15 15:42:14 +01:00
Armin Novak f24b112514 Refactored AVC444 decoding to single YUV420 buffer
Since not all H264 decoders support multiple YUV420 output
buffers process H264 decoding and YUV to RGB conversion
sequentially to avoid overriding the input data.
2017-02-15 09:28:10 +01:00
bigpjo f0a52d431d .RDP Password Attribute
Allow password to be stored in .RDP file and parsed and settings
updated, this will allow for dynamic .RDP files to be created with
complete login credentials, using this method the username, server and
password will no longer be visible within process lists.

Also fixed issue of username and domain being read from .RDP files and
set to null by command line processor.
2017-02-10 20:38:52 +00:00
Volth e7487cea27 Add command line option to override action script path 2017-02-08 08:30:24 +00:00
David Fort a6dbc32cf3 Added missing const modifiers for source pointers in codecs 2017-01-27 11:23:08 +01:00
Bernhard Miklautz 85da68c334 Merge pull request #3703 from akallabeth/prim_optimize
[PERFORMANCE] Inlined heavily used functions
2017-01-23 10:39:02 +01:00
David Fort f68888a978 Add a callback that allows to adjust monitors layout
This callback is useful in server mode when you want to adjust the monitor
layout just before the server monitor layout PDU is built and sent.
2017-01-19 18:05:44 +01:00
Armin Novak d9810dd7a4 Progressive struct now opaque. 2017-01-18 16:16:29 +01:00
Armin Novak ace5100e21 Progressive conversion and speed fixes
* Using destination color format and precomputed tile stride
* Using preallocated logger
2017-01-18 15:28:53 +01:00
Armin Novak 7198970a4e Removed obsolete primitive usage. 2017-01-18 15:28:53 +01:00
Armin Novak 7e4c6c6a48 Optimized functions, removed duplicates. 2017-01-18 15:28:53 +01:00
Martin Fleisz ae9e6c9d7e Merge pull request #3688 from akallabeth/clear_codec_buffer_resize_fix
Clear codec buffer resize fix
2017-01-12 17:27:05 +01:00
Armin Novak 2f9ec8c61a Unified clear internal buffer resize.
Internal datastructures now opaque.
2017-01-11 15:39:04 +01:00
Armin Novak c444ccbe6e Removed duplicated format variable. 2017-01-11 15:39:03 +01:00
akallabeth 3762401d43 Merge pull request #1750 from ccpp/master
Support for HTTP-Proxy
2017-01-11 11:02:00 +01:00
Armin Novak 9f19da798c Added attach/detach support for channels. 2016-12-19 17:07:01 +01:00
Christian Plattner 58ef7cc42d More abstracted proxy handling 2016-12-10 23:13:35 +01:00
Christian Plattner 5d10b3bf5b Merge branch 'gateway-http-bugfix'
Conflicts:
	client/common/cmdline.c
	include/freerdp/settings.h
	libfreerdp/common/settings.c
	libfreerdp/core/settings.c
	libfreerdp/core/tcp.c
	libfreerdp/core/transport.c
2016-12-09 20:43:02 +01:00
akallabeth ac9e7530d3 Merge pull request #3637 from mfleisz/rfx_api_simplify
codec: Remove src format parameter from rfx_process_message
2016-12-02 09:38:33 +01:00
Martin Fleisz e059e3dea3 codec: Remove src format parameter from rfx_process_message
This parameter is not required. Default param is BGRX32
and if an other format is required rfx_codec_set_pixel_format
can be used.
2016-12-01 17:21:06 +01:00
Bernhard Miklautz c97056e3a8 Fix compiler warning
FreeRDP/client/common/client.c: In function ‘freerdp_client_context_new’:
FreeRDP/client/common/client.c:86:38: warning: passing argument 1 of ‘freerdp_register_addin_provider’ from incompatible pointer type
  if (freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry,
FreeRDP/include/freerdp/addin.h:60:17: note: expected ‘FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN’ but argument is of type ‘void * (*)(const CHAR *, CHAR *, CHAR *, DWORD)’
 FREERDP_API int freerdp_register_addin_provider(
In file included from FreeRDP/client/common/compatibility.c:27:0:
FreeRDP/include/freerdp/addin.h:60:17: note: expected ‘FREERDP_LOAD_CHANNEL_ADDIN_ENTRY_FN’ but argument is of type ‘void * (*)(const CHAR *, CHAR *, CHAR *, DWORD)’
 FREERDP_API int freerdp_register_addin_provider(

gcc (Debian 4.9.2-10) 4.9.2
2016-12-01 15:36:49 +01:00
akallabeth 215fbe8446 Merge pull request #3613 from mfleisz/rlgr_api_revamp
codec: Revamp of rfx rlgr API
2016-11-25 13:44:23 +01:00
Bernhard Miklautz e0382e01b8 Merge pull request #3614 from mfleisz/warning_fixes
codec: Fix some warnings on VC2010 (and probably others too)
2016-11-25 11:49:16 +01:00
akallabeth f23487907e Merge pull request #3615 from nfedera/openssl_1.1.0
Support for OpenSSL 1.1.0
2016-11-25 11:07:58 +01:00
Martin Fleisz 506aa78857 Merge pull request #3619 from akallabeth/image_copy_ignore_alpha
Ignore alpha channel in freerdp_image_copy
2016-11-25 10:38:56 +01:00
Norbert Federa 7befab856c Support for OpenSSL 1.1.0 2016-11-24 17:50:09 +01:00
Armin Novak 3f6bd603e9 Fixed addin loader, prefer system library paths. 2016-11-24 15:28:41 +01:00
Armin Novak 1c4c57821b Ignore alpha channel in freerdp_image_copy
When copying image data consider formats that only differ on use
of alpha data equal. This allows using the optimized copy routine
instead of the slower color conversion routine. Fixes #3616
2016-11-24 09:31:14 +01:00
Martin Fleisz 4f1e3d0bf6 codec: Fix some warnings on VC2010 (and probably others too) 2016-11-23 17:11:05 +01:00
Martin Fleisz 6c9df44846 codec: Revamp of rfx rlgr API
This PR contains following changes:
- Give rlgr encode/decode APIs a similar interface
- Make rlgr encode API accessible again
- Make it possible to exchange rlgr functions
- Make use of RLGR1/3 defines instead of 0/1 in decoding
2016-11-23 13:21:59 +01:00
Marc-André Moreau 128ce8a5a4 Merge pull request #3597 from awakecoding/tls_channel_fix
Virtual Channel Mapping Fix
2016-11-16 11:37:14 -05:00
Marc-André Moreau 36db0cc325 channels: properly handle VirtualChannelEntryEx in static virtual channel loading 2016-11-16 09:52:24 -05:00
Marc-André Moreau dee76617d9 channels: remove thread-local storage usage 2016-11-15 11:41:01 -05:00
Marc-André Moreau 2cce8e9fbc channels: migrate drdynvc to extended virtual channel API 2016-11-15 10:58:38 -05:00
Marc-André Moreau 23eae318c5 channels: start working on extended virtual channel API 2016-11-14 16:44:45 -05:00
Marc-André Moreau 70c4646722 channels: restore global tables for initHandle, openHandle mappings instead of thread local storage 2016-11-14 15:23:05 -05:00
zihao.jiang b58ee586e7 keeping the old callback and adding the new one at the end of the struct, so that it can be potentially binary compatible. 2016-10-29 00:28:10 +08:00
zihao.jiang ddc326d6d3 Fix server side code to be aware of rereadEvent 2016-10-27 23:43:09 +08:00
David Fort 043243f43c Merge pull request #3560 from akallabeth/gfx_10_2
Gfx 10.2 caps and deactivate GDI unsupported functions
2016-10-21 09:29:51 +02:00
akallabeth a6f41176fc Merge pull request #3364 from hardening/limit_frames
Limit the time passed in transport check loop
2016-10-20 12:53:23 +02:00
Armin Novak 97cbc42cd2 Added reference to capability specifications 2016-10-20 09:59:54 +02:00
Armin Novak e9b5b555b9 directly using FREERDP_PIXEL_FORMAT. 2016-10-19 12:41:43 +02:00
Armin Novak 39b624a211 GFX: support 10.2 stack. 2016-10-16 10:42:46 +02:00
David Fort f92860de87 Applied astyle formatting 2016-10-14 15:12:48 +02:00
David Fort 71fd5cc148 Limit the time passed in transport check loop
This patch make it possible to limit the time that is passed when we call
XXX_check_fds functions. This should smooth the treatment between handling inputs
and handling incoming bitmap updates.
The default maximum time is set to 100 ms.
2016-10-14 15:12:48 +02:00
Armin Novak 9c50e1a635 Replaced _VF formats with copy flags. 2016-10-14 10:36:52 +02:00
Armin Novak 85e17ada02 Fixed uninitialized arguments, WLog tag. 2016-10-13 16:57:51 +02:00
Bernhard Miklautz 5a5f091b7c Merge pull request #3545 from akallabeth/legacy_rfx_fixes
Fixed Windows 7 RFX issues.
2016-10-13 13:01:53 +02:00
Armin Novak 8286fa4b96 Fixed format flip and offsets for GDI. 2016-10-11 18:50:01 +02:00
Armin Novak 94c6473250 Inlined heavily used functions. 2016-10-11 14:47:26 +02:00
zihao.jiang ac08f6a48b Regression fix: The usage of RDPGFX_SURFACE_COMMAND::format is changed after color conversion huge fix.
Fix server side rdpgfx code to match the change.
2016-10-11 00:56:12 +08:00
Armin Novak 14fcfbbf31 Addin loader using proper function pointer defines. 2016-10-07 14:06:46 +02:00
Armin Novak cba67668ca Added documentation, removed unused function. 2016-10-06 13:43:15 +02:00
Armin Novak 0e2b5184c2 Added color format documentation. 2016-10-06 13:43:15 +02:00
Bernhard Miklautz 143b875a4a wtsvc: add missing DRDYNVC_STATE_FAILED 2016-10-06 13:43:15 +02:00
Armin Novak 0c81f4a28b Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak b372d63d78 Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak 86d414bb3c Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak 8e12f0f1c0 Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak 1a22cb3a71 Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak 9a34e4383e Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak 032b59f93c Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak 994fed8cba Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak d8751a37b2 Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak ec266294d1 Reformatted file. 2016-10-06 13:43:14 +02:00
Armin Novak 9ab04711fa Fixed shadow server color encoding. 2016-10-06 13:43:12 +02:00
Armin Novak 161685b25c Fixed some more glyph chache bugs. 2016-10-06 13:43:11 +02:00
Armin Novak 0c57065c73 GlyphCache: Erasing destination if not redundant. 2016-10-06 13:43:11 +02:00
Armin Novak c242467346 Fixed some X11 functions. 2016-10-06 13:43:10 +02:00
Armin Novak 22ddec810b Moved pre and post channel hooks. 2016-10-06 13:43:10 +02:00
Armin Novak 4f62d848ac Refactored interlocked typedefs, avoid namespace collisions. 2016-10-06 13:43:09 +02:00
Armin Novak c7448c03fb Added FREERDP_LOCAL
CMake 2.8 does not support default visibility on windows.
To allow building tests add the FREERDP_LOCAL define for each
function that is internal to FreeRDP.
When build with testing these functions are exported and available
for use by tests.
2016-10-06 13:43:09 +02:00
Armin Novak d35823cf69 Moved channel init code to core library. 2016-10-06 13:43:09 +02:00
Armin Novak dadc5262ae Removed static channel variables.
Global static variables do not work, if more than one instance
of an RDP client is running in the same process space.
Removed the varaibles where possible and replaced them with
thread local storage where necessary.
2016-10-06 13:43:09 +02:00
Armin Novak b765374d32 Refactored BitBlt, implementing everything now. 2016-10-06 13:43:08 +02:00
Armin Novak f17f1475d8 Fixed font drawing. 2016-10-06 13:43:08 +02:00
Armin Novak 9fcfc38bd2 Fixed planar decoding. 2016-10-06 13:43:08 +02:00
Armin Novak 04846ca775 Added missing API export. 2016-10-06 13:43:07 +02:00
Armin Novak 3820c91b80 Added wayland OS minor version. 2016-10-06 13:43:06 +02:00
Armin Novak bc5aa1be0c Added more GDI orders. 2016-10-06 13:43:06 +02:00
Armin Novak e3b43b991d Fixed some bitblt issues. 2016-10-06 13:43:05 +02:00
Armin Novak c7f8d006d3 Fixed RGBX32 format split color mixup. 2016-10-06 13:43:04 +02:00
Armin Novak d3538fc930 Fixed gdi LineTo and tests. 2016-10-06 13:43:04 +02:00
Armin Novak 032bdef955 Unified bitmap drawing. 2016-10-06 13:43:03 +02:00
Armin Novak bb82d48506 Fixed part of font cache issue. 2016-10-06 13:43:03 +02:00
Armin Novak 3f90966da6 Bug fixes. 2016-10-06 13:43:03 +02:00
Armin Novak 85bbe2a908 API refactoring. 2016-10-06 13:43:03 +02:00
Armin Novak e650fdb2b6 Bugfixes. 2016-10-06 13:43:02 +02:00
Armin Novak 7a20ff5c30 Refactored bitmap API. 2016-10-06 13:43:02 +02:00
Armin Novak 8b69b16cbb Refactored Glyph API. 2016-10-06 13:43:02 +02:00
Armin Novak 9d5ca34d0d Fixed pointer initialisation for X11. 2016-10-06 13:43:02 +02:00
Armin Novak 04fb4e4e4c Fixed rectangle clipping and warnings. 2016-10-06 13:43:02 +02:00
Armin Novak e32ed83bf7 Updated interleaved and planar API. 2016-10-06 13:43:02 +02:00
Armin Novak f9a89ae6b4 Bug fixes, refactoring. 2016-10-06 13:43:01 +02:00
Armin Novak 1608799522 Cleaned up clear codec. 2016-10-06 13:43:01 +02:00
Armin Novak 9fc8dc6b5d Removed gdi->codecs, unused. 2016-10-06 13:43:00 +02:00
Armin Novak 076b92dd72 Fixed primitives misuse. 2016-10-06 13:43:00 +02:00
Armin Novak a6cef5cde7 Fixed GFX related issues. 2016-10-06 13:43:00 +02:00
Armin Novak 99c418766c Updated primitives API and tests. 2016-10-06 13:43:00 +02:00
Armin Novak e860fde4bc Fixed function arguments. 2016-10-06 13:43:00 +02:00
Armin Novak 5039a82d8b GDI fixes. 2016-10-06 13:43:00 +02:00
Armin Novak e1c3adf61f freerdp_image_copy fixes, 8bit color improvements. 2016-10-06 13:42:59 +02:00
Armin Novak 716c5c53e9 256 color support. 2016-10-06 13:42:59 +02:00
Armin Novak 48d1b4ee13 Fixed color ordering for GDI. 2016-10-06 13:42:59 +02:00
Armin Novak 016f3a408b xxx. 2016-10-06 13:42:59 +02:00
Armin Novak b668b0d75e Api update. 2016-10-06 13:42:59 +02:00
Armin Novak 0e7bb508c1 Bitmaps now remember their format. 2016-10-06 13:42:59 +02:00
Armin Novak bb92655339 Fixed clear codec. 2016-10-06 13:42:59 +02:00
Armin Novak da956e0388 ... 2016-10-06 13:42:59 +02:00
Armin Novak 24599af991 More color fixes. 2016-10-06 13:42:58 +02:00
Armin Novak df35c135d1 Fixed color conversion, unified GFX and updated API. 2016-10-06 13:42:58 +02:00
zihao.jiang 7d0fa79f19 rdpgfx/server: More minor fix according to comments:
Not use sizeof on packet memory structure for stream length check/estimating and use number directly.
Most of the packet size could be obviously calculated/verified from code and comments in same function.
Macro is defined for those were referenced multiple times.
2016-08-16 14:49:56 +08:00
zihao.jiang a15b8fff66 rdpgfx/server: Minor fix: allow configurable codec parameter 2016-08-07 20:15:39 +08:00
zihao.jiang 992e0e9f35 rdpgfx: more minor changes
1. Fix style for channels/rdpgfx/server/rdpgfx_main.c according to scripts/format_code.sh
2. Refactor and introduce APIs to allow rdpgfx server channel running in existing thread (similar to rdpsnd)
2016-08-07 20:15:39 +08:00
zihao.jiang 2b6bd2626d rdpgfx: various fixes according to comments
1. Fix stream leak in rdpgfx
2. Make src data const in zgfx. Harden zgfx to be independent to byte order
3. Fix written bytes return value in channel write
4. Add check for return value in shadow_client.c
5. Add gfx callback to send surface command with frame marker pdu.
6. Check remain length for recv subroutine
7. Fix compile errors
2016-08-07 20:15:39 +08:00
zihao.jiang 746a754244 rdpgfx: Implementation for server side channel
server/shadow: support h264 codec with gfx channel
2016-08-07 20:14:33 +08:00
Marc-André Moreau 801dc0f826 freerdp: add configurable NTLM SAM file option for server-side NLA 2016-07-21 18:58:24 -04:00
Marc-André Moreau 1ffbd774e9 freerdp: fix sending of TLS alert on NLA failure, add better handling of server-side NLA in shadow server 2016-07-21 17:53:20 -04:00
Vic Lee 019a569d42 rdpsnd/server: decrease audio latency and make it configurable. 2016-06-21 17:22:43 +08:00
zihao.jiang e7d9e91864 channels/rdpgfx: Make freerdp_client_codecs_prepare calls codec reset. It fix broken h264 client from #3328. Also it doesn't make sense that we don't need width and height for codec initialization while we need them for codec reset 2016-05-30 02:00:05 +08:00
Marc-André Moreau e4714f3422 freerdp: fix Hyper-V connectivity, fix issues #2421 and #3325 2016-05-11 15:52:36 -04:00
Bernhard Miklautz 221a292b04 Merge pull request #3263 from akallabeth/tofu
Added command line option /cert-tofu
2016-05-03 16:27:15 +02:00
Armin Novak 48b11cf150 Dynamic channel internal functions now static. 2016-04-26 09:35:54 +02:00
Armin Novak 53445768ed Added command line option /cert-tofu 2016-03-31 12:16:55 +02:00
Armin Novak 50873be062 Added advanced gfx command line options. 2016-03-24 16:36:43 +01:00
Armin Novak 9ab3532bf8 Renamed GFX defines to conform to spec. 2016-03-16 13:43:18 +01:00
Armin Novak 5bc333c626 Implemented GFX AVC444 support. 2016-03-16 13:43:18 +01:00
Armin Novak 3309bf8f9c Implemented YUV444 related primitives. 2016-03-16 13:43:17 +01:00
Armin Novak 3a3ec85898 Unified RDPGFX_RECT16 and RECTANGLE_16 2016-03-16 13:43:17 +01:00
Armin Novak 36cbf1b583 Fixed error handling for channel load failures. 2016-03-14 13:13:43 +01:00
Armin Novak 2e110c7f35 Fixed codec reset, now resetting resolution too.
H264 and others require the surface resolution to work properly.
This initializes the codecs and the resolution on reset.
2016-03-02 14:46:33 +01:00
Bernhard Miklautz 014f31db35 Merge pull request #3171 from akallabeth/crypto_simplification
Crypto simplification
2016-02-29 17:10:53 +01:00
Bernhard Miklautz 92de4cf721 Merge pull request #3167 from realjiangms/shadow_export_default_subsystem
server/shadow: Export API to set built-in subsystem modules for freerdp-shadow-subsystem
2016-02-29 15:21:22 +01:00
zihao.jiang 176ad52bd5 server/shadow: Export API to set built-in subsystem modules for freerdp-shadow-subsystem 2016-02-28 13:51:19 +08:00
Armin Novak 238ff3b315 Unified encryption functions. 2016-02-27 23:28:49 +01:00
Armin Novak 5805ba8e52 Removed crypto_nonce. 2016-02-27 22:40:43 +01:00
Armin Novak dccf40c2bc Fixed duplicate loading of smartcard and printers. 2016-02-26 15:21:11 +01:00
Martin Fleisz 4f22682ed2 Merge pull request #3151 from akallabeth/timezone_refactor
Timezone refactor
2016-02-26 09:57:35 +01:00
Hardening 4217262680 Merge pull request #3156 from akallabeth/ssl_wrapper_merge
Ssl wrapper merge
2016-02-26 09:52:43 +01:00
David FORT aa7fe1d313 Fixed indentation 2016-02-25 15:03:14 +01:00
Armin Novak f997421098 Unified hmac functions. 2016-02-24 21:50:08 +01:00
Armin Novak ada2b16c50 Unified RC4 functions. 2016-02-24 17:04:03 +01:00
Armin Novak 06da644007 Unified md5 functions. 2016-02-24 16:46:25 +01:00
Armin Novak 0e4ea3943a Unified sha1 functions. 2016-02-24 16:36:15 +01:00
Armin Novak 447ac23aee Refactored timezone functions. 2016-02-24 09:28:30 +01:00
David FORT 1b2b1c4ac1 Add support for saveSessionInfo PDU
This patch adds some callbacks so that the client can have access to the informations
stored in this packet. Server-side implementation is also there, so that a server
can send these informations to the client.
2016-02-18 14:19:36 +01:00
Hardening 2a3e9996b3 Merge pull request #2710 from akallabeth/cert_temp_accept_v2
Extended certificate callbacks.
2016-02-15 13:52:47 +01:00
Nathan Kidd d68e58a9dc libfreerdp-codec: Make region16_rects() handle NULL nbRects
Now matches header documentation.  Also cleans up related doc grammar.
2016-02-12 10:11:51 -05:00
Armin Novak b35f6658b9 Moved common code from cli clients to client lib. 2016-02-05 02:05:37 +01:00
Armin Novak cbf2892ccc Implemented temporary certificate accept.
Certificates can now be accepted temporarily.
The callbacks for certificate validation have been
modified to extend the information presented to the user.
2016-02-05 02:04:57 +01:00
Armin Novak cd05ea7452 Fixed error checks for command line parser. 2016-02-01 15:18:34 +01:00
Armin Novak 035f127081 Added get_build_config functions. 2016-01-28 14:26:50 +01:00
Hardening d458bc2e06 Merge pull request #3073 from davewheel/cert_key_in_memory
Allow to specify the raw content of crypto materials
2016-01-27 10:50:38 +01:00
davewheel d5b8585a39 Allow to specify the raw content of crypto materials
Sometime it's possible that your server application doesn't have access to files
(when running in a very restricted environment for example). This patch allows
to ship the private key and certificate as a string.

Sponsored by: Wheel Systems (http://www.wheelsystems.com)
2016-01-21 11:27:06 +01:00
davewheel 121a234866 Add better handling of monitors
This patch makes FreeRDP announce the support for monitor layout PDU. It also
adds support for servers to announce the monitors layout.
2016-01-20 16:56:04 +01:00
Bernhard Miklautz 6fa3608111 cleanup cmake exports and pkg-config files
With this commit the "exported" components (usable with pkg-config and
cmake find module package)
* winpr - winpr library and headers
* freerdp - core library and headers
* freerdp-client - client specific library
* freerdp-server - server specific library
* rdtk - rdtk headers and library

To allow the installation of multiple different version (different major
number) the include files were moved into the respective sub folder:
freerdp -> freerdp{MAJOR}/freerdp (currently freerdp2/freerdp/)
winpr -> winpr{MAJOR}/winpr (currently winrp1/winpr/)
rdtk -> rdpk{MAJOR}/rdtk (currently rdtk0/rdtk/

The generated pkg-config and cmake find modules now also include the major
version number. Currently the following pkg-config are generated and
installed.
* winpr1
* freerdp2
* freerdp-server2
* freerdp-client2
* rdtk0

As cmake is able to handle multiple versions out of the box the
following can be used to find a specific module:

find_package(WinPR)
find_package(FreeRDP)
find_package(FreeRDP-Server)
find_package(FreeRDP-Client)
find_package(RdTk)

As cmake doesn't automatically resolve dependencies for packages it is
necessary to manually include the requirements. For example if
FreeRDP-Client is required WinPR and FreeRDP need to be included
(find_package) as well.

This commit also fixes the installation when STATIC_CHANNELS are built.
WITH STATIC_CHANNELS all channels are linked into libfreerdp-client, for
this all channels are generated as linker archive and linked together in
the final step. Before the intermediate linker archives were, although
not required and useful, installed. Same applies for server side
channels.
2016-01-12 17:32:33 +01:00
zihao.jiang 60ae27b00a server/shadow: Completely decouple subsystem implementations and shadow framework internal details.
It will be completely possible to implement subsystem with only include/freerdp/server/shadow.h and libfreerdp-shadow.

Details as following:
1. Exported surface structure as subsystem implementations deeply depend on it to send image update
2. Export capture APIs. They are actually indepent APIs to help compare and calculate image difference.
3. Introduce API to trigger client frame update. Conceal details in subsystem->updateEvent
4. Pass client to client callbacks. Subsystem implementation may need to know 'which client' send the interaction event as well as the authentication request.
Add this support in callback definition before anyone really use shadow framework APIs to implement a custom subsystem.
Also added callback for client capability exchange
5. Remove X11_ShadowSubsystem Mac_ShadowSubsystem Win_ShadowSubsystem from libfreerdp-shadow.
Discard FREERDP_API mark on ShadowSubsystemEntry functions and make them be compiled together with shadow.c in CMakeLists.txt.
This is required from PR #2751.
Now subsystem implementations and shadow.c could be regarded as an example for shadow framework.
2016-01-01 03:13:52 +08:00
Hardening df81e842a5 Merge pull request #2932 from realjiangms/fix_gdi_brush
GDI: Fix usage of gdi_get_brush_pointer.
2015-12-18 10:50:51 +01:00
Bernhard Miklautz 97edeca204 Merge pull request #2874 from akallabeth/stdtypes
Using stdint.h and stdbool.h for type definitions
2015-12-17 16:37:54 +01:00
Roland Kaufmann 6f6f0b0c53 Move UnmapButtons settings to stable ABI section
The Miscellaneous section is chosen because choosing not to map the
buttons is not a property of the input system, but rather an ad-hoc
setting to be applied to this session.
2015-12-16 23:21:43 +01:00
Roland Kaufmann 600d3c5ccb Add option to disable pointer button mapping
In case the old behaviour of not reverse-mapping the mouse buttons is
desirable, a command-line option is added to disable the mapping. This
option is made experimental for the time being.

The default is to do the reverse mapping, as this is the intuitive
behaviour (the mouse then works as it would on the console).
2015-12-15 17:42:57 +01:00
Armin Novak a5db7117c8 Implemented horizontal wheel support.
Horizontal mouse wheel input capabilities are now checked
and if available mouse buttons 6 and 7 are mapped to the
horizontal wheel for the X11 client.
2015-12-14 18:29:23 +01:00
Bernhard Miklautz 7f7ef1a464 Merge pull request #2831 from akallabeth/gdi_fix
Fixed GDI_BITMAP, now using custom deallocation function.
2015-12-14 17:58:25 +01:00
Hardening c44dc17bc7 Merge pull request #2980 from akallabeth/clipboard_struct_fixes
Fixed CLIPRDR_FILEDESCRIPTOR
2015-12-14 16:09:47 +01:00
Armin Novak 74c15a6309 Fixed freerdp_assistance_file_new argument declaration 2015-12-14 14:18:50 +01:00
Armin Novak 75fc2010a7 Fixed CLIPRDR_FILEDESCRIPTOR 2015-11-18 09:50:52 +01:00
Armin Novak f6e17ec65c Added audin support for mac os. 2015-11-12 16:10:39 +01:00
Bernhard Miklautz d73c4898c1 Add build-config.h
build-config.h should contain configure/compile time settings that are
relevant for projects that use FreeRDP.

For example the compiled in plugin search paths.
2015-11-09 15:54:22 +01:00
Norbert Federa 3eee70b164 Merge pull request #2926 from bjcollins/rail_fixes
Rail fixes
2015-11-06 13:34:42 +01:00
Martin Fleisz ab6485b3bf cliprdr/server: Add comment 2015-10-28 12:28:14 +01:00
Martin Fleisz 730f43a380 cliprdr/server: Provide the server with a possibility to configure capabilities 2015-10-27 17:12:33 +01:00
zihao.jiang 83d58ccfe8 GDI: Fix usage of gdi_get_brush_pointer.
Currently we get color from brush according to the offset in the paint region.
According to MSDN https://msdn.microsoft.com/en-us/library/dd183396(v=vs.85).aspx, it should get color according to dest position instead of offset in paint region.
2015-10-17 02:49:45 +08:00
bjcollins cc676c4468 Remote app support
All window state order offsets are signed according to the RDP spec, lets treat them as such.
2015-10-15 18:18:21 -05:00
Marc-André Moreau 029cbf3aca libfreerdp-gdi: fix egfx multimon support 2015-10-13 15:50:39 -04:00
MartinHaimberger d971116457 Merge pull request #2765 from akallabeth/connect_abort
Connect abort and unified TCP connect
2015-09-07 10:05:24 +02:00
Armin Novak 3b8043264f Resetting channel error on connect. 2015-09-03 13:46:17 +02:00
Norbert Federa 2d5e249eff Merge pull request #2825 from akallabeth/pointer_decoding_fix
Fixed color pointer decoding.
2015-09-01 11:09:42 +02:00
Marc-André Moreau a700d1d02d Merge pull request #2716 from realjiangms/shadow_xor_pointer
server/shadow: Fix alpha pointer message so that it allows pixel with both 'xor' and 'and'
2015-08-27 10:20:18 -04:00
Marc-André Moreau 97c38e7d8c Merge pull request #2739 from realjiangms/shadow_resize
server/shadow: Enhancement regarding the screen and resolution - addresize support and fix subRect feature
2015-08-27 10:19:25 -04:00
Armin Novak e6c23cb534 Implemented Async TCP connect with abort event
* Implemented unified freerdp_tcp_connect_timeout with connect abort.
* Implemented unified freerdp_tcp_connect_multi with connect abort.
* Added connect abort to freerdp_tcp_connect.
* Added freerdp_abort_connect and abortEvent.
2015-08-27 15:33:06 +02:00
Marc-André Moreau 223e0c7900 Merge pull request #2785 from MartinHaimberger/mh-channel-fix
Channel hardening and fixing
2015-08-27 09:24:10 -04:00
Martin Haimberger 52405a3e79 Remove WIN32ERROR type
All return values are UINT now.
2015-08-27 05:38:20 -07:00
Vic Lee 6f639c1e34 gcc: read and write desktop scale settings in core data. 2015-08-27 16:19:40 +08:00
Vic Lee 8394d8c677 gcc: read and write monitor extended data. 2015-08-27 15:26:37 +08:00
Armin Novak db3fa9a0d2 Added gdi_CreateBitmapEx function. 2015-08-26 12:14:46 +02:00
Armin Novak 253a60aaf3 Fixed GDI_BITMAP, now using custom deallocation function.
gdi_surface_bits: Now properly discarding old bitmap before creating a new one.
2015-08-12 11:01:05 +02:00
Armin Novak 7983c2f457 Fixed duplicate int. 2015-08-06 14:43:39 +02:00
Armin Novak 4a62e6bee4 Added length arguments and checks. 2015-08-06 11:24:42 +02:00
Martin Haimberger 2862109337 Merge remote-tracking branch 'upstream/master' into mh-channel-fix
Conflicts:
	channels/smartcard/client/smartcard_main.c
	channels/smartcard/client/smartcard_operations.c
2015-07-30 07:29:12 -07:00
Martin Haimberger 65fd259610 misc fixes:
fixed all bugs from the review
checking all WaitFor*Object/s calls
2015-07-30 06:49:21 -07:00