Armin Novak
6e1a396aa4
rdpNineGridCache now opaque
2019-11-14 15:16:36 +01:00
Armin Novak
68ed1276c2
MPPC_CONTEXT now opaque
2019-11-14 15:16:36 +01:00
Armin Novak
e83f65b062
NCRUSH_CONTEXT now opaque
2019-11-14 15:16:36 +01:00
Armin Novak
f0353de828
XCRUSH_CONTEXT now opaque
2019-11-14 15:16:36 +01:00
Armin Novak
267bc31248
rdpOffscreenCache now opaque
2019-11-14 15:16:36 +01:00
Armin Novak
028f523ea0
rdpBrushCache now opaque
2019-11-14 15:16:36 +01:00
Armin Novak
6afa413669
Modified primitives function pointer to take const pointer to const data
2019-11-14 10:46:24 +01:00
Armin Novak
da87247d61
Added KeyboardCodePage option
...
Thanks to @byteboon for the hint.
2019-11-07 19:57:07 +01:00
Armin Novak
639174e7d3
Added configurable TcpKeepAliveDelay setting.
2019-11-07 16:07:18 +01:00
Armin Novak
7f21f4ef3d
Added additional tcp keep alive settings.
2019-11-07 12:45:05 +01:00
Armin Novak
7db4f69cb6
Added TcpKeepalive setting, use settings getter const arguments.
2019-11-07 12:39:22 +01:00
Armin Novak
72ca88f49c
Reformatted to new style
2019-11-07 10:53:54 +01:00
Armin Novak
27df243a33
Fixed int/size_t use for channel add functions.
2019-10-29 12:58:06 +01:00
kubistika
bf2e1a33d0
channels: rdpgfx: export API to create rdpgfx client
2019-10-24 12:19:31 +02:00
David Fort
bd5a88e95a
rdp: count in/out bytes and packets
2019-10-23 09:16:35 +02: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
Martin Fleisz
ade6b1007b
Merge pull request #5644 from akallabeth/nsc_cleanup
...
Cleaned up NSC API
2019-10-07 09:01:26 +02:00
Armin Novak
e09f739b90
Cleaned up NSC API
2019-10-04 10:33:41 +02:00
Armin Novak
8d088387da
Added function to get an error category for better error handling.
2019-10-03 11:19:03 +02:00
Armin Novak
1d4cdd2924
Added missing error codes.
2019-10-02 16:00:37 +02:00
Martin Fleisz
583045e2e5
rail: Update to latest spec version 28.0
2019-10-02 14:51:45 +02:00
Armin Novak
04a7c068d8
Added option to parse RDP files relaxed.
2019-09-24 16:11:43 +02:00
Armin Novak
88c654ee1d
Modified printer backend to allow dynamic backends.
2019-09-06 09:28:29 +02:00
Martin Fleisz
a5f4783711
Merge pull request #5561 from akallabeth/winmm_play_fix
...
Winmm play fix
2019-09-02 15:23:33 +02:00
Armin Novak
d99486096b
Added deprecation macro.
2019-09-02 15:13:09 +02:00
Armin Novak
f93d625cde
Use GetTickCount64 instead of GetTickCountPrecise.
2019-09-02 15:46:36 +02:00
Martin Fleisz
473806a0b1
Merge pull request #5547 from akallabeth/color_convert_fix
...
Fix #5543 : 16 bit color to 32bit color conversion.
2019-09-02 14:34:59 +02:00
kubistika
faa833f97a
rdpsnd: client: add rdpContext getter
2019-08-29 14:39:17 +02:00
Armin Novak
7604f788b3
Fix #5543 : 16 bit color to 32bit color conversion.
...
When converting 16 bit color (5 or 6 bit per color) to 32bit
(8 bit per color) add a value dependent correction factor so that
value 0 -> 0 and 31 -> 255.
2019-08-26 10:25:10 +02:00
David Fort
a8fac70432
Merge pull request #5508 from akallabeth/french_kbd_fix
...
Fixed #5496 : Canadian keyboard mapping issue reported by @renaudn1981
2019-08-19 23:38:25 +02: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
Armin Novak
e3f3343323
Fixed #5496 : Canadian keyboard mapping issue reported by @renaudn1981
2019-08-01 11:09:57 +02:00
kubistika
13fb3ffc39
libfreerdp: core: fix const correctness of freerdp_settings_clone
2019-07-17 16:20:42 +02:00
Armin Novak
1916da35ee
Added freerdp_settings_copy
2019-07-16 13:47:35 +02:00
Armin Novak
1deb78f211
Implemented rdp file parser functions with a callback for custom settings.
2019-07-15 12:01:30 +02:00
Armin Novak
3b38479ec5
Added PromptForCredentials setting.
2019-07-15 12:01:30 +02:00
Martin Fleisz
445764100b
Merge pull request #5396 from widgetii/master
...
Artur Zaprzala's rdp2tcp channel driver
2019-07-09 16:17:29 +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
bf97d3e041
rdpgfx/client: Expose QoeFrameAck
2019-06-06 07:53:34 +03:00
kubistika
99b10aa98d
rdpUpdate: add autoCalculateBitmapData flag
2019-06-04 17:33:18 +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
David Fort
789ed72021
Merge pull request #5403 from akallabeth/keyboard_event_flags
...
Fixed fastpath/slowpatth pause event.
2019-05-23 12:05:58 +02:00
David Fort
1cb8ed96e2
Merge pull request #5404 from m4ntis/feat/proxy-errors
...
Proxy: Redirect errors back to client
2019-05-23 09:43:47 +02:00
Armin Novak
42ba19dd98
Added rail workdir parameter
2019-05-22 16:37:47 +02:00
kubistika
ef3a3ae9e6
Export Error Info PDU.
2019-05-19 14:42:16 +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
d03d8f1a2d
Fixed fastpath/slowpatth pause event.
2019-05-16 15:21:12 +02:00
Dmitry Ilyin
eee7d4b783
proper code format
2019-05-15 20:12:33 +03:00
Armin Novak
8666d7e59b
Fixed mapping of new client sysparam values.
2019-05-15 15:25:04 +02:00
Dmitry Ilyin
2cfb2839f4
Artur Zaprzala's rdp2tcp channel driver
2019-05-14 21:04:39 +03:00
Martin Fleisz
b8d931241e
Merge pull request #5314 from akallabeth/setting_getter_setter_generator
...
Added python generator for freerdp_[g|s]et_param*
2019-05-09 14:23:31 +02:00
Martin Fleisz
ff036e0198
Merge pull request #5386 from akallabeth/rails_spec_update
...
Rails spec update
2019-05-09 12:49:55 +02:00
Armin Novak
a2834ae233
Fixed rails set_caretwidth
2019-05-09 12:28:27 +02:00
Armin Novak
2cc714a57d
Updated RAILS implementation
...
* Implement new messages and callbacks
* Announce most recent channel features
* Added settings to configure flags to announce
2019-05-08 17:25:15 +02:00
akallabeth
9011ef1b75
Merge pull request #5387 from mfleisz/image_from_icon
...
core: Move image conversion of icon data into the library
2019-05-08 17:19:27 +02:00
Martin Fleisz
30c3b86655
core: Move image conversion for icon data into the library
2019-05-08 17:06:17 +02:00
Armin Novak
93bf375686
Refactored settings getter/setter to stay compatible.
2019-05-08 14:35:25 +02:00
Armin Novak
6ac91924d5
Fixed use of settings getter/setter
2019-05-08 14:17:23 +02:00
Armin Novak
abc93f924c
Added python generator for freerdp_[g|s]et_param*
...
The settings getters and setters are now automatically generated.
Added a test case to check if all available options can be retrieved.
2019-05-08 14:17:23 +02:00
Martin Fleisz
e4a9172e13
Merge pull request #5383 from akallabeth/gfx_spec_update
...
Updated GFX to 10.6 spec
2019-05-08 13:42:50 +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
3d1cec894c
Fixed alignment requirements for surface sizes.
2019-05-08 10:36:00 +02:00
Martin Fleisz
1392b578c1
Merge pull request #5339 from akallabeth/update_paint_lock
...
Unified update->BeginPaint and update->EndPaint
2019-05-07 15:49:58 +02:00
Armin Novak
3b7e46fb0e
Updated GFX to 10.6 spec
2019-05-07 12:10:13 +02:00
Martin Fleisz
49805aae89
Merge pull request #5381 from akallabeth/swscale
...
Added image scaling api for software drawing.
2019-05-07 11:07:50 +02:00
Armin Novak
6a8755a763
Added image scaling api for software drawing.
...
For future GFX channel functions an image scaling function is required.
This moves the implementation from wayland client to core library
and adds support for the much faster SWScale library.
2019-05-07 08:56:29 +02:00
akallabeth
95b8b43d4d
Merge pull request #5376 from kubistika/bugfix/rdpgfx-server-v10.6-PDUs
...
rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec
2019-05-06 15:32:32 +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
Mati Shabtay
eee234c239
rdpgfx/client: Add callbacks for manual caps sending and frame acking
2019-05-05 15:56:35 +03:00
kubistika
e9faaedc85
rdpgfx: Fix GFX v10.6 PDUs parsing and naming according to the spec
2019-05-05 12:34:57 +03:00
Martin Fleisz
25fc56a625
Merge pull request #5260 from akallabeth/rail_spec_update
...
Rail spec update
2019-04-29 11:27:26 +02:00
Armin Novak
5e42c8943d
Fixed typo in RAIL_ZORDER_SYNC
2019-04-26 13:14:30 +02:00
Armin Novak
2a26aa0d87
Unified update->BeginPaint and update->EndPaint
...
Since these functions were called from 2 different threads
(main thread or dynamic channel) depending on fastpath or
gfx channel use lock between these.
If not locked the invalid region may be accessed from both
threads and lead to crashes as experienced with nightly df280a7ff
2019-04-11 15:33:23 +02:00
David Fort
7ae72ee512
Merge pull request #5240 from akallabeth/sign_compare_fixes_v2
...
Sign compare fixes v2
2019-04-05 14:13:03 +02:00
Mati Shabtay
6e8c02c9ee
Added optional PreFrameAck callback to RdpgfxClientContext ( #5303 )
...
* RdpgfxClientContext: Add PreFrameAck callback
* client/rdpgfx_main.c: Call PreFrameAck callback before acking frame
* client/rdpgfx_main.c: Fix windows_msbuild_vs2010 CI build
* client/rdpgfx_main.c: Fix error logs log level
2019-04-05 13:37:51 +02:00
Armin Novak
52b03cd408
Addin function pointers now expect const strings
2019-04-05 09:13:24 +02:00
Armin Novak
67be5258ad
Exposing NLA functions to impersonate and revert context.
2019-03-08 10:10:43 +01: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
Armin Novak
69f4c4b4af
Fixed version magic mismatch with [MS-RDPBCGR]
2019-02-27 16:30:55 +01:00
Armin Novak
0560ba0910
Fixed mixing of remote application mode requested and feature mask.
2019-02-20 08:45:36 +01:00
Armin Novak
aacf5bddc4
Updated rail channel, supporting all new messages.
2019-02-19 15:04:11 +01:00
Armin Novak
6a1ff5c485
Fixed compiler warnings #5210
2019-01-29 16:22:46 +01:00
Armin Novak
9d680904cc
Fixed compiler warnings #5210
2019-01-29 16:14:55 +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
David Fort
53c74beadc
rdp: add a callback for ServerStatusInfo
2019-01-29 10:33:06 +01:00
David Fort
05d9d89796
Merge pull request #5149 from akallabeth/cert_deny
...
New option to disable user certificate dialog
2019-01-25 16:59:33 +01:00
MartinHaimberger
0f68ed390c
Merge pull request #5150 from akallabeth/gw_consent_callback
...
Fix #1195 : Implement callback for Gateway Messages
2019-01-25 12:33:18 +01:00
Armin Novak
728cdfd689
Fixed warnings found by compiler and static analysis.
2019-01-24 11:53:52 +01:00
Armin Novak
65812bdbc0
Clipboard data pointer arguments are now const.
2019-01-23 16:55:13 +01:00
David Fort
f4b7a27c2b
license: implement server-side management
...
Add server-side management of the licensing workflow. The default
behaviour is to accept the client, but if a server wants to implement
full licensing support as in MS-RDPELE it is possible by defining a callback.
2019-01-21 09:57:15 +01:00
Armin Novak
b60045af27
New option to disable user certificate dialog
...
The new option +cert-deny aborts a connection automatically if
the certificate can not be validated by OpenSSL or via known hosts.
2018-12-14 10:17: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
8ddabd2654
Fix #1195 : Implement callback for Gateway Messages
2018-12-11 15:24:24 +01:00
Armin Novak
ac702e073d
Updated settings.h
2018-12-07 15:22:28 +01:00
Armin Novak
56156d217e
Floatbar self contained.
2018-12-07 15:22:28 +01:00