diff options
author | Giovanni Panozzo <giovanni@panozzo.it> | 2015-07-11 18:21:36 +0300 |
---|---|---|
committer | Giovanni Panozzo <giovanni@panozzo.it> | 2015-07-11 18:21:36 +0300 |
commit | bb009e4f1a3a047e2642b59bbcc3882d93b60fd5 (patch) | |
tree | 05c07b8295712cdaa9c863abc13948a82e510ea0 | |
parent | 69e2aedfbb94e52a2b1b87fe1d5d8e276c423fff (diff) |
Check libfreerdp version at RDP plugin init
-rw-r--r-- | remmina-plugins/rdp/rdp_plugin.c | 15 |
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"); |