Commit Graph

1272 Commits

Author SHA1 Message Date
David Fort 0cc3af2282
Merge pull request #5796 from akallabeth/rdp_10_7_large_pointers
Added RDP 10.7 large pointer support
2020-01-14 10:17:13 +01:00
Kobi Mizrachi e3728c1822 server: proxy: do not compile modules by default 2020-01-14 07:58:47 +01:00
Kobi Mizrachi 706e13c312 server: proxy: shutdown gracefully 2020-01-14 07:58:47 +01:00
Kobi Mizrachi b2fad50cd3 server: proxy: rewrite modules API
* Add support for C++ plugins.
* Seperate between a "module" and a "plugin": a module is a shared
library that exposes a function called "proxy_module_entry_point". This
function gets a parameter to `proxyPluginsManager*`, which can be used to
register plugins.
* Refine the API of the modules infrastructure:
 * use proxyData* instead of rdpContext* when firing a hook or calling a filter.
 * use clearer names.
* Instead of having to specify a path for each module to be loaded in
the configuration, the proxy now loads modules from specificed
directory, using the CMAKE variable PROXY_PLUGINDIR.
* Add an option to specify required plugins: plugins that the proxy
wouldn't start without having them fully loaded.
2020-01-14 07:58:47 +01: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
Kobi Mizrachi 47ca28b5c3 server: proxy: fix leak in pf_context_copy_settings 2020-01-13 13:41:44 +01:00
Kobi Mizrachi ca2e578acc server: proxy: add a unique id to each session and improve logs 2020-01-08 11:59:34 +01:00
Kobi Mizrachi ab3a72f825 server: proxy: move peer initialization to seperate function 2020-01-08 11:59:34 +01:00
Kobi Mizrachi 77ca7ac2ad server: proxy: make fallback to tls configurable 2020-01-08 07:58:03 +01:00
David Fort 31a4e2ad8b
Merge pull request #5745 from akallabeth/urbdrc_rewrite
Urbdrc rewrite
2020-01-06 09:23:45 +01:00
Armin Novak 182d0ce548 Added RDP 10.7 large pointer support
* Implements [MS-RDPBCGR] version 51 large pointer support.
* Logs unknown large pointer capability flags as warning.

