zihao.jiang
2673a77905
server/shadow: Fix alpha pointer message so that it allows pixel with both 'xor' and 'and'.
...
Integrate idea from @bmiklautz: make convert_alpha_pointer_data function as common
2015-06-28 22:16:29 +08:00
zihao.jiang
457413727f
server/shadow: Fix alpha pointer message so that it allows pixel with both 'xor' and 'and'.
...
Original pointer alpha update message is too specific for x11 implementation.
It doesn't allow pointer alpha mask with both 'xor' color and 'and' mask, e.g.: the 'edit' pointer in windows text box.
1. Move shadow_client_convert_alpha_pointer_data to x11 implementation as it is specific for x11.
2. Update message definition to be more generic: to accept 'xor/and' mask directly.
Implementation of subsystem can implement its own way to convert pointer mask data.
3. Fixed fault handling to free the resource allocated.
2015-06-28 22:16:29 +08:00
zihao.jiang
e00655c3c2
server/shadow: shadow encoder related enhancement/fix.
...
1. Export fps related API so that subsystem implementation no longer need to know about details in encoder structure.
2. Discard frameList dictionary.
The 'value' in this dictionary is never used and not properly free'ed when client is disconnected.
The dictionary was used to calculate 'inflight' frame count. Once an ACK is received from client, an item in the dictionary is removed.
We then calculate 'inflight' frame by the count of the items in the dictionary.
However, some rdp clients (win7 mstsc) skips frame ACK if it is inactive, ACK of some frame would actually never arrive.
We actually don't need the dictionary. We only need to record the latest acknowledged frame id, and the difference between last sent frame id is the inflight frame count.
3. Minor fix in default fps calculation. encoder->frameAck is wrongly used as integer while it's actually bool flag.
2015-06-23 14:36:53 +08:00
Marc-André Moreau
750e752d45
Merge pull request #2697 from realjiangms/shadow_audio
...
Shadow server: fix channel disposal and add audio support. fix message mechanism in client
2015-06-22 09:52:53 -04:00
Marc-André Moreau
82179c7d8b
Merge pull request #2698 from realjiangms/shadow_stand_alone
...
server/shadow: Decouple shadow_subsystem and subsystem implementation detail.
2015-06-22 09:39:17 -04:00
Martin Haimberger
0c3a62be7a
hardend remdesk channel
2015-06-22 00:12:25 -07:00
Martin Haimberger
6348e41479
channel rdpei hardend
2015-06-18 03:04:32 -07:00
Martin Haimberger
b9853f87eb
channel encomsp hardend
2015-06-18 03:04:32 -07:00
Martin Haimberger
0cfbc6648b
channel echo hardend
2015-06-18 03:04:32 -07:00
Martin Haimberger
0bf222ec50
hardend rdpdr channel
2015-06-18 03:04:32 -07:00
Martin Haimberger
e5d5cd3c94
hardend cliprdr
...
hardend cliprdr server and client
also updated all callbacks in the server and client
implementations
2015-06-18 03:04:31 -07:00
Martin Haimberger
156f86e487
hardend channel audin
2015-06-18 03:04:31 -07:00
Martin Haimberger
d06da4f1bd
hardend drdynvc channel
2015-06-18 03:04:28 -07:00
zihao.jiang
2335a307cb
server/shadow: integrate comment from @hardening
...
Return directly at subsystem->ClientConnect
Also change to argument to accept shadow_client instead of freerdp_peer
2015-06-16 00:43:17 +08:00
zihao.jiang
131f030e0e
server/shadow: Decouple shadow_subsystem and subsystem implementation detail.
...
Make shadow_subsystem standalone so that others can implement customized shadow server with shadow library.
2015-06-14 22:20:47 +08:00
zihao.jiang
b169dfd930
server/shadow: add connect/disconnect anchor in subsystem callback
...
Other implementation of subsystem may want to track connect/disconnect of each client
2015-06-14 22:15:47 +08:00
zihao.jiang
8485d866d4
This is originally to add audio support. Several fixes included:
...
1. Introduce message queue in shadow client. No longer use subsytem->MsgPipe->out to deliver message to clients.
We used to use subsytem->MsgPipe->out for messages which need to be sent to client. But it's not correct. Only one client would get the message if multiple client exists
This problem make the fix in PR #2643 incomplete.
Introduced reference count based solution to release resource taken by the message.
Also added APIs for client message delivery.
Also fixed msg pipe in subsystem to clean resource when destroyed.
2. Discard unused StopEvent in client. We actually use quit message instead.
3. Enhance disposal of channels.
Free context for remdesk and encomsp channels. The original fix only stop the threads, but doesn't release resource.
Dispose channels earlier. The channels are built on client->vcm. Disposing channels after client->vcm is closed cause unknown behavior.
Original fix is #2644
4. Start to add audio support.
2015-06-14 21:45:52 +08:00
Marc-André Moreau
5526348079
Merge branch 'master' of github.com:FreeRDP/FreeRDP
2015-05-21 13:29:59 -04:00
zihao.jiang
85dd90d817
shadow fix multi-client hang
...
Merge from commit d4df3a952b
Conflicts:
server/shadow/shadow_subsystem.c
2015-05-11 00:04:07 +08:00
Mike McDonald
b184a7531f
Merge branch 'master' of https://github.com/awakecoding/FreeRDP into awakecoding-staging
2015-01-20 08:09:00 -05:00
Mike McDonald
b21331cf1a
First cut at server side implementation of RDPDR drive redirection.
2014-12-27 21:17:34 -05:00
Marc-André Moreau
265e8b9e9d
cliprdr/server: make channel thread optional
2014-12-18 11:11:36 -05:00
Marc-André Moreau
afce8061b3
cliprdr/server: split add Open/Close callbacks
2014-12-18 10:46:23 -05:00
Marc-André Moreau
a69eaddecd
channels/cliprdr: add missing messages in cliprdr server
2014-12-15 17:05:32 -05:00
Armin Novak
e6fa0911a3
Fixed missing extern C
2014-12-01 13:12:51 +01: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
04299bb18b
shadow: improve pointer updates
2014-11-07 13:51:10 -05:00
Marc-André Moreau
abd87ace55
rdtk: initial commit
2014-09-29 16:08:08 -04:00
Marc-André Moreau
6eeace868b
shadow: start bitmap font loader
2014-09-28 21:41:12 -04:00
Marc-André Moreau
668aa17a22
shadow: add X11 PAM authentication
2014-09-26 19:03:48 -04:00
Marc-André Moreau
aa2e6dacbb
shadow: fix frame acks + bitmap negotiation
2014-09-19 12:06:12 -04:00
Marc-André Moreau
09fc388e03
shadow: add RefreshRect/SuppressOutput support
2014-09-18 22:18:58 -04:00
Marc-André Moreau
aa7571648c
shadow: start using message queue
2014-09-18 17:22:44 -04:00
Marc-André Moreau
7ef55ab9b7
shadow: improve subsystem structure
2014-09-18 15:43:11 -04:00
Marc-André Moreau
527638c691
shadow: delay subsystem initialization for monitor enumeration
2014-09-18 13:06:49 -04:00
Marc-André Moreau
48d15998e7
shadow: add common subsystem code
2014-09-17 22:58:57 -04:00
Marc-André Moreau
e84e7928e3
server/shadow: split into library + executable
2014-09-17 21:18:47 -04:00
Marc-André Moreau
b7351e0795
Merge branch 'egfx' of github.com:awakecoding/FreeRDP into shadow
2014-09-13 12:04:02 -04:00
Marc-André Moreau
b0d27beae3
mfreerdp: add egfx support
2014-09-13 12:02:53 -04:00
Bernhard Miklautz
96cd479c99
rdpsnd_server_handle_messages: change return type
...
With BOOL as return type it is not possible to differentiate between
success and "no data can be read" (when a channel read would block).
rdpsnd_server_handle_messages returns now int with the following
possible values:
-1 if no data could be read
0 error (like connection close) (formerly FALSE)
1 succsess (also if further bytes need to be read) (formerly TRUE)
Not using -1 for error cases was chosen to be compatible with the BOOL
return values used before.
2014-09-11 13:45:23 +02:00
Bernhard Miklautz
bbaecbd42d
rdpsnd server: add support for clients version < 6
...
MS-RDPEA 2.2.2.3 states (Appendix A <6>) that quality mode PDU
should be ignored if the client version is < 6. For these clients the sound
channel got never activated since activated was only called after
reception of the quality mode PDU.
For clients < version 6 activated is now called after
CLIENT_AUDIO_VERSION_AND_FORMATS was received.
2014-09-11 12:30:37 +02:00
Marc-André Moreau
e1e8da9490
shadow: add ability to share rectangle within monitor
2014-09-10 16:27:24 -04:00
Marc-André Moreau
34756850e4
shadow: add ability to select monitor to share
2014-09-10 14:58:14 -04:00
Marc-André Moreau
8b4cf07c8a
shadow: make use of synchronization barrier
2014-08-08 18:47:46 -04:00
Marc-André Moreau
d9d9bf3609
shadow: start detecting invalid regions manually
2014-08-06 17:51:38 -04:00
Marc-André Moreau
9838200068
libfreerdp-core: fix unix domain socket support
2014-08-06 12:08:00 -04:00
Marc-André Moreau
c45ddc783e
shadow: improve DXGI 1.2 error checking
2014-07-18 17:26:21 -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
Marc-André Moreau
78520d5141
shadow: add basic server-side encomsp server
2014-07-15 16:34:15 -04:00
Vic Lee
0ba59c842d
echo: add server echo channel api.
2014-07-15 11:42:12 +08:00
Marc-André Moreau
e7fb6e67f5
shadow: add basic lobby functionality
2014-07-14 18:01:29 -04:00
Marc-André Moreau
f0ce0b8148
shadow: initial X11 multi-monitor support
2014-07-14 13:33:20 -04:00
Marc-André Moreau
8c9434f0dc
shadow: remove header include dependency on subsystem
2014-07-13 21:20:36 -04:00
Marc-André Moreau
04aaf5d59d
shadow: add support for frame acks
2014-07-13 19:42:57 -04:00
Marc-André Moreau
e9818e95ac
shadow: hook X11 input
2014-07-12 01:18:08 -04:00
Marc-André Moreau
c865fed299
shadow: start hooking X11 subsystem with shadow server core
2014-07-12 00:01:29 -04:00
Marc-André Moreau
3d57659efb
shadow: start structuring X11 code as shadow subsystem
2014-07-11 23:01:34 -04:00
Marc-André Moreau
5135467037
shadow: stub more components
2014-07-11 20:49:56 -04:00
Marc-André Moreau
8ae00f7385
shadow: start hooking X11 code as subsystem
2014-07-11 19:30:40 -04:00
Marc-André Moreau
0196a02354
freerdp-shadow: start new cross-platform shadowing server
2014-07-10 15:46:34 -04:00
Hardening
4b6edb913c
Make server sound thread optionnal
...
This patch makes the server-side sound channel thread optionnal, and
exposes functions to handle channel traffic from the outside.
2014-07-02 10:31:45 +02:00
Marc-André Moreau
f7f07c56ba
channels/remdesk: stub virtual channel
2014-06-28 17:24:44 -04:00
Marc-André Moreau
64b8ded9f2
encomsp: stub client/server virtual channel
2014-06-23 16:18:03 -04:00
Hardening
f33f755635
Also specify the timestamp when sending samples
...
This patch complements the SendSample() callback to take the timestamp
as extra argument.
2014-06-18 23:44:34 +02:00
Hardening
99d531655c
Implement a confirm block callback
...
This patch adds a callback called when we receive feedback from the
client.
2014-06-18 23:44:34 +02:00
Hardening
a7023769d0
Fixes in the server-side sound channel
...
This patch:
* treats OOM situations
* adds checks when reading audio channel messages
2014-04-29 01:02:35 +02:00
Marc-André Moreau
6e1cdf1b67
libfreerdp-core: expose opaque HANDLE instead of WTSVirtualChannelManager*
2014-02-27 13:30:04 -05:00
Marc-André Moreau
9afddf66ad
libfreerdp-core: implement WTSVirtualChannelOpenEx
2014-02-16 23:00:58 -05:00
Marc-André Moreau
8a81208059
libfreerdp-core: move server-side virtual channels back into core
2014-02-15 17:42:59 -05:00
Marc-André Moreau
4fbbc03ac9
channels/cliprdr: fix conflict with CLIPRDR_HEADER
2013-11-24 15:35:26 -05:00
Marc-André Moreau
23a8354656
channels: rdpsnd refactoring, drdynvc initial server-side code
2013-08-18 21:52:55 -04:00
Marc-André Moreau
363bd27d76
channels/rdpdr: start server-side device redirection
2013-08-18 18:09:12 -04:00
Marc-André Moreau
af93bee5d2
channels/cliprdr: implement initialization of server-side cliprdr
2013-08-18 15:39:28 -04:00
Marc-André Moreau
0fd705c6c7
channels/cliprdr: start server-side implementation
2013-08-16 16:46:47 -04:00
Vic Lee
5aa49de0c0
include: add some missing extern C decl.
2013-05-19 21:57:08 -07:00
Marc-André Moreau
8ad5932a3d
channels: continue event refactoring
2013-03-28 19:33:31 -04:00
Marc-André Moreau
2b9174a69b
channels/rdpsnd: cleanup
2013-02-25 21:46:48 -05:00
Marc-André Moreau
709e66a596
libfreerdp: header cleanup
2012-12-14 00:25:48 -05:00
Marc-André Moreau
5b1a7104a0
channels: refactor static server channels
2012-10-13 10:17:52 -04:00
Marc-André Moreau
9d064171a7
freerdp: get rid of old types
2012-10-09 03:26:39 -04:00
Marc-André Moreau
1ed644786c
freerdp: change boolean type to BOOL type
2012-10-09 02:38:39 -04:00
Marc-André Moreau
e60a092d81
freerdp: fix headers
2012-10-08 23:02:04 -04:00
Vic Lee
364166a672
server: add audio input server channel.
2012-06-26 14:49:39 +08:00
Vic Lee
106b20cbb0
server/rdpsnd: add SetVolume support.
2012-05-29 22:22:38 +08:00
Vic Lee
052f841d7f
server: add rdpsnd server channel library.
2012-05-24 14:03:21 +08:00