akallabeth
0c96c3a71c
Moved clipboard hasHugeFileSupport to end of struct
2020-12-04 14:09:28 +01:00
Armin Novak
d493cf6f07
Cleaned up rdpei channel, updated to current spec.
2020-11-23 10:29:47 +01:00
akallabeth
f282c55c7a
Added clipboard CB_HUGE_FILE_SUPPORT_ENABLED flag
2020-09-29 09:03:49 +02:00
Kobi Mizrachi
004c2f49e4
rail: server: add API to set railHandshakeExflags
2020-07-07 15:31:20 +03:00
Kobi Mizrachi
29dee84a2b
rail/server: rename rdpContext to rdpcontext
...
Fixes a compilation error when mixing c++ and c code.
2020-01-14 07:58:47 +01:00
Mati Shabtay
4dacb57f6f
rail server: implement channel code for rail server
...
* Split common functionality from client code
* Clean up client code and use proper defines for constants
* Implements the channel code to read/write server side
messages.
2019-12-12 11:10:44 +01:00
Armin Novak
72ca88f49c
Reformatted to new style
2019-11-07 10:53:54 +01:00
Armin Novak
74cffef053
Clipboard server callback arguments const
2019-08-19 09:30:40 +02:00
kubistika
f429275f86
channels: cliprdr: server: add autoInitializationSequence
2019-08-19 09:30:40 +02:00
kubistika
6cebbc2a16
channels: cliprdr: add lastRequestedFormatId
...
This one is for proxy use. The proxy must know what format is requested by the other side
of the connection, for determining if the message should be passed
or ignore (for example, if we want to allow only text, the proxy must
verify that the requested format received in Format Data Request PDU is
a text format.
2019-08-19 09:30:40 +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
Mati Shabtay
b907324009
First version of an RDP proxy ( #5372 )
...
* server: Add proxy dir with barebones server
* sever/proxy: Remove licensing
* server/proxy: Add client files
* server/proxy: rm binary
* server/proxy: Formatting
* server/proxy: Fixed includes and added basic client creation functionality
* server/proxy: Remove licensing and fix ifndef
* proxy/server: Fix cmake indentation
* server/proxy: Fix licensing
* server/proxy: Forward connection on peer_post_connect
* server/proxy: Fix function signature
* server/proxy: Changed function signature of proxy_client_start
* server/proxy: Now peer_post_connect calls proxy_client_start in a new thread
* pfreerdp.c: Clean up useless comments and logs
* server/proxy: Fix license
* server/proxy: Remove all non-connection related data from proxy_context
* server/proxy: Move Log Tag definition to pf_log.h
* server/proxy: Move context definition to pf_context
* server/proxy: Delete pfreerdp.h
* pfreerdp.c: Move context callbacks to pf_context.c
* server/proxy: Update CMakeLists.txt
* pf_channels: Use new proxy context API
* pf_client: Move context to pf_context
* pf_client.c: Remove unnessecary event handling
* server/proxy: Formatting
* proxy/server: Move server logic to pf_server.c
* server/proxy: Handle client disconnection
* Merge stash
* pf_server.c: Open GFX Connection to client
* server: CMakeLists: build proxy along with other servers
* server: proxy: get target server from rdpNego->RoutingToken
Iv'e omitted a check from which im not sure is right. Should check in docs
* server/proxy: Handle remote server -> client disconnection
* server/proxy: Move common function to pf_common.c
* server/proxy: Move common function to pf_common.c
* rdpgfx.h: Add reference to freerdp.h for rdpContext
* pf_channels: Pipe GFX on channel connection
* server/proxy: Add pf_rdpgfx for proxy gfx callbacks
* pf_client: Declare dynvc and gfx capabilities on connection
* server/proxy: Add graphics callbacks
* server/proxy: Add graphics callbacks
* pf_server: Listen to channel events
* Pass user settings to server
* pf_server: Proxy mouse events
* fixup! server/proxy: Add graphics callbacks
* pf_client: Fix setting initialization
* Merge feat/proxy-gfx to feat/proxy
* pf_server: Fix double freed credentials
* server/proxy: Remove unnecessary call to freerdp_client_settings_parse_command_line
* server/proxy: Refactor re-activation code
* server/proxy: Run format scripts
* server/proxy: Fix segfault when post_disconnect return FALSE
* server/proxy: Refactor proxy_settings_mirror
* server/proxy: Redirect credentials
* server/proxy: move proxy_settings_mirror to pf_common.c
* server/proxy: Redirect desktop_resize event
* pf_client: Remove interactive CLI auth methods
* fixup! server/proxy: Redirect credentials
* server/proxy: Rename proxy_mirror_settings to pf_common_copy_settings
* pf_server.c: Fixed non-freed context
When the disconnection is forced by the target server, the function
`pf_server_handle_client_disconnection` isn't called. Therefore, the
context of the connection between the proxy to tagrget isn't freed.
* fixup! pf_server.c: Fixed non-freed context
* pf_client: Prefix all client methods with pf_client
* pf_context: Add init client to proxy context method
* pf_server: Confirm all GFX caps regardless of settings
* pf_server: Prefix all methods with pf_server
* pf_server: Move variable decleration to start of method
* pf_server: Fix client setting
* pf_server: Fix GFX init method
* pf_server: Move variable decleration to start of methods
* server/proxy: Formatting
* Merge feat/proxy
* pf_server: Proxy synchronize event
* pf_server: Proxy refresh rect update events
* pf_server: Proxy suppress output messages
* server/proxy: Fix licensing
* server/proxy: Move client input callbacks to pf_input
* server/proxy: Move client update callbacks to pf_update
* server/proxy: Fix non-terminated target host string
* Feat/proxy config (#2 )
* server/proxy: Add config loading support
* server/proxy: Add config file
* server/proxy: Format code
* server/proxy: Code refactor, rename update_register_callbacks and input_register_callbacks
* server/proxy: Update config file
* server/proxy: Remove config.ini from root directory
* Remove comment from config file
* server/proxy: Fix leak in pf_server_load_config
* server/proxy: Add rdpServerProxy struct and embed it in proxyContext
* server/proxy: Load configuration and pass it inside every proxyContext instance
* server/proxy: Move rdpProxyServer to proxy.h
* server/proxy: Use configuration while proxying input events
* server/proxy: Update CMakeLists
* server/proxy: Refactor pf_input.c
* server/proxy: Add AllowedChannels, DeniedChannels in configuration
* server/proxy: Remove unnecessary variable from parse_channels_from_str
* server/proxy: Update config file
* server/proxy: config: Rename to
* server/proxy: config: Add mode - blacklist/whitelist
* server/proxy: Refactor, fix NULL deref
* server/proxy: Add license to proxy.h
* server/proxy: Fix newline in pf_config.c
* server/proxy: config: Rename Mode to WhitelistMode
* Add target in config. Add checks for configuration validity (#3 )
* Add target in config. Add checks for configuration validity
* Update config file
* libfreerdp: nego: revert commented out check of routingToken length
* pf_server: Fix target host info from RoutingToken
* pf_server: Remove hardcoded lenght of routing token prefix
* Feat/refactor context (#8 )
* Refactor main structs
* Update CMakeLists.txt
* pf_server.c: Free pdata at the end of the connection
* Run format scripts
* Rename tf to pc
* Fix licenses
* pf_server: Refactor names of structs and functions
* proxy: gfx: sync caps (#4 )
* proxy: gfx: sync caps
* proxy: gfx: sync caps, hook gfx client's OnClose() call and close server resources
* fixup! Feat/refactor context (#8 )
* fixup! fixup! Feat/refactor context (#8 )
* rdpgfx/client: Fix rdpgfx_recv_caps_confirm_pdu caps set length parsing
* Run format scripts
* proxy config.ini: Change default port to 3389
* pf_rdpgfx: Limit caps version to freerdp's supported versions
* Gfx OnOpen() wait for dynvc ready (#10 )
* proxy/gfx: Wait for dynvc ready state before open
* pf_channels: Initialize pc->gfx
* pf_rdpgfx: Add log and fix comments
* rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec
* pf_rdpgfx: Proxy rdpgfx v10.6 PDUs
* gfx client: Publish FrameAck sending and add auto ack flag
* proxy/gfx: Forward frame ack messages
* pf_context: Forward domain on connection
* pf_rdpgfx: Change max supported caps to 10.6
* proxy: Update config
* server/proxy: Use configuration in pf_server_handle_client
* rdpgfx/client: Fix size of surface_to_scaled_window, surface_to_window
* pf_rdpgfx: Fix formatting
* pf_server.c: Fix comments
* Move pf_server_rdpgfx_init to pf_rdpgfx
* server/proxy/CMakeLists.txt: Fix formatting
* pf_client.c: Add comment in proxy_server_reactivate
* Fixed const correctness of gfx function pointer
Signed-off-by: Mati Shabtay <matishabtay@gmail.com>
* server: proxy: update copyright
* server: proxy: wrap rdpNego and add a getter for routing token
* Refactor routing token getter (#14 )
* Refactor routing token getter
* pf_server_parse_target_from_routing_token change routing_token_length to be DWORD
* libfreerdp/core/nego.c: Run format script
* pf_server: Run format script
* server/proxy: Fix os msbuild tests
* pf_channels.c: Remove unused channels
* pf_client: Remove unused callbacks
* proxy: Remove encomsp callbacks from proxy's client
* client/rdpgfx_main.c: Fix msbuild test
* pf_config.c: Use StrSep instead of strsep for Windows builds
* Removed nego struct from direct access.
Signed-off-by: Mati Shabtay <matishabtay@gmail.com>
* proxy: Rename binary to freerdp-proxy
* rdpgfx_main.c: Revert unwanted double change to send_supported_caps
* Cleaned up proxy server code.
* All internal functions static
* Added simple command line argument to supply a config file
* Silence compiler warnings
Signed-off-by: kubistika <kmizrachi18@gmail.com>
2019-05-17 14:32:54 +02:00
Armin Novak
841cb70f91
Fixed const correctness of gfx function pointer
...
Signed-off-by: Mati Shabtay <matishabtay@gmail.com>
2019-05-05 16:17:15 +03:00
Armin Novak
e8c8e7b6d0
Updated EGFX support to 10.6
2019-02-27 16:36:15 +01:00
Armin Novak
c60ab7d068
fixed stuff
2018-09-26 12:49:52 +02:00
Armin Novak
2cf0662559
Unified format support for rdpsnd.
2018-09-26 12:49:52 +02:00
Armin Novak
26ef8c9b3b
Added export define.
2018-09-26 12:49:09 +02:00
Armin Novak
40dae15cff
Moved server-common to public header.
2018-09-26 12:49:09 +02:00
Armin Novak
d56efaae8b
Fixed server format selection.
2018-09-26 12:49:09 +02:00
Armin Novak
16531e1437
Fixed server audin callback, provide more information.
2018-09-26 12:49:09 +02:00
Armin Novak
5aa4b702c0
Fixed dst_format
2018-09-26 12:49:09 +02:00
Armin Novak
d513f184e9
Fixed shadow server callbacks.
2018-09-26 12:49:09 +02:00
Armin Novak
106dde9571
Working mic redirection for shadow server.
2018-09-26 12:49:09 +02:00
Armin Novak
28efbbc01f
Refactored audio_format* functions.
2018-09-26 12:49:09 +02:00
Armin Novak
dab5770fed
Added microphone support to shadow server.
2018-09-25 11:14:10 +02:00
Armin Novak
373bfac9ab
Added support for WAVE2 PDU in server side audio channel.
2018-07-02 16:20:39 +02:00
Armin Novak
8b9e3fa51e
Fixed use of reserved keywords for include guards.
2017-07-20 09:35:41 +02:00
Armin Novak
9ab04711fa
Fixed shadow server color encoding.
2016-10-06 13:43:12 +02: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
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
176ad52bd5
server/shadow: Export API to set built-in subsystem modules for freerdp-shadow-subsystem
2016-02-28 13:51:19 +08: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
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
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
Martin Haimberger
52405a3e79
Remove WIN32ERROR type
...
All return values are UINT now.
2015-08-27 05:38:20 -07: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
6ab0187d84
Merge remote-tracking branch 'upstream/master' into mh-channel
...
Conflicts:
channels/audin/client/oss/audin_oss.c
channels/drive/client/drive_main.c
channels/printer/client/printer_cups.c
channels/printer/client/printer_main.c
channels/rail/client/rail_main.c
channels/rdpgfx/client/rdpgfx_main.c
channels/rdpsnd/client/oss/rdpsnd_oss.c
channels/remdesk/client/remdesk_main.c
channels/remdesk/server/remdesk_main.c
channels/tsmf/client/tsmf_media.c
2015-07-15 01:57:07 -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
zihao.jiang
491978b0e3
server/shadow: Enhancement regarding the screen and resolution - add resize support and fix subRect feature
...
Detail fixes:
1. Add resize support in shadow framework layer
2. Enhance X11 implementation to detect desktop resolution change
3. Fix the subRect feature.
It seems not completely finished and it looks incompatible in different source code.
Fix it to be consistent in all source code as following:
a. The subRect is only awared in framework layer, subsystem implementation should not be aware of it. It only take effect at shadow_client and corresponding shadow_input.
b. The screen and surface should only represent a monitor screen. They don't need to consider subRect feature.
4. A lobby should be alternative image shown to client when the client is not 'mayView'.
We don't need to have seperate lobby for each client, move it into server structure as 'another surface'
5. Fix display handle leak in enum monitor of X11
6. Suppress BadMatch Error while capturing the image
2015-07-01 23:57:20 +08:00
zihao.jiang
f7a1b467cc
server/shadow: Remove comments in define.
2015-07-01 22:28:51 +08:00
zihao.jiang
7a59f09ecf
server/shadow: Fix compile error on win32.
2015-07-01 01:36:23 +08:00
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