Signed-off-by: Armin Novak <armin.novak@thincast.com>
2019-12-19 09:53:40 +01:00
Kobi Mizrachi 2e1d719ab1 server: proxy: proxy keyboard leds and imei 2019-12-17 15:33:11 +01:00
Bernhard Miklautz 814771eed5
Merge pull request #5778 from akallabeth/shadow_warnings
Added warning to win shadow server
2019-12-16 09:57:16 +01:00
Mati Shabtay 97606edeee proxy: Implement RAIL support in proxy 2019-12-12 11:10:44 +01:00
Armin Novak e6ff9e3efa Added warning to win shadow server
Currently the windows shadow server does not support authentication.
Log that fact so everyone using it is notified on each login.
2019-12-12 09:20:30 +01:00
Armin Novak 7c243da6e1 Remove symbols exported by accident. 2019-12-02 10:57:31 +01:00
Armin Novak 15ad496bba Cleaned up server sample audin channel use. 2019-11-22 10:56:21 +01:00
kubistika 09648834a0 server: proxy: fix sync issue in gfx opening 2019-11-12 12:45:01 +01:00
Armin Novak 72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Martin Fleisz bc39b32d20
Merge pull request #5685 from akallabeth/multi_instance_arg_parse
COMMAND_LINE_ARGUMENT structs contain parser results, use one per instance
2019-11-06 09:09:22 +01:00
Martin Fleisz 5b6663fe3a
Merge pull request #5689 from akallabeth/cleanups
Cleanups
2019-11-05 15:28:02 +01:00
akallabeth acad36465d Fix #5693: Add missing link to gfx client channel library 2019-11-02 09:57:03 +01:00
kubistika 59ba044ccd server: proxy: client: always do NLA fallback 2019-10-31 11:26:13 +02:00
Armin Novak f01e042211 Code cleanups (strlen, casts, size_t, ...) 2019-10-29 11:58:43 +01:00
kubistika d5245e1263 server: proxy: export config utils functions to be used by modules 2019-10-28 13:31:10 +01:00
kubistika 160446e093 server: proxy: stop loading session captures config if it is disabled 2019-10-28 13:31:10 +01:00
Armin Novak 10ce60ade1 Use COMMAND_LINE_ARGUMENT_A copy also in shadow server code. 2019-10-28 13:30:05 +01:00
Armin Novak 0c87eaee4d COMMAND_LINE_ARGUMENT structs contain parser results, use one per instance
Remove the old global structs as the parser modifies them. When using
multiple instances in the same process space this could break parsing.
2019-10-28 13:30:05 +01:00
kubistika ab2b288f87 server: proxy: refactor config loader 2019-10-24 12:57:48 +02:00
kubistika d92485899d server: proxy: capture: refactor path creation 2019-10-24 12:19:31 +02:00
kubistika c723980a2f server: proxy: add python script to create a video from session frames 2019-10-24 12:19:31 +02:00
kubistika 16d4d46da6 server: proxy: implement session capture feature 2019-10-24 12:19:31 +02:00
kubistika 5e09ac9a7a server: proxy: client use PIXEL_FORMAT_BGRA32 (easier to write frames to bitmap) 2019-10-24 12:19:31 +02:00
kubistika 40463bb2f2 server: proxy: client: terminate the connection if pre connect hook fails 2019-10-22 10:16:17 +02:00
Martin Fleisz 5ead938271
Merge pull request #5657 from akallabeth/warning_fixes2
Warning fixes2
2019-10-17 17:00:57 +02:00
Martin Fleisz 105527ed37
Merge pull request #5648 from akallabeth/h264_dyn
H264 runtime detection
2019-10-17 12:54:43 +02:00
Armin Novak 59b4988f56 Fixed compilation warnings. 2019-10-16 14:54:05 +02:00
Martin Fleisz 799685cb92
Merge pull request #5646 from akallabeth/realloc_fixes
Fixed #5645: realloc return handling
2019-10-07 10:43:11 +02:00
Armin Novak 27c6ad6ebf Let shadow server detect H264 support at runtime 2019-10-07 09:47:03 +02:00
Armin Novak ea492ed6b0 Fixed windows shadow server startup issue. 2019-10-04 17:13:00 +02:00
Armin Novak 19e4eb5d09 Added /buildconfig command line for shadow. 2019-10-04 16:19:23 +02:00
Armin Novak e09f739b90 Cleaned up NSC API 2019-10-04 10:33:41 +02:00
kubistika f4d169fb75 server: proxy: register input and update callbacks in post connect
To avoid a race in which the server received an input event before
proxy's client is initialized, we now only register input and update
callbacks after client is initialized and safe to use.
2019-09-30 10:08:28 +02:00
kubistika 4d175f6008 server: proxy: refactor pf_context_create_client_context 2019-09-30 10:08:28 +02:00
kubistika b6730ea31e server: proxy: support auto reconnect 2019-09-30 10:08:28 +02:00
kubistika 32913850d5 server: proxy: separate client and server security settings 2019-09-30 10:07:43 +02:00
Bernhard Miklautz 02a65840e8
Merge pull request #5578 from kubistika/proxy/refactor
sever: proxy: code refactor
2019-09-19 10:55:08 +02:00
kubistika 53a92421b1 server: proxy: config: fix mem leak 2019-09-11 14:29:04 +03:00
Armin Novak 8c17d2fa41 Add MOUSEEVENTF_HWHEEL define if not found in windows.h 2019-09-10 09:35:32 +02:00
Armin Novak b1d42b17f6 Fix windows shadow server issues reported in #5577 2019-09-10 09:18:55 +02:00
kubistika 867843eef7 server: proxy: client: only try NLA if credentials available 2019-09-10 10:11:00 +03:00
kubistika a87065ed67 server: proxy: get rid of unnecessary casts 2019-09-09 17:42:18 +03:00
kubistika 0b340b784c server: proxy: drop local unix socket listen option 2019-09-09 17:42:18 +03:00
kubistika 8a75e8f54e server: proxy: refactor 2019-09-09 17:42:18 +03:00
kubistika f5d32f4617 server: proxy: refactor usage of pf_context_copy_settings 2019-09-09 17:35:07 +03:00
kubistika 7ed39ce724 server: proxy: make sure module's pre connect only called once 2019-09-08 15:08:15 +03:00
kubistika 8cf8da3e41 server: proxy: config: remove duplicate declaration of config macros 2019-09-08 15:06:22 +03:00
Martin Fleisz c90b7a9714
Merge pull request #5563 from akallabeth/scanbuild_fixes
Scanbuild fixes
2019-09-03 10:57:24 +02:00
kubistika 62b32fbab9 server: proxy: only wait for server dynvc when needed 2019-09-03 09:09:27 +02:00
Armin Novak 4ff24d074b Fixed memory leak in error branch 2019-09-03 08:56:36 +02:00
kubistika e135106731 server: proxy: rdpsnd support 2019-08-29 14:39:17 +02:00
kubistika dc11bcc9f0 server: proxy: fix nla fallback (introuduced in #5522) 2019-08-28 17:03:40 +02:00
kubistika 067b7dfd1c server: proxy: disp: fix copyright 2019-08-23 11:58:08 +02:00
kubistika 04e1708df1 server: proxy: use new hooks api 2019-08-23 11:58:08 +02:00
kubistika 32fff644da server: proxy: improve modules api 2019-08-23 11:58:08 +02:00
kubistika d1c5862f54 server: proxy: sync cliprdr opening 2019-08-19 17:03:13 +02:00
kubistika 0ad87d98ca server: proxy: load proxy clipboard config 2019-08-19 09:30:40 +02:00
kubistika 7dc70b86d6 server: proxy: cliprdr support 2019-08-19 09:30:40 +02:00
kubistika ef306fbff6 server: proxy: pf_context.c: Fix nla crash
Because the proxy uses freerdp_settings_copy to do re-negotiation after
first connection to remote server, all redirection information
(RedirectionPassword, RedirectionDomain, etc.) pointers were duplicated
(to both client and server settings structs). Then, at disconnection, a
double-free occured.
2019-08-14 19:39:34 +02:00
Martin Fleisz e16d559f70
Merge pull request #5517 from akallabeth/winmm_latency
Added proper latency estimation for winmm sound backend.
2019-08-14 12:48:21 +02:00
kubistika ddb811cbc8 server: proxy: client: before loading client addins, wait for serve's dynvc to be in ready state 2019-08-13 16:28:05 +02:00
kubistika 1da91444c0 server: proxy: client: set glyph support level to NONE 2019-08-13 16:28:05 +02:00
Armin Novak ddb209445a Fix server compile against _WIN32_WINNT=0x601 2019-08-13 10:55:12 +02:00
kubistika cb833ed45c server: proxy: print configuration on startup 2019-08-05 11:01:31 +03:00
kubistika 595f23b8fe server: proxy: channels: only open allowed channels 2019-08-05 11:01:31 +03:00
kubistika 0b6864a273 server: proxy: filters: demo: log instead of dropping the connection 2019-08-05 11:01:31 +03:00
kubistika c5e6e0ba31 server: proxy: filters: make sure filter_init is exported in filters compilation 2019-08-05 11:01:31 +03:00
kubistika 31cd7b844f server: proxy: refactor configuration loader 2019-08-05 10:54:07 +03:00
kubistika 3051a4b4b4 server: proxy: ensure client termination 2019-08-02 10:17:45 +02:00
kubistika 038c933f98 server: proxy: sync server and client channels
when disconnections/redirections occured, sometimes server/client
channels were not synced, meaning that for example the gfx server
received a message, then tried to use gfx client that was already freed.
2019-08-02 10:17:45 +02:00
kubistika a9758a8c0c server: proxy: fix rdpgfx close race 2019-07-30 09:56:06 +02:00
kubistika 908d6ebe1e server: proxy: Add logs, call client->Close to send disconnection ultimatum 2019-07-16 16:20:06 +03:00
kubistika d0065ee9a1 server: proxy: remove unnecessary function handle_client_disconnection 2019-07-16 16:20:06 +03:00
kubistika b12ee3288c server: proxy: adjust log levels 2019-07-16 16:20:06 +03:00
kubistika 95851b25e7 server: proxy: set nla fallback flag flag only if NLASecurity is enabled 2019-07-16 16:20:06 +03:00
kubistika e9e1c5d748 server: proxy: naming refactor 2019-07-16 16:20:06 +03:00
kubistika 70ca028453 server: proxy: remove unnecessary files 2019-07-16 16:12:12 +03:00
kubistika 1b4371ed22 server: proxy: use freerdp_settings_copy 2019-07-16 13:47:35 +02:00
kubistika ab00d90f03 server: proxy: implement NLA fallback 2019-07-15 11:52:30 +02:00
kubistika 02a65b8867 Declare support for multimon in proxy server.
It was broken in the DISP PR.
2019-07-08 11:09:29 +03:00
kubistika 8954e1646b server/proxy: Add check after calling p_client_context_create 2019-06-26 14:25:07 +02:00
kubistika 8fbee28dd7 server/proxy: Logging and comments improvements 2019-06-26 14:25:07 +02:00
kubistika fb3f7f3908 server/proxy: pf_update: Update ps->settings in DesktopResize 2019-06-26 14:25:07 +02:00
kubistika 74a66f6651 server/proxy: set ps->thread to NULL on disconnect
freerdp_abort_connect calls the proxy's client stop function,
that closes the thread handle. if it already closed by the server,
a segfault will occur because CloseHandle will try to access free()'ed
memory.
2019-06-26 14:25:07 +02:00
kubistika 8a115f2020 server/proxy: Refactor pdata_set_connection_info
Connection info must be set after the proxy's client connection
established, because if the client didn't provide credentials in .rdp
file, we don't know its username yet.
2019-06-26 14:25:07 +02:00
kubistika 98973dd0da server/proxy: pf_filters: Update filter_free to accept NULL 2019-06-26 14:25:07 +02:00
kubistika f795fc2670 server/proxy: Fix race-condition
The client's `ClientStop` callback wasn't set, therefore calling
freerdp_client_stop wasn't really blocking until it has stopped, and a
race condition occured. Fixed by registring to `ClientStop` callback and
waiting for the client thread to finish.
2019-06-26 14:25:07 +02:00
kubistika 255fab201a server/proxy: Fix rdpgfx and events leak 2019-06-26 14:25:07 +02:00
kubistika c0cece1064 server/proxy: Fix double-call to disconnect 2019-06-26 14:25:07 +02:00
David Fort 2da425aa03
Merge pull request #5424 from kubistika/rdpgfx
rdpgfx: CacheImportOffer implementation
2019-06-13 11:35:15 +02:00
David Fort 1f128b6142
Merge pull request #5423 from kubistika/feat/bitmap-auto-flag-calculate
rdpUpdate: add autoBitmapDataCalculate
2019-06-12 21:15:59 +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 896ba119d1 server/proxy: Proxy CacheImportOffer & QoeFrameAck 2019-06-06 07:53:34 +03:00
kubistika c8b38fb66e server/proxy: Fix bitmap update crash when target is win7 2019-06-04 17:33:48 +03:00
David Fort 5d1fc68629
Merge pull request #5405 from m4ntis/proxy/filters-api
Proxy: Filters API
2019-06-03 15:45:24 +02:00
kubistika 6224109a1d server/proxy: Add multimon support 2019-06-03 14:33:15 +03:00
kubistika cd135ceacb libfreerdp/core: Export monitor layout PDU
* Move update notification related functions to new display.c: Not
related to `rdp.c`.
    * Rename `rdp_write_monitor_layout_pdu` to `display_write_monitor_layout_pdu`.
* Add internal `display_convert_rdp_monitor_to_monitor_def` instead of
doing the conversion inside `display_write_monitor_layout_pdu`.
2019-06-03 14:30:17 +03:00
kubistika 340d877cce server/proxy: Proxy pointer updates
* Moved update callbacks of client to pf_update.h
2019-05-29 10:06:18 +03:00
kubistika 72952c679f fix vs2010 errors 2019-05-28 09:30:39 +03:00
kubistika 52e4baa949 server/proxy: Code refactor 2019-05-28 09:30:38 +03:00
kubistika aa262d341d server/proxy: Use winpr library in proxy/filters 2019-05-26 15:32:49 +03:00
kubistika 7477ac19a7 server/proxy: Fix free invalid memory when pf_server_parse_target_from_routing_token fails 2019-05-26 10:48:10 +03:00
kubistika 76012fb5d6 server/proxy: Fix mem leak in pf_server_parse_target_from_routing_token 2019-05-26 10:48:10 +03:00
kubistika 20e503421e server/proxy: Remove unnecessary wrap for connection info 2019-05-26 10:48:10 +03:00
kubistika 2126024321 server/proxy: Add docs in filters_api.h 2019-05-26 10:48:10 +03:00
kubistika 8e642c9d00 server/proxy: Add return statement in demo_filter.c 2019-05-26 10:48:10 +03:00
kubistika 98f698cf2b Add README for filters API 2019-05-26 10:48:10 +03:00
kubistika 7237624b37 bugfix: segfault when calling an event which is not implemented by filter 2019-05-26 10:48:10 +03:00
kubistika 96616bb18c server/proxy: Use new parse_string_array_from_str implementation (using ArrayList) 2019-05-26 10:48:10 +03:00
kubistika 3a750810f7 server/proxy: Refactor pf_server.c 2019-05-26 10:48:10 +03:00
kubistika c4d72c6ad2 server/proxy: Refactor pf_server_parse_target_from_routing_token 2019-05-26 10:48:10 +03:00
kubistika a39658fc2a server/proxy: Add external filters support 2019-05-26 10:48:10 +03:00
kubistika 6bb5a1d579 server/proxy: Proxy errors back to client 2019-05-19 14:42:27 +03: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 93bf375686 Refactored settings getter/setter to stay compatible. 2019-05-08 14:35:25 +02:00
Armin Novak d7ca2db62e Fixed doulbe semicolon in C files. 2019-05-08 12:58:01 +02:00
Armin Novak 7b2608a938 Added gfx capability filter option.
With this new option it is possible to selectively disable certain
GFX capability versions. This way buggy behaviour can be addressed
at runtime.
2019-05-08 11:43:22 +02:00
Armin Novak 3b7e46fb0e Updated GFX to 10.6 spec 2019-05-07 12:10:13 +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 27d2a9e040 Fixed unused argument warnings. 2019-04-05 09:14:35 +02:00
Armin Novak e76b5d442b Silenced unused parameter warnings, added log messages. 2019-04-05 09:14:35 +02:00
Armin Novak 8b5ef6f41f Silenced unused parameter warnings, added log messages. 2019-04-05 09:14:35 +02:00
Armin Novak f4de82c242 Fixed sign-compare warnings 2019-04-05 09:13:24 +02:00
Armin Novak e8c8e7b6d0 Updated EGFX support to 10.6 2019-02-27 16:36:15 +01:00
Armin Novak 53b018bfef Fix callback function return types. 2018-12-04 09:34:22 +01:00
Armin Novak edd6d49f23 Fix #4909: Do not initialize HOME environment variable as it is no longer used.
GetKnownPath does not require this environment variable to be
available for windows builds.
2018-11-29 13:44:21 +01:00
Armin Novak c8908c8be6 Updated windows shadow server assistance usage. 2018-11-22 11:11:31 +01:00
Armin Novak 26b83ea74e Reenabled and fixed windows server compile. 2018-11-15 09:01:53 +01:00
Armin Novak 02f68c35b9 Fixed -Wextra sign warnings 2018-10-24 13:25:31 +02:00
Armin Novak 88d310ff2c Fixed compiler warnings (casts, ...) 2018-10-18 09:09:30 +02:00
Armin Novak e319ec5bd3 Fixed missing return in server_rdpsnd_get_formats 2018-10-17 16:17:41 +02:00
Armin Novak 7e1589a3e4 Added default rdpsnd formats. 2018-09-26 12:49:52 +02: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 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 12f1cf9e35 Fixed default format. 2018-09-26 12:49:09 +02:00
Armin Novak 0560832b5f Using common audio formats for input. 2018-09-26 12:49:09 +02:00
Armin Novak db2a0dbdc0 Unified format selection. 2018-09-26 12:49:09 +02:00
Armin Novak 5e14bb1b11 Mac fixes 2018-09-26 12:49:09 +02:00
Armin Novak e61219eb58 Fixed mac callbacks. 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 18f97d03e7 Cleaned up defaults. 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 fad20be6e6 Fixed missing includes. 2018-08-27 14:34:42 +02:00
Armin Novak 62c1696d4c Removed use of unchecked sprintf 2018-08-27 14:34:42 +02:00
Armin Novak c3a26b0d6a Removed +async-transport options
The async transport option is broken by design.
If used the main loop is called from the transport thread and the
main thread of the application.
Unless the transport layer is refactored to just work on queues
(input and output) this option will never work, therefore remove it.
2018-08-22 13:56:37 +02:00
Armin Novak cc44119dcf Fixed missing array initializer values 2018-08-01 12:56:18 +02:00
Armin Novak 31f933bc11 Fixed mac server compile issue. 2018-08-01 10:04:00 +02:00
Martin Fleisz a0fddd1747
Merge pull request #4530 from akallabeth/order_refactor
[leak fixes] Refactored order updates
2018-07-04 14:21:36 +02:00
Armin Novak 73b8963d14 Added automatic format support filter. 2018-07-02 16:33:50 +02:00
Armin Novak 30283e18e5 Fixed warning. 2018-07-02 16:20:39 +02:00
Pascal J. Bourguignon 15f2bafeab Cleaned up const char** -> char** for argv, since we definitely do modify the argv!
(we overwrite the password and pin arguments).
This implies changes in the argument parsing tests that now must pass a mutable argv
(copied from the statically declared test argvs).
Some other const inconsistency have been dealt with too.
2018-06-06 16:43:09 +02:00
David Fort 456b0e8934
Merge pull request #4453 from akallabeth/sound_channel_refactor
Sound channel refactoring
2018-05-03 11:56:58 +02:00
Kyle Evans a7c0632bf2 Use SetFreeRDPCMakeInstallDir where CMake modules are installed 2018-05-02 10:36:52 -05:00
Armin Novak 4e66972616 Fixed remaining global order buffers. 2018-05-02 08:54:21 +02:00
Armin Novak 3f712cab70 Fixed formatting of changed files. 2018-04-05 13:14:16 +02:00
Armin Novak f89c1857b9 Rewrite of sound and microphone channels
The sound and microphone redirection channels (and in part TSMF)
did not properly decouple encoding/decoding from the backends used
to play/record sound.
Encapsulating encoding/decoding in rewritten freerdp_dsp_* functions
with variable backends, simplifying alsa/oss/pulse/... audio backends.
2018-04-05 13:14:16 +02:00
Armin Novak d249335708 Removed winpr_exit
As the cleanup functions are called by atexit a dedicated
cleanup call is no longer required.
2018-04-03 12:56:33 +02:00
Armin Novak 1c72127c6b Do not clear invalid region if no client connected. 2018-03-07 15:37:20 +01:00
Armin Novak 2ad5b3510d Fixed windows shadow server update copy. 2018-03-07 15:37:20 +01:00
Armin Novak 44eebbb6e0 Fixed compiler warnings. 2018-03-07 14:47:06 +01:00
Armin Novak 2517755d25 Fixed thread function return and parameters. 2018-03-07 14:36:55 +01:00
Armin Novak 1f7d33a2f2 Fixed read/write of surface bits command.
The optional field exBitmapDataHeader of TS_ BITMAP_DATA_EX was ignored.
Read and expose the data (currently unused)
2018-03-01 11:38:59 +01:00
Martin Fleisz 5d1ff02d02
Merge pull request #4414 from akallabeth/pthread_cleanup_fix
Pthread cleanup fix
2018-02-15 11:02:37 +01:00
Armin Novak 990b8c23a9 Fixed PubSub function pointer casts. 2018-02-14 11:00:52 +01:00
Armin Novak 2d58e96dcc Exit main thread with winpr_exit to trigger resource cleanup.
When using pthread_once with destructors they are only called,
if each thread (including the main thread) is exited with pthread_exit.
Introducing winpr_exit as a wrapper for that purpose.
2018-02-12 10:33:02 +01:00
Armin Novak bb061cedb1 Increased target bitrate for shadow server.
The target bitrate (1Mbit) was much too small for proper shadowing
on devices with higher resolutions. Increased to 10Mbit to improve
image quality.
2018-02-02 13:59:08 +01:00
Armin Novak 5f439f06b1 Fixed AVC444v2 detection. 2018-02-02 10:39:33 +01:00
Armin Novak 3b70d1178b Added AVC444 chroma support to shadow server. 2018-02-02 10:39:33 +01:00
Armin Novak 7305828122 Fix #4239: Various memory leaks
* Fixed all tests, now can be run with -DWITH_ADDRESS_SANITIZER=ON compiled.
* Enabled address sanitizer for nightly builds.
2017-12-12 11:40:48 +01:00
David Fort 3b670703fb
Merge pull request #4277 from akallabeth/mac_server
Mac fixes
2017-12-12 10:40:14 +01:00
Armin Novak 877f161465 Reset errno in X11 monitor enumeration
XOpenDisplay may succeed but set errno,
reset at the end of the function.
2017-11-29 14:17:27 +01:00
Armin Novak 33271415fe Fixed /monitors argument checks. 2017-11-29 14:13:50 +01:00
Armin Novak 57958cb178 Fixed #3810: Renamed color functions 2017-11-24 13:21:43 +01:00
Armin Novak 8eaba5b002 Fixed mac server compilation. 2017-11-24 13:21:43 +01:00
Brent Collins e21f9e359b Initialize SSL directly in the sample server, instead of relying on the SSL initialize logic
in the tls code as it was removed in a previous patch due to its redundancy.
2017-11-17 12:43:07 +01:00
Armin Novak 4eb5b8e349 Replaced atoi 2017-11-15 15:52:16 +01:00
Sri Ramanujam 66c925c9e4 Fix libavcodec encoding errors and set tunables. 2017-11-09 11:39:54 -05:00
David Fort 504b771686
Merge pull request #4053 from akallabeth/ffmpeg_encoder
Implemented FFMPEG based encoder.
2017-11-06 11:25:48 +01:00
Mike Gabriel dc075fb133 Fix warning in man pages
"warning: can't find macro file `www.tmac))'""`"
2017-08-03 08:41:50 +02:00
Armin Novak 8a0cec946b Added AVC420 in AVC444 shadow encoding 2017-08-02 09:42:04 +02:00
Armin Novak 8b9e3fa51e Fixed use of reserved keywords for include guards. 2017-07-20 09:35:41 +02:00
Armin Novak 0490aeb018 Fixed clang malloc integer overflow warnings. 2017-07-20 09:29:48 +02:00
Armin Novak 1d724e1343 Add 10.3 capability check. 2017-07-17 11:37:53 +02:00
Armin Novak 5764d5a78a Disable GFX H264 if no backend compiled in. 2017-07-17 09:25:21 +02:00
Norbert Federa 99a58ab20d Fixed sample server's wrong rfx pixel format 2017-07-10 11:31:42 +02:00
David Fort 93e5b0647a Merge pull request #4029 from realjiangms/fix_shadow_fragment_size
server/shadow: Fix incorrect bitmap fragment update.
2017-07-07 15:07:13 +02:00
zihao.jiang 2a65e70d08 server/shadow: Fix incorrect bitmap fragment update.
Legacy bitmap update might fail with 'fast path update size (xxxxx) exceeds the client's maximum request size (xxxxx)'
Original code might update last fragment with exceeded fragment size incorrectly. Fix the logic to prevent it.
2017-07-04 23:48:07 +08:00
Armin Novak 6142da9cb8 Fixed shadow server mouse wheel mapping on MacOS 2017-06-13 14:18:11 +02:00
Bernhard Miklautz 4d8d15ebf4 Merge pull request #3931 from hypherion2/master
Remove unused buffer in Mac shadow subsystem
2017-05-09 09:42:20 +02:00
akallabeth 9645123a53 Merge pull request #3930 from realjiangms/fix_shadow_thread_leak
server/shadow: close the thread handle so that it is detached because…
2017-05-03 15:39:40 +02:00
Ilya Shipitsin d9a778ca50 resolve an issue identified by cppcheck:
[server/shadow/X11/x11_shadow.c:386] -> [server/shadow/X11/x11_shadow.c:390]: (warning) Either the condition '!subsystem' is redundant or there is possible null pointer dereference: subsystem.
[server/shadow/X11/x11_shadow.c:387] -> [server/shadow/X11/x11_shadow.c:390]: (warning) Either the condition '!subsystem' is redundant or there is possible null pointer dereference: subsystem.
2017-05-03 01:32:44 +05:00
Ilya Shipitsin c78a2f0333 resolve issues identified by cppcheck
[channels/drive/client/drive_file.c:125]: (error) Memory leak: path_slash
[server/Windows/wf_dxgi.c:195]: (error) Invalid number of character '(' when these macros are defined: 'WITH_DXGI_1_2'.
2017-05-01 16:40:02 +05:00
Adrian A 7d2848ff74 Remove unused buffer which leaks
The buffer is not used in the code.
2017-04-28 15:24:59 -07:00
zihao.jiang 74db87a473 server/shadow: close the thread handle so that it is detached because no one is going to join it. Therefore the thread would release its resources automatically when exit 2017-04-11 22:12:01 +08:00
Armin Novak b2c29158be Scanbuild warning, argument checks and leak fixes.
* Added Stream_GetRemainingCapacity to check remaining stream size
  before writes.
* Fixed shadow server memory leak.
* Fixed lots of scanbuild warnings
* Added missing argument checks in many functions
* Added missing static function declarations
2017-03-02 18:13:43 +01:00
akallabeth 9fc9188770 Merge pull request #3794 from Abhineet-Ayan-Verma/patch-3
Added TAG macro definition
2017-02-21 12:44:33 +01:00
akallabeth 09e3d29f2b Merge pull request #3792 from Abhineet-Ayan-Verma/patch-1
Added TAG macro definition
2017-02-21 10:08:55 +01:00
Abhineet-Ayan-Verma be1f22fad6 Added TAG macro definition
Fixed TAG undeclared identifier error
2017-02-21 10:16:17 +05:30
Abhineet-Ayan-Verma f11ddb6ba6 Added TAG macro definition
Fixed TAG undeclared identifier error
2017-02-21 10:13:53 +05:30
Abhineet-Ayan-Verma 69fb77d5e9 Added TAG macro definition
Fixed TAG undeclared identifier error
2017-02-21 10:12:10 +05:30
akallabeth b35224bcab Merge pull request #3788 from Abhineet-Ayan-Verma/patch-5
Added TAG definition
2017-02-20 15:58:29 +01:00
Abhineet-Ayan-Verma 8c1c4d253e Added TAG definition 2017-02-20 18:33:52 +05:30
Abhineet-Ayan-Verma a66b0b3246 Update wf_update.c
+ TAG definition.
+ Required arguments to rfx_context_reset.
+ Replaced RDP_PIXEL_FORMAT_BGRA32 with PIXEL_FORMAT_BGRA32
2017-02-20 18:20:23 +05:30
akallabeth 3115c1e28d Merge pull request #3783 from chipitsine/master
fix several defects found by cppcheck
2017-02-20 13:07:12 +01:00
Martin Fleisz c325ec5325 Merge pull request #3780 from akallabeth/win_compile_fix
Win compile fix
2017-02-17 13:22:51 +01:00
Ilya Shipitsin 0673bddf63 resolve trivial issues found by cppcheck
[server/shadow/X11/x11_shadow.c:511]: (error) Uninitialized variable: x
[server/shadow/X11/x11_shadow.c:512]: (error) Uninitialized variable: y
2017-02-17 17:21:18 +05:00
Armin Novak f8d22c00d6 Fixed compiler warnings and uninitialized data. 2017-02-17 11:17:45 +01:00
Ilya Shipitsin 251727586d resolve a typo found by cppcheck
[server/Windows/wf_mirage.c:319]: (error) Invalid number of character '(' when these macros are defined: ''.
[server/Windows/wf_mirage.c:319]: (error) Invalid number of character '(' when these macros are defined: 'DFMIRAGE_LEAN'.
[server/Windows/wf_mirage.c:319]: (error) Invalid number of character '(' when these macros are defined: '_WIN64'.
2017-02-17 14:54:31 +05:00
Abhineet-Ayan-Verma 999cc22cdd Fixed undefined behavior in wf_peer_main_loop function
Undefined behavior on "wfPeerContext *context", as it is accessed before being initialized or assigned. Fixed.
2017-02-15 15:56:44 +05:30
Martin Fleisz c2eacd3b31 Build: Use correct pdb names when installing with symbols 2017-01-31 13:32:51 +01:00
Ilya Shipitsin 12f5368819 make cppcheck even more happier:
[channels/tsmf/client/gstreamer/tsmf_X11.c:317] -> [channels/tsmf/client/gstreamer/tsmf_X11.c:322]: (warning) Either the condition '!decoder' is redundant or there is possible null pointer dereference: decoder.
[channels/tsmf/client/gstreamer/tsmf_X11.c:470] -> [channels/tsmf/client/gstreamer/tsmf_X11.c:475]: (warning) Either the condition '!decoder' is redundant or there is possible null pointer dereference: decoder.
[channels/tsmf/client/gstreamer/tsmf_X11.c:472] -> [channels/tsmf/client/gstreamer/tsmf_X11.c:475]: (warning) Either the condition '!decoder' is redundant or there is possible null pointer dereference: decoder.
[channels/tsmf/client/tsmf_media.c:179] -> [channels/tsmf/client/tsmf_media.c:181]: (warning) Either the condition '!stream' is redundant or there is possible null pointer dereference: stream.
[client/Windows/wf_cliprdr.c:2219] -> [client/Windows/wf_cliprdr.c:2222]: (warning) Either the condition '!formatDataResponse' is redundant or there is possible null pointer dereference: formatDataResponse
[client/Windows/wf_cliprdr.c:2445] -> [client/Windows/wf_cliprdr.c:2448]: (warning) Either the condition '!fileContentsResponse' is redundant or there is possible null pointer dereference: fileContentsResponse.
[client/X11/xf_cliprdr.c:911] -> [client/X11/xf_cliprdr.c:913]: (warning) Either the condition '!clipboard' is redundant or there is possible null pointer dereference: clipboard.
[client/X11/xf_graphics.c:504] -> [client/X11/xf_graphics.c:506]: (warning) Either the condition '!xfc' is redundant or there is possible null pointer dereference: xfc.
[libfreerdp/core/transport.c:861] -> [libfreerdp/core/transport.c:863]: (warning) Either the condition '!transport' is redundant or there is possible null pointer dereference: transport.
[server/shadow/shadow_server.c:777] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:778] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:779] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:781] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:782] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:783] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:784] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:785] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:787] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
[server/shadow/shadow_server.c:789] -> [server/shadow/shadow_server.c:791]: (warning) Either the condition '!server' is redundant or there is possible null pointer dereference: server.
2017-01-26 14:44:19 +05:00
Ilya Shipitsin 102913e808 make cppcheck a bit happier:
[channels/printer/client/printer_cups.c:103]: (error) Resource leak: fp
[server/Mac/mf_event.c:195]: (error) Memory leak: event_queue
[server/shadow/shadow_capture.c:233]: (error) Memory leak: capture
[winpr/libwinpr/sspi/test/TestSchannel.c:440]: (error) Memory leak: lpTokenIn
[winpr/libwinpr/thread/argv.c:198]: (error) Memory leak: lpEscapedChars
[winpr/libwinpr/utils/sam.c:312]: (error) Memory leak: entry
2017-01-25 17:09:25 +05:00
Bernhard Miklautz f37e9a0adc Merge pull request #3664 from realjiangms/fix_gfx_ack
Server/shadow: Fix handling for gfx acknowledge according to spec
2017-01-23 13:49:25 +01:00
Bernhard Miklautz 2a6bac64ae Fix typos in man pages. 2017-01-17 13:25:47 +01:00
Bernhard Miklautz d817469b78 Install man pages
* man pages are only build/installed if WITH_MANPAGES is enabled
* create a new cmake function install_freerdp_man to unified install man
  pages
