Joan Torres
2079455eec
[proxy,modules] allow compiling with old c++ compiler
...
For dyn-channel-dump.
On C++17 there's the filesystem standard library.
Newer c++ compilers use it with <filesystem>.
However, older c++ compilers use it with <experimental/filesystem>.
2023-12-18 14:11:37 +01:00
Armin Novak
f791cf6308
[proxy,modules] explicitly build shared libraries
...
The proxy modules must always be shared libraries. To have the proper
system extension, use keyword SHARED instead of MOUDLE
2023-12-14 14:05:39 +01:00
akallabeth
1f236ade7a
[server] make settings opaque
2023-11-24 14:54:56 +01:00
Armin Novak
e0e72f9c28
[cmake] use CMAKE_MSVC_RUNTIME_LIBRARY
...
* Increase required CMake version to 3.15 (windows only)
* Use
https://cmake.org/cmake/help/latest/prop_tgt/MSVC_RUNTIME_LIBRARY.html#prop_tgt:MSVC_RUNTIME_LIBRARY
to select windows runtime
2023-11-16 10:40:04 +01:00
akallabeth
7a71441476
[warnings] fix integer multiplications
...
Ensure the integer width for size arguments is 64bit in a
multiplication. Leading 64bit constant 1ull expands width, a trailing
one is ignored.
2023-08-22 11:55:00 +02:00
akallabeth
41bd8bd3fb
[various] fix integer conversions
2023-08-04 15:07:56 +02:00
Armin Novak
3df928a8d2
[client,sdl] fixed member initialization order and casts
2023-07-28 13:42:12 +02:00
Armin Novak
e61880d077
[standard] replace __FUNCTION__ with __func__
2023-07-27 20:02:43 +02:00
akallabeth
764936fe64
[proxy,modules] fix c++ 11 compatibility
2023-07-05 08:46:00 +02:00
akallabeth
c7f7f38367
[ci] deactivate proxy modules on windows
...
current builder is too old for c++11
2023-07-05 08:46:00 +02:00
akallabeth
fc1238a8da
[proxy,module] fix missing library linking
2023-07-05 08:46:00 +02:00
Armin Novak
1dfe7878f6
[proxy,module] always check path exists for dyn-channel-dump
2023-06-29 11:05:37 +02:00
Armin Novak
ceb346241b
[proxy,modules] add dump session handling
...
Use a new subdirectory for each session opened on the proxy
2023-06-29 11:05:37 +02:00
Armin Novak
ed93474a07
[proxy,modules] dyn-channel-dump one packet per file
2023-06-29 11:05:37 +02:00
Armin Novak
0876fb555d
[proxy,modules] dyn-channel-dump check config for NULL
2023-06-29 11:05:37 +02:00
Armin Novak
a85aee580f
[proxy,modules] add channel dump plugin
2023-06-27 17:36:57 +02:00
Armin Novak
98b7c88df7
[proxy,modules] fix bitmap filter drdynvc write
2023-06-08 08:13:16 +02:00
Armin Novak
f0e9797b4c
[build] require CMake >= 3.13
...
required for target_link_options
2023-02-27 11:18:02 +01:00
akallabeth
ab2de5d60c
[proxy,filter] fixed uninitialized value in bitmap-filter
2023-02-12 20:17:11 +01:00
akallabeth
17895714c2
[proxy,modules] fix missing link dependency
...
bitmap-filter requires freerdp functions to be linked
2023-01-27 16:01:33 +01:00
Armin Novak
4043658d04
[proxy,modules] add persist-bitmap-filter plugin
...
This plugin allows the proxy to filter persistent bitmap
capabilities and [MS-RDPEGFX] cache import offer
2023-01-26 09:30:17 +01:00
akallabeth
353d796476
[proxy,modules] update demo plugin
2023-01-26 09:30:17 +01:00
Armin Novak
641022b795
[logging] remove __FUNCTION__ from actual message
...
prefer the log formatter to provide that information.
2023-01-25 16:26:39 +01:00
Armin Novak
6a0df205b0
[proxy] add mouse ex and unicode event filters
2022-11-06 19:12:27 +01:00
Martin Fleisz
1ec228a177
proxy: Use closesocket instead of close
2022-07-21 15:59:43 +02:00
Martin Fleisz
33f76d6012
proxy: Add missing build dependency
2022-07-21 15:59:43 +02:00
akallabeth
bc8b4ade1c
reformatted
2022-06-23 08:48:39 +02:00
akallabeth
90ce22283d
Replaced direct settings access with getter/setter
2022-06-23 07:45:55 +02:00
akallabeth
1aacf504a1
Increase C standard to C11
2022-06-03 08:51:40 +02:00
akallabeth
a0ca2b4a6e
Add LTO settings
2022-06-03 08:51:40 +02:00
Armin Novak
3bb36f4caa
Fixed clang-scanbuild warnings
2022-02-22 16:15:05 +01:00
Armin Novak
f1adfb0e5c
Added client redirect to proxy demo module
2022-01-11 12:34:43 +01:00
Armin Novak
f7c7211aad
Fixed compilation warnings
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
Armin Novak
8ef57bf296
Replaced CMAKE_[SOURCE|BINARY]_DIR with PROJECT_[SOURCE|BINARY]_DIR
...
Thanks @Pollux42 for the hint in #7096
2021-06-22 08:54:18 +02:00
Armin Novak
1fd72ded43
Fixed compilation warnings
2021-06-16 14:26:06 +02:00
akallabeth
e2fd9db0b5
Added const to function arguments
2021-02-17 11:29:56 +01:00
Kobi Mizrachi
67cfcb0af6
server: proxy: implement external routing
2020-09-18 09:51:12 +02:00
Armin Novak
57de0aebb5
Refactored socket warning fixes to be more readable.
2020-08-10 16:39:19 +02:00
Armin Novak
57b405ca26
Fixed compilation warnings.
2020-08-10 12:14:11 +02:00
Kobi Mizrachi
6e1581443b
server: proxy: rename SessionCapture.Enabled -> GFXSettings.DecodeGFX
2020-06-22 12:37:53 +02:00
Kobi Mizrachi
0bf225ec60
server: proxy: capture: send sid in SessionInfo
2020-06-22 12:37:53 +02:00
Kubistika
0cf764f170
server: proxy: cap plugin: fix var and func declaration
2020-06-05 09:22:26 +02:00
Kobi Mizrachi
19809bf338
server: proxy: implement session capture plugin
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
Armin Novak
a6d0b67ca6
Set C++ standard for proxy demo target
2020-03-09 09:03:19 +01:00
Kobi Mizrachi
079871ac65
server: proxy: support static vc passthrough
2020-02-26 11:47:01 +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