David Fort
a152dec687
proxy: correctly use the RemoteApp flag
...
The flag was forcing the remoteApp usage when set, while all the other equivalent
flags just enable the feature. This patch fixes that, so now setting RemoteApp = TRUE
just enables the front client to do remoteApps.
2022-04-12 08:05:28 +02:00
akallabeth
770bc14d18
Cleaned up rdpSettings use in server
2022-03-28 15:52:32 +02:00
akallabeth
14568872a9
Instance cleanup ( #7738 )
...
* Cleaned up freerdp::autodetect
* Deprecate freerdp::input
* Deprecated freerdp::update
* Deprecated freerdp::settings
* Deprecated freerdp::autodetect
* Removed rdpTransport::settings
* Deprecated freerdp_per::update|settings|autodetect
* Fixed mac client and server compilation
* Fixed windows compilation
* Added deprecation warnings
* Fixed initialization of structs.
* Fixed android build
* Fixed freerdp_client_context_new const correctness
* Fixed checks for android implementation
Replaced checks with assertions where appropriate
* Fixed checks for windows client
Replaced checks with assertions where appropriate
* Fixed proxy client pointer dereference
2022-03-23 13:18:35 +01:00
Armin Novak
4d03d7c0bf
Freerdp remove #ifdef HAVE_CONFIG_H
2022-03-03 11:26:48 +01:00
Armin Novak
b2ad47a809
Reorganized FreeRDP headers
2022-03-03 11:26:48 +01:00
akallabeth
64f47848c9
Proxy fixes ( #7686 )
...
* Fixed a memory leak in server side NLA auth
* Fixed #7675 : Pass channel packets directly
2022-03-02 09:13:41 +01:00
David Fort
46eb50df2c
proxy: improve channel treatment
...
This PR introduces per channel context so that we can speed up operations like
retrieving the channel name from its id, or knowing what shall be done for a
packet (no config ACL recomputation at each packet).
2022-02-04 08:44:22 +00:00
akallabeth
e6e6ed5dbd
Cleaned up PubSub
...
* Callback arguments now const
* Fixed missing includes
2022-01-19 09:24:57 +01:00
Armin Novak
4e6e5be654
Added proxy intercept channels
...
* New configuration to intercept certain channels
* Added rdpdr intercept implementation
2022-01-11 12:34:43 +01:00
Armin Novak
41d03143b8
Always call HOOK_TYPE_CLIENT_LOGIN_FAILURE if NLA failed
2021-11-03 11:12:00 +01:00
Armin Novak
149b9bf2cc
Fixed StreamStaticInit warnings.
2021-10-18 10:53:05 +02:00
Armin Novak
73fbbcf0fb
Fixed const warnings
2021-10-14 13:04:59 +02:00
akallabeth
03a9ca80c8
Refactor proxy ( #7312 )
...
* Added hidden transport dump and replay options
* Added settings to enable transport dump and replay
* Added check in freerdp_connect to skip authentication on
dump replay
* Fixed proxy issues
* Proper shutdown handling
* Uninitialized variables
* Skip proxy-client channels, initialize from peer channels and
config
* Filter static channels like dynamic ones
* Added proxy module filtering from config data (channels, input, ...)
* Removed oboslete proxy decoding related files
* Added defines for RDPECAM channel
* Added proxy config options:
* VideoRedirection
* CameraRedirection
* Fixed duplicate channel free
2021-09-23 14:52:03 +02:00
Armin Novak
fceb108fc5
Fixed comments and duplicate checks.
2021-09-20 10:59:59 +02:00
akallabeth
695e38398d
Refactored proxy
...
* Removed unnecessary global data lists
* Improved error handling
* Do not initialize channel code in passthrough mode
2021-09-20 10:59:59 +02:00
Armin Novak
3afd147bc0
Use wStream in pf_client_receive_channel_data_hook
2021-09-09 08:53:20 +02:00
Armin Novak
4463e5eda9
Added config dump function, improved resource cleanup
2021-09-09 08:53:20 +02:00
Armin Novak
4cc0fbca33
Proxy client cleanups
...
* Use proper maximum handle defines
* Gracefully handle out of memory instead of assert
2021-09-09 08:53:20 +02:00
Armin Novak
4e44003832
Expose dynamic channel PDU types
2021-09-09 08:53:20 +02:00
Armin Novak
5a2231172c
Updated copyright for proxy
2021-09-09 08:53:20 +02:00
Armin Novak
976c3c2ab9
Refactored proxy and proxy-modules:
...
* Split out proxy headers and moved to public API to allow external
modules to be built.
* Split proxy into proxy library and proxy binary. The library
can be used by other applications and provides a simple API
* Improved channel passthrough, now all channels including dynamic
channels work.
* Extended module API to hook more events, improved module samples
* Cleaned up proxy code, removed global static variables used,
added WINPR_ASSERT
2021-09-09 08:53:20 +02:00
akallabeth
c2f1562a4b
Removed freerdp_peer::input
2021-09-09 08:36:01 +02:00
Armin Novak
413dcd3c28
Fixed RDPSND_CHANNEL_NAME
...
RDPSND channel is special, as it has many names.
(e.g. static channel, dynamic channel and UDP one.
Use RDPSND_CHANNEL_NAME to identify the module name instad of
RDPSND_DVC_CHANNEL_NAME
2021-08-25 13:40:47 +02:00
Armin Novak
054f0ea260
Use defines instad of channel names
2021-08-25 10:54:24 +02:00
Armin Novak
5afa592244
Fixed cast-qual warnings
2021-08-24 11:10:51 +02:00
Armin Novak
880c603c26
Renamed HashTable_Add to HashTable_Insert
...
* Since the changes break HashTable_Add rename it so that it will
not fail silently
2021-06-16 11:46:42 +02:00
kubistika
5daba89e83
server: proxy: add more info on proxy logs
2020-09-21 14:16:31 +03:00
Kobi Mizrachi
67cfcb0af6
server: proxy: implement external routing
2020-09-18 09:51:12 +02:00
Kobi Mizrachi
b2d15eedc9
server: proxy: proxy rdp heartbeats
2020-07-07 09:57:53 +02:00
Kobi Mizrachi
2ae7c2a6d4
server: proxy: fix race issue
...
Proxy server might receive input updates while client side being
redirected (and reset), then a heap-after-free might occur. To solve
this, we register server input/update callbacks only after client is
fully activated.
2020-07-06 09:14:44 +02:00
Kobi Mizrachi
0bf225ec60
server: proxy: capture: send sid in SessionInfo
2020-06-22 12:37:53 +02:00
Kobi Mizrachi
44c50ff1d5
server: proxy: remove old session capture code
2020-06-05 09:22:26 +02:00
Kobi Mizrachi
7d48a587d2
server: proxy: prepare for exporting gfx capture to a module
2020-05-20 10:31:51 +03:00
Kobi Mizrachi
9de59051f6
server: proxy: refactor
2020-05-19 14:42:26 +03:00
Kobi Mizrachi
d28ad95fbe
server: proxy: use peer load balance info when host is fetched from config
2020-05-12 12:43:08 +02:00
Kobi Mizrachi
1484d0ac48
server: proxy: removed unnecessary cast after #5955
2020-03-12 08:36:05 +01:00
Armin Novak
3ba66db99d
Unify pReceiveChannelData and psPeerReceiveChannelData
...
Fix definitions of the two function pointers.
Use and definition did not match, fix that.
Will create warnings in external projects
2020-03-10 12:21:14 +01:00
Armin Novak
d5b5088eac
Fixed misinterpretation of SendChannelData
...
SendChannelData was defined with a return value of type int, but
used as BOOL everywhere. Fix the definition to match use.
2020-03-10 12:21:14 +01:00
Kobi Mizrachi
b574876986
server: proxy: client: change ClientFree->ContextFree
2020-02-26 11:47:01 +01:00
Kobi Mizrachi
079871ac65
server: proxy: support static vc passthrough
2020-02-26 11:47:01 +01:00
Kobi Mizrachi
4823f41274
server: proxy: improve logs
2020-02-10 09:37:54 +01:00
Kobi Mizrachi
c0cc676a4e
server: proxy: pf_client.c: remove unused includes
2020-01-21 12:08:39 +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
ca2e578acc
server: proxy: add a unique id to each session and improve logs
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
Armin Novak
72ca88f49c
Reformatted to new style
2019-11-07 10:53:54 +01:00
kubistika
59ba044ccd
server: proxy: client: always do NLA fallback
2019-10-31 11:26:13 +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