* install all man pages using the new function
* update the nightly packages accordingly
2017-01-16 11:34:32 +01:00
Bernhard Miklautz 38e0bce772 shadow-cli: add initial man page 2017-01-16 11:11:59 +01:00
Bernhard Miklautz d98f11705e shadow server: add more error messages 2017-01-16 11:11:59 +01:00
Bernhard Miklautz bbb6bf6b43 Include major version number in library names
Currently it is not possible to cleanly install multiple major version
of FreeRDP concurrently as some of the development libraries (.so files)
files can conflict.

This change renames all libraries to include the major version number in
the library name to fix this limitation.

The list of changed libraries:

libwinpr-tools.so -> libwinpr-tools2.so
libwinpr.so -> libwinpr2.so
libfreerdp.so -> libfreerdp2.so
libfreerdp-client.so -> libfreerdp-client2.so
libfreerdp-shadow.so -> libfreerdp-shadow2.so
libfreerdp-server.so ->  libfreerdp-server2.so
libfreerdp-shadow-subsystem.so -> libfreerdp-shadow-subsystem2.so
libuwac.so -> libuwac0.so

As the library names have changed, projects that use FreeRDP will need to
update their dependencies. -
If pkg-config or cmake find modules are used, reconfiguration might be
sufficient.

Fixes #3460
2017-01-16 11:11:58 +01:00
Norbert Federa f71b6b46e8 fix string format specifiers
- fixed invalid, missing or additional arguments
- removed all type casts from arguments
- added missing (void*) typecasts for %p arguments
- use inttypes defines where appropriate
2016-12-16 13:48:43 +01:00
zihao.jiang 25381a2984 Server/shadow: Fix handling for gfx acknowledge according to spec:
[MS-RDPEGFX]:
3.2.5.13  Processing an RDPGFX_FRAME_ACKNOWLEDGE_PDU message
If the queueDepth field is less than 0xFFFFFFFF, the server MUST expect that
RDPGFX_FRAME_ACKNOWLEDGE_PDU messages will continue to be sent by the client.
Furthermore, if the queueDepth field is in the range 0x00000001 to 0xFFFFFFFE the server SHOULD
use this value to determine how far the client is lagging in terms of graphics decoding and then
attempt to throttle the graphics frame rate accordingly.
If the queueDepth field is set to SUSPEND_FRAME_ACKNOWLEDGEMENT (0xFFFFFFFF), the server
MUST clear the Unacknowledged Frames (section 3.2.1.2) ADM element and MUST NOT expect any
further RDPGFX_FRAME_ACKNOWLEDGE_PDU messages from the client. In this mode, the server
MUST NOT wait or block on unacknowledged frames (as the
RDPGFX_FRAME_ACKNOWLEDGE_PDU message is not sent by the client) and MUST assume that
the client is able to decode graphics data at a rate faster than it is receiving frames.

