Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiovanni Panozzo <giovanni@panozzo.it>2015-07-11 18:21:36 +0300
committerGiovanni Panozzo <giovanni@panozzo.it>2015-07-11 18:21:36 +0300
commitbb009e4f1a3a047e2642b59bbcc3882d93b60fd5 (patch)
tree05c07b8295712cdaa9c863abc13948a82e510ea0
parent69e2aedfbb94e52a2b1b87fe1d5d8e276c423fff (diff)
Check libfreerdp version at RDP plugin init
-rw-r--r--remmina-plugins/rdp/rdp_plugin.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/remmina-plugins/rdp/rdp_plugin.c b/remmina-plugins/rdp/rdp_plugin.c
index 71add5cdc..9f9a2e7f2 100644
--- a/remmina-plugins/rdp/rdp_plugin.c
+++ b/remmina-plugins/rdp/rdp_plugin.c
@@ -1325,9 +1325,24 @@ static RemminaPrefPlugin remmina_rdps =
G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService* service)
{
+ int vermaj, vermin, verrev;
+
TRACE_CALL("remmina_plugin_entry");
remmina_plugin_service = service;
+ /* Check that we are linked to the correct version of libfreerdp */
+
+ freerdp_get_version(&vermaj, &vermin, &verrev);
+ if (vermaj < FREERDP_REQUIRED_MAJOR ||
+ (vermaj == FREERDP_REQUIRED_MAJOR && ( vermin < FREERDP_REQUIRED_MINOR ||
+ (vermin == FREERDP_REQUIRED_MINOR && verrev < FREERDP_REQUIRED_REVISION) ) ) ) {
+ g_printf("Unable to load RDP plugin due to bad freerdp library version. Required "
+ "libfreerdp version is at least %d.%d.%d but we found libfreerdp version %d.%d.%d\n",
+ FREERDP_REQUIRED_MAJOR, FREERDP_REQUIRED_MINOR, FREERDP_REQUIRED_REVISION,
+ vermaj, vermin, verrev );
+ return FALSE;
+ }
+
bindtextdomain(GETTEXT_PACKAGE, REMMINA_LOCALEDIR);
bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");