server: proxy: rewrite modules API
authorKobi Mizrachi <kmizrachi18@gmail.com>
Tue, 31 Dec 2019 09:16:12 +0000 (11:16 +0200)
committerakallabeth <akallabeth@users.noreply.github.com>
Tue, 14 Jan 2020 06:58:47 +0000 (07:58 +0100)
commitb2fad50cd31c34b8f585b078f46eb1e1386a8bd1
treeb7db28b22cd4475617cfbb4669c9825901fc0d21
parent154366434340ecfb2ab65573c8f47c9d05a2ceab
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.
17 files changed:
CMakeLists.txt
include/freerdp/build-config.h.in
server/proxy/config.ini
server/proxy/freerdp_proxy.c
server/proxy/modules/demo/CMakeLists.txt
server/proxy/modules/demo/demo.c [deleted file]
server/proxy/modules/demo/demo.cpp [new file with mode: 0644]
server/proxy/modules/modules_api.h
server/proxy/pf_channels.c
server/proxy/pf_client.c
server/proxy/pf_config.c
server/proxy/pf_context.c
server/proxy/pf_context.h
server/proxy/pf_input.c
server/proxy/pf_modules.c
server/proxy/pf_modules.h
server/proxy/pf_server.c