On the other hand, RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU SHOULD only be used for informational and debugging
purposes and should not be taken into account.
2016-12-10 02:53:21 +08:00
Norbert Federa c6e6b44143 countless WLog/printf format specifier fixes 2016-11-25 17:06:25 +01: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 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 5b080359a9 sample-server: add a "local only" option to just listen on an UNIX socket
This makes things nicer for tests that don't need internet access.
2016-10-14 15:12:48 +02:00
Armin Novak 8ef1808191 Adjusted non X11 implementations. 2016-10-14 12:50:04 +02:00
Armin Novak 9c50e1a635 Replaced _VF formats with copy flags. 2016-10-14 10:36:52 +02:00
akallabeth 9adc13297b Merge pull request #3497 from realjiangms/fix_gfx_win10
server/shadow: Fix black screen with win10 mstsc
2016-10-14 10:12:27 +02:00
zihao.jiang 3fb92ae2ec server/shadow: Fix black screen with win10
Request full screen update on RDPGFX_CAPS_ADVERTISE_PDU. Win10 client seems to clean the screen after gfx channel opened. If there happens to be no screen update from server, we will get black screen in mstsc client.
2016-10-11 13:25:07 +08:00
Armin Novak cf2ec62d59 Reformatted file. 2016-10-10 12:10:29 +02:00
Armin Novak bc39f28a95 Fixed regression from rebase. 2016-10-10 12:07:27 +02:00
Armin Novak 649d270ccd Fixed GDI_RGN->null initialization. 2016-10-06 13:43:15 +02:00
Armin Novak 2db04736ac Fixed memory leak. 2016-10-06 13:43:15 +02:00
Armin Novak 9a1c60885c Unified RFX server color format. 2016-10-06 13:43:15 +02:00
Armin Novak 9ab04711fa Fixed shadow server color encoding. 2016-10-06 13:43:12 +02:00
Armin Novak f2bb83e28d Fixed rebase related issues. 2016-10-06 13:43:11 +02:00
Armin Novak 22ddec810b Moved pre and post channel hooks. 2016-10-06 13:43:10 +02:00
Armin Novak 44b8756617 Warning fixes. 2016-10-06 13:43:10 +02:00
Armin Novak 35bf9e6731 Fixed missing mac server symbols. 2016-10-06 13:43:10 +02:00
Armin Novak 0c551808a3 Fixed gdi_init for windows server. 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 016f3a408b xxx. 2016-10-06 13:42:59 +02:00
Armin Novak df35c135d1 Fixed color conversion, unified GFX and updated API. 2016-10-06 13:42:58 +02:00
zihao.jiang 2c00240a17 server/shadow: Fix regression with rdp8.0
Shadow server crash with rdp8.0 with gfx enabled.
Root Cause: rdp8.0 is not support in shadow gfx and rdpgfx_caps_advertise returns an error. However setChannelError crashs because context->errorDescription is NULL
1. Fix shadow gfx to handle rdp8.0
2. Initialize context->errorDescription for server side new-context
2016-08-29 02:50:09 +08:00
zihao.jiang 92ca9851d2 rdpgfx/server: Fix for windows10 clients
1. Fix order of gfx reset and new-surface. Windows10 client will show black screen with this issue(FreeRDP itself is dramatically immune to this issue)
2. Handle RDPGFX_QOE_FRAME_ACKNOWLEDGE_PDU for FPS control
2016-08-21 01:59:40 +08:00
zihao.jiang 5d4e9a2c87 rdpgfx/server: More minor fix 2016-08-20 01:36:37 +08:00
zihao.jiang a15b8fff66 rdpgfx/server: Minor fix: allow configurable codec parameter 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 14cb6d33c6 freerdp: make modifications to NLA server-side fixes according to PR comments 2016-07-22 09:06:07 -04: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
Bernhard Miklautz 9daf129c63 Merge pull request #3371 from realjiangms/fix_x11_shadow_race
Server/shadow: Protect X operations on shared subystem X11 display with X11 display lock
2016-05-30 19:25:20 +02:00
zihao.jiang 42279834bb Server/shadow: Protect X operations on shared subystem X11 display with X11 display lock 2016-05-26 00:20:37 +08:00
Bernhard Miklautz 17c125d986 Merge pull request #3369 from realjiangms/fix_mouseback_2796
Server/shadow: Fix issue 2796. Mouse cursor draw back issue
2016-05-25 17:25:07 +02:00
zihao.jiang 9f4465ebbc Server/shadow: Fix issue 2796. Mouse cursor draw back issue 2016-05-25 23:08:36 +08:00
akallabeth cf127ebfb9 Merge pull request #3357 from realjiangms/fix_rdpsnd_race
shadow/rdpsnd: Fix race condition in rdpsnd channel server.
2016-05-23 16:21:49 +02:00
zihao.jiang 444b678e71 shadow/rdpsnd: Fix race condition in rdpsnd channel server. The output buffer and format parameters are not protected. This cause some data inconsistence if rdpsnd has own thread 2016-05-22 22:13:32 +08:00
rinov c42edd9260 Update mf_mountain_lion.c
Remove duplicate return statement in mf_mlion_stop_getting_screen_updates()
This change is no impact anywhere.
2016-05-20 01:17:49 +09:00
Armin Novak eacf2b542e Fixed memory leaks. 2016-05-12 10:01:30 +02:00
Bernhard Miklautz 59fbfdb24b Add library libwinpr-tools
libwinpr-tools is a replacement for winpr-makecert-tool.a. Currently
it's basically the same as winpr-makecert-tool.a but in future
functionality that doesn't fit directly in winpr will be added here.
2016-05-03 14:42:08 +02:00
Bernhard Miklautz 783807229d build: add missing dependencies
Add all missing dependencies found with --no-undefined. Since
dependencies aren't exported anymore (if not required) it is no necessary
to explicitly list all required libraries.
2016-04-07 15:10:00 +02:00
Bernhard Miklautz 9e8c6c99b6 First shot on fixing over linking
If a target is linked against libraries with cmake
(target_link_libraries) and the libraries are not marked as PRIVATE
they are "exported" and in case a other target is linked against this
target it is also linked against *all* (not private) libraries.

