Commit Graph

218 Commits

Author SHA1 Message Date
akallabeth
1546a8b655 Fixed naming of FILEDESCRIPTORW 2020-09-18 12:49:54 +02:00
Armin Novak
75aab487e2 Added duplicate initialization check for plugins. 2020-08-10 16:17:44 +02:00
Armin Novak
3ba66db99d Unify pReceiveChannelData and psPeerReceiveChannelData
Fix definitions of the two function pointers.
Use and definition did not match, fix that.
Will create warnings in external projects
2020-03-10 12:21:14 +01:00
Martin Fleisz
45e0fdde20
Merge pull request #5915 from akallabeth/gfx_versions
Updated RDPGFX_CAPVERSION_106 according to errata 2018-12-10
2020-02-26 14:48:41 +01:00
Armin Novak
2cd36a042a Updated RDPGFX_CAPVERSION_106 according to errata 2018-12-10 2020-02-26 14:37:10 +01:00
Armin Novak
829497b313 Made CHANNEL_TSMF optional and deprecated. 2020-02-26 13:56:43 +01:00
Kobi Mizrachi
9417350d92 core: channels: add API to get channel name/id 2020-02-26 11:47:01 +01:00
Armin Novak
0927d7aa50 Rewrite of urbdrc channel.
* Fix command line parsing
* Properly handle channel creation/destruction
* Use wStream API for parsing
2019-11-22 10:56:21 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
kubistika
dff3686642 channels: cliprdr: remove formatDataResp.dwFlags
According to the channel docs, this field is only used in format data
request. Therefore, there's no need to hold it in the response. cliprdr
server code was copy-pasted from client code, therefore this must be
some leftover.
2019-10-18 14:20:26 +02:00
Kobi
d9366df448 RDPEDISP server side implementation (#5414)
* libfreerdp: Add RDPEDISP server implementation

* server/proxy: Add RDPEDISP support
2019-06-11 16:13:42 +02:00
kubistika
e9faaedc85 rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec 2019-05-05 12:34:57 +03:00
Armin Novak
69e9571d9e Fixed EGFX capability parsing, respect length fields.
Disable RDPGFX_CAPVERSION_106 as we currently do not support scaled
outputs.
2019-02-27 17:15:43 +01:00
Armin Novak
e8c8e7b6d0 Updated EGFX support to 10.6 2019-02-27 16:36:15 +01:00
David Fort
70805402be
Merge pull request #5140 from akallabeth/print_custom_component
Added callback to handle printer custom components in printer backend.
2019-01-29 15:18:53 +01:00
Armin Novak
728cdfd689 Fixed warnings found by compiler and static analysis. 2019-01-24 11:53:52 +01:00
Armin Novak
192680a001 Added callback to handle printer custom components in printer backend. 2018-12-12 10:57:53 +01:00
Armin Novak
5b0b18ae71 Device name now const. 2018-08-24 13:40:36 +02:00
David Fort
b8e3b232de video: mutualize things in the common channel code 2018-02-13 10:52:53 +01:00
David Fort
a07efb73ec video: an implementation of MS-RDPEVOR for X11
Implements the decoding of video streams using common H264 decoders. We also implement
a trivial feedback algorithm.

Sponsored by: Rangee GmbH (http://www.rangee.de)
2018-02-13 10:51:07 +01:00
David Fort
b84839b21c video: a skeleton for MS-RDPEVOR client
Basics for implementing the client side of the MS-RDPEVOR channel.

Sponsored by: Rangee GmbH (http://www.rangee.de)
2018-02-13 10:51:07 +01:00
David Fort
adac409d1b geometry: change the channel API to mutualize things
Try to mutualize things that are platform independant in the geometry client
channel.

Sponsored by: Rangee GmbH (http://www.rangee.de)
2018-02-13 10:51:07 +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
Armin Novak
8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +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
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
Marc-André Moreau
2cce8e9fbc channels: migrate drdynvc to extended virtual channel API 2016-11-15 10:58:38 -05:00
Armin Novak
97cbc42cd2 Added reference to capability specifications 2016-10-20 09:59:54 +02:00
Armin Novak
39b624a211 GFX: support 10.2 stack. 2016-10-16 10:42:46 +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
Bernhard Miklautz
143b875a4a wtsvc: add missing DRDYNVC_STATE_FAILED 2016-10-06 13:43:15 +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
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
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
a6cef5cde7 Fixed GFX related issues. 2016-10-06 13:43:00 +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
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
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
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
75fc2010a7 Fixed CLIPRDR_FILEDESCRIPTOR 2015-11-18 09:50:52 +01:00
Martin Haimberger
52405a3e79 Remove WIN32ERROR type
All return values are UINT now.
2015-08-27 05:38:20 -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
Martin Haimberger
b8c110d19b introduced channel error reporting system
The rdpContext gets an event which will
get set if an error occoured in a channel.

If a thread or a void callback has to report an
error it will get signaled by this system.
2015-07-15 00:50:35 -07:00
Martin Haimberger
0bf222ec50 hardend rdpdr channel 2015-06-18 03:04:32 -07:00
Armin Novak
3139a412fa Fixed argument for freerdp_channels_client_load, using proper type now. 2015-01-20 11:32:04 +01:00
Armin Novak
a1a2cf2257 Added freerdp_channels_disconnect 2015-01-20 11:10:39 +01:00
Marc-André Moreau
fdd2dc7601 freerdp: patch valgrind leaks, cleanup 2014-12-03 14:17:27 -05:00
Hardening
ed6f380434 Add server-side RDPEI
This patch mutualize code between client and server for RDPEI. And add support for
the server-side.
2014-11-20 22:19:29 +01:00
Marc-André Moreau
0e7c95c421 freerdp: remove deprecated eventing system 2014-11-12 13:18:18 -05:00
Marc-André Moreau
a6bb185760 channels/tsmf: add new callback interface 2014-11-07 18:33:45 -05:00
Marc-André Moreau
f01bb56ac5 channels/cliprdr: add missing clipboard data format definitions 2014-10-23 18:33:10 -04:00
Marc-André Moreau
f76f8e3599 channels/cliprdr: add missing callbacks and message definitions 2014-10-23 18:17:53 -04:00
Marc-André Moreau
1c7ed224b6 wfreerdp: start preparing cliprdr code for migration to cliprdr callback interface 2014-10-23 15:38:19 -04:00
Marc-André Moreau
a1e660d92e freerdp: unify clipboard standard format id definitions 2014-10-16 22:20:12 -04:00
Marc-André Moreau
334dec3c1f winpr: add pragma pack, bitmap + clipboard definitions 2014-10-16 21:45:47 -04:00
Armin Novak
a9644a26a0 Removed obsolete headers and defines. 2014-09-15 08:55:00 +02:00
Armin Novak
d122200fe4 Added headers for converting logging in libfreerdp, channels, clients and servers. 2014-09-09 16:33:05 +02:00
Bernhard Miklautz
3e355c9f79 channels: fix possible overflow in logging
Fixes clang compiler warning:

"warning: the value of the size argument in 'strncat' is too large,
might lead to a buffer overflow [-Wstrncat-size]"

strncat requires an extra byte for '\0' so dest needs to have a size of
n+1
2014-08-29 16:37:14 +02:00
Marc-André Moreau
e4a4aa4d3a Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow
Conflicts:
	channels/encomsp/client/encomsp_main.c
	libfreerdp/core/tcp.c
	libfreerdp/crypto/certificate.c
	server/Windows/CMakeLists.txt
	server/X11/xf_cursor.c
	server/X11/xf_input.c
	server/X11/xf_interface.c
	server/X11/xf_monitors.c
	server/X11/xf_peer.c
2014-08-11 19:22:33 -04:00
Marc-André Moreau
422336b8b8 Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	include/freerdp/channels/log.h
2014-08-11 18:56:07 -04:00
Marc-André Moreau
b713bc1a98 freerdp: fix possible clog memory corruption 2014-08-11 18:51:22 -04:00
Nicholas Twerdochlib
c41c6589e1 Minor tweak to CLOG_PRINT macro. Initialalize tag buffer to NULL. Use strncat as a fail safe. 2014-08-11 18:48:11 -04:00
Marc-André Moreau
cff9c16c1e Merge branch 'master' of github.com:FreeRDP/FreeRDP
Conflicts:
	channels/disp/client/disp_main.c
2014-08-11 10:36:07 -04:00
Armin Novak
66b8905ac6 Using special log defines for channels now. 2014-08-11 09:12:01 +02: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
780079d629 Merge branch 'master' of github.com:awakecoding/FreeRDP into egfx 2014-07-28 16:59:29 -04:00
Marc-André Moreau
5d4f28a788 Merge branch 'master' of github.com:awakecoding/FreeRDP into shadow 2014-07-17 17:33:33 -04:00
Marc-André Moreau
e6f4754ed3 winpr: improve windows builds across visual studio versions and toolsets 2014-07-17 15:11:04 -04:00
Marc-André Moreau
21571eea88 channels/remdesk: add PassStub generation 2014-07-15 20:09:19 -04:00
Marc-André Moreau
f6d1d083e9 channels/remdesk: initial dummy server-side remote assistance message parsing 2014-07-15 18:38:32 -04:00
Marc-André Moreau
6f1acb01dd channels/rdpgfx: parse H264 bitmap stream and meta block 2014-07-08 17:37:29 -04:00
Marc-André Moreau
f7e5365719 libfreerdp-codec: add more gfx H264 debug output 2014-07-08 17:16:13 -04:00
Marc-André Moreau
f943d7fc1b Merge branch 'master' of github.com:awakecoding/FreeRDP into lync 2014-06-30 17:22:50 -04:00
Marc-André Moreau
5606c64f61 channels/remdesk: initial working Remote Assistance 2014-06-30 13:26:11 -04:00
Marc-André Moreau
01a013f826 client/common: fix Remote Assistance memory leaks 2014-06-29 19:57:46 -04:00
Marc-André Moreau
06c7f83bc2 channels/remdesk: start parsing messages 2014-06-28 20:22:36 -04:00
Marc-André Moreau
f7f07c56ba channels/remdesk: stub virtual channel 2014-06-28 17:24:44 -04:00
Hardening
f07ab94703 Fix conflicting define
WTSVirtualEventHandle and WTSVirtualChannelReady are already defined in wtsapi.h
and with different values.
2014-06-25 17:35:20 +02:00
Marc-André Moreau
014d8972e3 channels/encomsp: initial client-side implementation 2014-06-23 18:17:26 -04:00
Marc-André Moreau
64b8ded9f2 encomsp: stub client/server virtual channel 2014-06-23 16:18:03 -04:00
Marc-André Moreau
42c83c25f8 Merge branch 'egfx' of github.com:awakecoding/FreeRDP into egfx
Conflicts:
	channels/tsmf/client/tsmf_main.c
2014-06-12 12:08:15 -04:00
Marc-André Moreau
6f9a256c5c Merge branch 'master' of github.com:awakecoding/FreeRDP into egfx
Conflicts:
	channels/drdynvc/client/dvcman.c
	client/X11/xf_client.c
	include/freerdp/dvc.h
2014-06-12 12:03:08 -04:00
Marc-André Moreau
2a82684521 channels: cleanup unused freerdp channels global functions 2014-06-11 16:27:31 -04:00
Marc-André Moreau
f194a7b156 channels/rdpgfx: fix parsing of pdus in an array 2014-06-04 21:35:31 -04:00
Marc-André Moreau
d6e955e6f1 channels/rdpgfx: stub bitmap decompression 2014-06-03 20:51:28 -04:00
Marc-André Moreau
280d1c859f channels/rdpgfx: parse all core egfx pdus 2014-06-03 19:48:47 -04:00
Marc-André Moreau
c9172dfdb3 channels/rdpgfx: start parsing pdus 2014-06-03 15:32:03 -04:00
Marc-André Moreau
e74fb24ad1 channels/rdpgfx: start working on capability sets 2014-06-03 00:05:43 -04:00
Armin Novak
f62dab9fd3 Added callbacks and names for TSMF. 2014-05-23 13:10:34 +02:00