summaryrefslogtreecommitdiffstats
path: root/debian/patches/MR2581.patch
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--debian/patches/MR2581.patch190
1 files changed, 190 insertions, 0 deletions
diff --git a/debian/patches/MR2581.patch b/debian/patches/MR2581.patch
new file mode 100644
index 0000000..e405463
--- /dev/null
+++ b/debian/patches/MR2581.patch
@@ -0,0 +1,190 @@
+From 2a66973e8c53bceda1517bc347c92b1a773ada36 Mon Sep 17 00:00:00 2001
+From: myheroyuki <myheroyuki@outlook.com>
+Date: Tue, 30 Apr 2024 23:00:22 +0900
+Subject: [PATCH 1/3] [REM-3104] Add global RDP options to set FreeRDP auth
+ filter
+
+---
+ plugins/rdp/rdp_plugin.c | 7 +++++++
+ plugins/rdp/rdp_settings.c | 32 ++++++++++++++++++++++++++++++++
+ 2 files changed, 39 insertions(+)
+
+diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
+index e46cacc98..2b44c0280 100644
+--- a/plugins/rdp/rdp_plugin.c
++++ b/plugins/rdp/rdp_plugin.c
+@@ -2669,6 +2669,7 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+ TRACE_CALL(__func__);
+ freerdp *instance;
+ rfContext *rfi;
++ gchar* auth_list;
+
+ instance = freerdp_new();
+ instance->PreConnect = remmina_rdp_pre_connect;
+@@ -2709,6 +2710,12 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+
+ freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
+
++ auth_list = remmina_plugin_service->pref_get_value("rdp_auth_filter");
++ if (auth_list == NULL){
++ auth_list = "!kerberos";
++ }
++ freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
++
+ remmina_rdp_event_init(gp);
+ }
+
+diff --git a/plugins/rdp/rdp_settings.c b/plugins/rdp/rdp_settings.c
+index 7a3d4aa41..d49270dfc 100644
+--- a/plugins/rdp/rdp_settings.c
++++ b/plugins/rdp/rdp_settings.c
+@@ -103,6 +103,7 @@ typedef struct _RemminaPluginRdpsetGrid {
+ GtkWidget * disable_smooth_scrolling_check;
+ GtkWidget * reconnect_attempts;
+ GtkWidget * kbd_remap;
++ GtkWidget * auth_filter;
+
+ /* FreeRDP /scale-desktop: Scaling of desktop app */
+ GtkWidget * desktop_scale_factor_spin;
+@@ -162,6 +163,9 @@ static void remmina_rdp_settings_grid_destroy(GtkWidget *widget, gpointer data)
+ remmina_plugin_service->pref_set_value("rdp_reconnect_attempts",
+ gtk_entry_get_text(GTK_ENTRY(grid->reconnect_attempts)));
+
++ remmina_plugin_service->pref_set_value("rdp_auth_filter",
++ gtk_entry_get_text(GTK_ENTRY(grid->auth_filter)));
++
+ remmina_plugin_service->pref_set_value("rdp_kbd_remap",
+ gtk_entry_get_text(GTK_ENTRY(grid->kbd_remap)));
+
+@@ -711,6 +715,34 @@ static void remmina_rdp_settings_grid_init(RemminaPluginRdpsetGrid *grid)
+ g_free(s);
+ grid->reconnect_attempts = widget;
+
++
++ widget = gtk_label_new(_("Auth settings"));
++ gtk_widget_show(widget);
++ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
++ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
++ gtk_widget_set_margin_end(GTK_WIDGET(widget), 6);
++ gtk_widget_set_margin_start(GTK_WIDGET(widget), 18);
++ gtk_grid_attach(GTK_GRID(grid), widget, 0, 14, 1, 1);
++ widget = gtk_label_new(_("Auth string"));
++ gtk_widget_show(widget);
++ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
++ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
++ gtk_widget_set_margin_start(GTK_WIDGET(widget), 6);
++ gtk_grid_attach(GTK_GRID(grid), widget, 1, 14, 1, 1);
++ widget = gtk_entry_new();
++ gtk_widget_show(widget);
++ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_END);
++ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
++ gtk_grid_attach(GTK_GRID(grid), widget, 2, 14, 1, 1);
++ gtk_entry_set_input_purpose(GTK_ENTRY(widget), GTK_INPUT_PURPOSE_NUMBER);
++ gtk_entry_set_input_hints(GTK_ENTRY(widget), GTK_INPUT_HINT_NONE);
++ gtk_widget_set_tooltip_text(widget, _("Authentication package filter(comma-separated list, use '!' to exclude)"));
++ s = remmina_plugin_service->pref_get_value("rdp_auth_filter");
++ if (s && s[0])
++ gtk_entry_set_text(GTK_ENTRY(widget), s);
++ g_free(s);
++ grid->auth_filter = widget;
++
+ }
+
+ GtkWidget *remmina_rdp_settings_new(RemminaPrefPlugin* plugin)
+--
+GitLab
+
+
+From 169558ef260b620bda05ac824f4bca3696263d8b Mon Sep 17 00:00:00 2001
+From: myheroyuki <myheroyuki@outlook.com>
+Date: Tue, 30 Apr 2024 23:29:45 +0900
+Subject: [PATCH 2/3] [REM-3104] make conditional on freerdp3
+
+---
+ plugins/rdp/rdp_plugin.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
+index 2b44c0280..d5c50cf23 100644
+--- a/plugins/rdp/rdp_plugin.c
++++ b/plugins/rdp/rdp_plugin.c
+@@ -2709,13 +2709,13 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+ rfi->last_y = 0;
+
+ freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
+-
++#if FREERDP_VERSION_MAJOR >= 3
+ auth_list = remmina_plugin_service->pref_get_value("rdp_auth_filter");
+ if (auth_list == NULL){
+ auth_list = "!kerberos";
+ }
+ freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
+-
++#endif
+ remmina_rdp_event_init(gp);
+ }
+
+--
+GitLab
+
+
+From 76d0d922f0a7a87f4db9f800e9b6b0d10ca33b91 Mon Sep 17 00:00:00 2001
+From: myheroyuki <myheroyuki@outlook.com>
+Date: Wed, 1 May 2024 22:03:22 +0900
+Subject: [PATCH 3/3] [REM-3104] Added fixes courtesy of @giox069
+
+---
+ plugins/rdp/rdp_plugin.c | 8 ++++----
+ plugins/rdp/rdp_settings.c | 9 ++++++++-
+ 2 files changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/plugins/rdp/rdp_plugin.c b/plugins/rdp/rdp_plugin.c
+index d5c50cf23..9b2cb85d8 100644
+--- a/plugins/rdp/rdp_plugin.c
++++ b/plugins/rdp/rdp_plugin.c
+@@ -2710,11 +2710,11 @@ static void remmina_rdp_init(RemminaProtocolWidget *gp)
+
+ freerdp_register_addin_provider(freerdp_channels_load_static_addin_entry, 0);
+ #if FREERDP_VERSION_MAJOR >= 3
+- auth_list = remmina_plugin_service->pref_get_value("rdp_auth_filter");
+- if (auth_list == NULL){
+- auth_list = "!kerberos";
++ if (auth_list != NULL && auth_list[0] != 0){
++ freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
+ }
+- freerdp_settings_set_string(rfi->clientContext.context.settings, FreeRDP_AuthenticationPackageList, auth_list);
++ g_free(auth_list);
++
+ #endif
+ remmina_rdp_event_init(gp);
+ }
+diff --git a/plugins/rdp/rdp_settings.c b/plugins/rdp/rdp_settings.c
+index d49270dfc..44c7a4309 100644
+--- a/plugins/rdp/rdp_settings.c
++++ b/plugins/rdp/rdp_settings.c
+@@ -66,6 +66,13 @@ void remmina_rdp_settings_init(void)
+
+ g_free(value);
+
++ value = remmina_plugin_service->pref_get_value("rdp_auth_filter");
++ if (value == NULL) {
++ remmina_plugin_service->pref_set_value("rdp_auth_filter", "!kerberos");
++ } else {
++ g_free(value);
++ }
++
+ remmina_rdp_settings_kbd_init();
+ }
+
+@@ -723,7 +730,7 @@ static void remmina_rdp_settings_grid_init(RemminaPluginRdpsetGrid *grid)
+ gtk_widget_set_margin_end(GTK_WIDGET(widget), 6);
+ gtk_widget_set_margin_start(GTK_WIDGET(widget), 18);
+ gtk_grid_attach(GTK_GRID(grid), widget, 0, 14, 1, 1);
+- widget = gtk_label_new(_("Auth string"));
++ widget = gtk_label_new(_("FreeRDP auth-pkg-list"));
+ gtk_widget_show(widget);
+ gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
+ gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
+--
+GitLab
+