Without declaring private libraries PRIVATE a lot of over linking
(linking against unneeded libraries) was done.
2016-03-29 18:14:34 +02:00
Armin Novak 36cbf1b583 Fixed error handling for channel load failures. 2016-03-14 13:13:43 +01:00
Martin Fleisz 66ae3f2c77 Merge pull request #3177 from akallabeth/codec_reset_fix
Fixed codec reset, now resetting resolution too.
2016-03-11 11:22:59 +01:00
Norbert Federa ef4b29e5b3 ConvertFromUnicode fixes and misc hardening
- Added missing ConvertFromUnicode checks
- If ConvertToUnicode allocates memory, guarantee the null termination
  similar to ConvertFromUnicode's implementation
- Fixed some TestUnicodeConversion.c CTest return values
- Added some CTests for ConvertFromUnicode and ConvertToUnicode
- Misc code and protocol hardening fixes in the surrounding code regions
  that have been touched
2016-03-03 16:56:19 +01:00
Jakub Adam 9f0b14f8bd shadow/subsystem: fix pkgconfig file
Add freerdp-shadow-subsystem to 'libs' in order to avoid undefined
reference to shadow_subsystem_set_entry_builtin at runtime.

Remove cyclic dependency on itself.
2016-03-02 14:58:12 +01:00
Armin Novak ce8f3f2539 Fixed context reset of sample server. 2016-03-02 14:46:33 +01:00
Armin Novak 09e957f717 Fixed broken check. 2016-03-02 14:46:33 +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 e02af8287e Merge pull request #3160 from akallabeth/stream_fixes
Stream fixes
2016-03-01 16:44:19 +01:00
Norbert Federa b4b8239bf6 Merge pull request #3176 from bmiklautz/shadow_subsystem
Export shadow subsystem
2016-02-29 17:39:18 +01:00
Bernhard Miklautz 25506348d0 Merge pull request #3168 from akallabeth/visibility_fixes
Fixed default visibility.
2016-02-29 16:59:58 +01:00
Bernhard Miklautz 1b926f8740 build: export freerdp-shadow
pkg-config and cmake find package
2016-02-29 16:22:24 +01:00
Bernhard Miklautz f15c050d1f shadow/subsystem: fix windows build
* add dependency to freerdp-client
* add version information to freerdp-shadow-cli
2016-02-29 16:02:13 +01:00
Armin Novak c182be093d Removed module.def from build config. 2016-02-29 15:24:07 +01:00
Armin Novak 68c402ac58 Removed windows module.def files.
All symbols exported from libraries are declared
using *_API defines.
2016-02-29 15:18:47 +01:00
Armin Novak b69047064a Replaced stream manipulation with EnsureCapacity. 2016-02-29 12:54:31 +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 11c442562a Fixed dupliace FREERDP_API declarations. 2016-02-27 11:36:34 +01:00
Armin Novak 1036f1e296 Fixed default visibility.
When nothing is declared, only export symbols defined
with WINPR_API or FREERDP_API defined.
Override this setting if BUILD_TESTING to allow tests
access to internal functions usually not exposed.
2016-02-26 19:44:14 +01:00
Armin Novak e79eee2bb1 Fixed Stream API misuse. 2016-02-25 20:01:12 +01:00