From 801b447b3cb7b3fd7366716d72b2a868886bd751 Mon Sep 17 00:00:00 2001 From: Antenore Gatta Date: Tue, 13 Jun 2023 13:42:07 +0000 Subject: Automatic doc build by remmina-ci --- public/exec__plugin_8c.html | 60 ++++++++++++++++++------- public/exec__plugin_8c.js | 1 + public/exec__plugin_8c_source.html | 22 ++++----- public/functions_p.html | 3 ++ public/functions_vars_p.html | 3 ++ public/globals_c.html | 3 ++ public/globals_func_c.html | 3 ++ public/globals_r.html | 12 ++--- public/navtreedata.js | 36 +++++++-------- public/navtreeindex0.js | 24 +++++----- public/navtreeindex1.js | 4 +- public/navtreeindex10.js | 4 +- public/navtreeindex11.js | 4 +- public/navtreeindex12.js | 8 ++-- public/navtreeindex13.js | 6 +-- public/navtreeindex14.js | 6 +-- public/navtreeindex15.js | 6 +-- public/navtreeindex16.js | 6 +-- public/navtreeindex17.js | 6 +-- public/navtreeindex18.js | 2 + public/navtreeindex2.js | 4 +- public/navtreeindex3.js | 4 +- public/navtreeindex4.js | 4 +- public/navtreeindex5.js | 4 +- public/navtreeindex6.js | 4 +- public/navtreeindex7.js | 4 +- public/navtreeindex8.js | 4 +- public/navtreeindex9.js | 4 +- public/python__wrapper__entry_8c_source.html | 2 +- public/python__wrapper__file_8c_source.html | 2 +- public/python__wrapper__pref_8c_source.html | 2 +- public/python__wrapper__protocol_8c_source.html | 2 +- public/python__wrapper__remmina_8c_source.html | 2 +- public/python__wrapper__secret_8c_source.html | 2 +- public/python__wrapper__tool_8c_source.html | 2 +- public/search/all_10.js | 1 + public/search/all_12.js | 4 +- public/search/all_14.js | 2 +- public/search/all_3.js | 1 + public/search/functions_3.js | 1 + public/search/variables_13.js | 2 +- public/search/variables_f.js | 1 + public/struct___remmina_plugin_exec_data.html | 18 ++++++++ public/struct___remmina_plugin_exec_data.js | 1 + 44 files changed, 183 insertions(+), 113 deletions(-) diff --git a/public/exec__plugin_8c.html b/public/exec__plugin_8c.html index 24262d69b..bd58a3fa3 100644 --- a/public/exec__plugin_8c.html +++ b/public/exec__plugin_8c.html @@ -108,6 +108,8 @@ Typedefs Functions static void cb_child_watch (GPid pid, gint status)   +static void cb_child_setup (gpointer data) +  static gboolean cb_out_watch (GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)   static gboolean cb_err_watch (GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp) @@ -146,6 +148,34 @@ Variables

Function Documentation

+ +

◆ cb_child_setup()

+ +
+
+ + + + + +
+ + + + + + + + +
static void cb_child_setup (gpointer data)
+
+static
+
+ +

Definition at line 70 of file exec_plugin.c.

+ +
+

◆ cb_child_watch()

@@ -180,7 +210,7 @@ Variables
-

Definition at line 63 of file exec_plugin.c.

+

Definition at line 64 of file exec_plugin.c.

@@ -224,7 +254,7 @@ Variables
-

Definition at line 91 of file exec_plugin.c.

+

Definition at line 97 of file exec_plugin.c.

@@ -268,7 +298,7 @@ Variables
-

Definition at line 70 of file exec_plugin.c.

+

Definition at line 76 of file exec_plugin.c.

@@ -288,7 +318,7 @@ Variables
-

Definition at line 303 of file exec_plugin.c.

+

Definition at line 327 of file exec_plugin.c.

@@ -316,7 +346,7 @@ Variables
-

Definition at line 247 of file exec_plugin.c.

+

Definition at line 255 of file exec_plugin.c.

@@ -344,7 +374,7 @@ Variables
-

Definition at line 111 of file exec_plugin.c.

+

Definition at line 117 of file exec_plugin.c.

@@ -372,7 +402,7 @@ Variables
-

Definition at line 139 of file exec_plugin.c.

+

Definition at line 146 of file exec_plugin.c.

@@ -396,14 +426,14 @@ Variables
-Initial value:
= {
PLUGIN_NAME,
PLUGIN_DESCRIPTION,
GETTEXT_PACKAGE,
PLUGIN_VERSION,
PLUGIN_APPICON,
PLUGIN_APPICON,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
}
static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]
Definition: exec_plugin.c:272
+Initial value:
= {
PLUGIN_NAME,
PLUGIN_DESCRIPTION,
GETTEXT_PACKAGE,
PLUGIN_VERSION,
PLUGIN_APPICON,
PLUGIN_APPICON,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL,
NULL
}
static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]
Definition: exec_plugin.c:295
-
static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:111
-
static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:139
-
static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:247
+
static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:117
+
static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:146
+
static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:255
-

Definition at line 280 of file exec_plugin.c.

+

Definition at line 304 of file exec_plugin.c.

@@ -426,12 +456,12 @@ Variables
-Initial value:
=
{
{ REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "execcommand", N_("Command"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "runasync", N_("Asynchronous execution"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }
}
+Initial value:
=
{
{ REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "execcommand", N_("Command"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "runasync", N_("Asynchronous execution"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "kill_proc", N_("Kill process on disconnect"), FALSE, NULL, NULL, NULL, NULL },
{ REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }
}
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953
-

Definition at line 272 of file exec_plugin.c.

+

Definition at line 295 of file exec_plugin.c.

@@ -455,7 +485,7 @@ Variables
-

Definition at line 58 of file exec_plugin.c.

+

Definition at line 59 of file exec_plugin.c.

diff --git a/public/exec__plugin_8c.js b/public/exec__plugin_8c.js index 92d7da881..4d2fc5598 100644 --- a/public/exec__plugin_8c.js +++ b/public/exec__plugin_8c.js @@ -2,6 +2,7 @@ var exec__plugin_8c = [ [ "_RemminaPluginExecData", "struct___remmina_plugin_exec_data.html", "struct___remmina_plugin_exec_data" ], [ "RemminaPluginExecData", "exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8", null ], + [ "cb_child_setup", "exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74", null ], [ "cb_child_watch", "exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71", null ], [ "cb_err_watch", "exec__plugin_8c.html#ab43db37b96c68093747620fbde879327", null ], [ "cb_out_watch", "exec__plugin_8c.html#aa6294507761837488c3777f21096d219", null ], diff --git a/public/exec__plugin_8c_source.html b/public/exec__plugin_8c_source.html index 7c7518653..f33854966 100644 --- a/public/exec__plugin_8c_source.html +++ b/public/exec__plugin_8c_source.html @@ -86,42 +86,44 @@ $(document).ready(function(){initNavTree('exec__plugin_8c_source.html','');});
exec_plugin.c
-Go to the documentation of this file.
1 /*
2  * Remmina - The GTK+ Remote Desktop Client
3  * Copyright (C) 2017-2023 Antenore Gatta, Giovanni Panozzo
4  *
5  * Initially based on the plugin "Remmina Plugin EXEC", created and written by
6  * Fabio Castelli (Muflone) <muflone@vbsimple.net>.
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  *
23  * In addition, as a special exception, the copyright holders give
24  * permission to link the code of portions of this program with the
25  * OpenSSL library under certain conditions as described in each
26  * individual source file, and distribute linked combinations
27  * including the two.
28  * You must obey the GNU General Public License in all respects
29  * for all of the code used other than OpenSSL. * If you modify
30  * file(s) with this exception, you may extend this exception to your
31  * version of the file(s), but you are not obligated to do so. * If you
32  * do not wish to do so, delete this exception statement from your
33  * version. * If you delete this exception statement from all source
34  * files in the program, then also delete it here.
35  *
36  */
37 
38 #include "exec_plugin_config.h"
39 
40 #include "common/remmina_plugin.h"
41 
42 #include <gdk/gdkkeysyms.h>
43 #include <gtk/gtk.h>
44 #include <glib.h>
45 #include <stdlib.h>
46 #include <sys/wait.h>
47 #include <unistd.h>
48 
49 #define GET_PLUGIN_DATA(gp) (RemminaPluginExecData*)g_object_get_data(G_OBJECT(gp), "plugin-data")
50 
51 typedef struct _RemminaPluginExecData {
52  GtkWidget *log_view;
53  GtkTextBuffer *log_buffer;
54  GtkTextBuffer *err;
55  GtkWidget *sw;
57 
59 #define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service->_remmina_debug(__func__, fmt, ##__VA_ARGS__)
60 
61 
62  static void
63 cb_child_watch( GPid pid, gint status)
64 {
65  /* Close pid */
66  g_spawn_close_pid( pid );
67 }
68 
69  static gboolean
70 cb_out_watch (GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
71 {
72  gchar *string;
73  gsize size;
74 
75  RemminaPluginExecData *gpdata = GET_PLUGIN_DATA(gp);
76 
77  if( cond == G_IO_HUP )
78  {
79  g_io_channel_unref( channel );
80  return FALSE;
81  }
82 
83  g_io_channel_read_line( channel, &string, &size, NULL, NULL );
84  gtk_text_buffer_insert_at_cursor( gpdata->log_buffer, string, -1 );
85  g_free( string );
86 
87  return TRUE;
88 }
89 
90  static gboolean
91 cb_err_watch (GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
92 {
93  gchar *string;
94  gsize size;
95 
96  RemminaPluginExecData *gpdata = GET_PLUGIN_DATA(gp);
97 
98  if( cond == G_IO_HUP )
99  {
100  g_io_channel_unref( channel );
101  return FALSE;
102  }
103 
104  g_io_channel_read_line( channel, &string, &size, NULL, NULL );
105  gtk_text_buffer_insert_at_cursor( gpdata->err, string, -1 );
106  g_free( string );
107 
108  return TRUE;
109 }
110 
112 {
113  TRACE_CALL(__func__);
114  RemminaPluginExecData *gpdata;
115 
116  REMMINA_PLUGIN_DEBUG("[%s] Plugin init", PLUGIN_NAME);
117 
118  gpdata = g_new0(RemminaPluginExecData, 1);
119  g_object_set_data_full(G_OBJECT(gp), "plugin-data", gpdata, g_free);
120 
121  gpdata->log_view = gtk_text_view_new();
122  gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gpdata->log_view), GTK_WRAP_CHAR);
123  gtk_text_view_set_editable(GTK_TEXT_VIEW(gpdata->log_view), FALSE);
124  gtk_text_view_set_left_margin (GTK_TEXT_VIEW (gpdata->log_view), 20);
125  gtk_text_view_set_right_margin (GTK_TEXT_VIEW (gpdata->log_view), 20);
126  gpdata->log_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gpdata->log_view));
127  gpdata->sw = gtk_scrolled_window_new (NULL, NULL);
128  gtk_widget_set_size_request (gpdata->sw, 640, 480);
129  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (gpdata->sw),
130  GTK_POLICY_AUTOMATIC,
131  GTK_POLICY_AUTOMATIC);
132  gtk_container_add(GTK_CONTAINER(gp), gpdata->sw);
133  gtk_container_add(GTK_CONTAINER(gpdata->sw), gpdata->log_view);
134  gtk_text_buffer_set_text (gpdata->log_buffer, "Remmina Exec Plugin Logger", -1);
135 
136  gtk_widget_show_all(gpdata->sw);
137 }
138 
140 {
141  TRACE_CALL(__func__);
142  RemminaFile* remminafile;
143  const gchar *cmd;
144  gchar *stdout_buffer;
145  gchar *stderr_buffer;
146  char **argv;
147  GError *error = NULL;
148  GPid child_pid;
149  gint child_stdout, child_stderr;
150  GtkDialog *dialog;
151  GIOChannel *out_ch, *err_ch;
152 
153  REMMINA_PLUGIN_DEBUG("[%s] Plugin run", PLUGIN_NAME);
154  RemminaPluginExecData *gpdata = GET_PLUGIN_DATA(gp);
155  remminafile = remmina_plugin_service->protocol_plugin_get_file(gp);
156 
157  cmd = remmina_plugin_service->file_get_string(remminafile, "execcommand");
158  if (!cmd) {
159  gtk_text_buffer_set_text (gpdata->log_buffer,
160  _("You did not set any command to be executed"), -1);
161  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
162  return TRUE;
163  }
164 
165  g_shell_parse_argv(cmd, NULL, &argv, &error);
166  if (error) {
167  gtk_text_buffer_set_text (gpdata->log_buffer, error->message, -1);
168  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
169  g_error_free(error);
170  return TRUE;
171  }
172 
173  if (remmina_plugin_service->file_get_int(remminafile, "runasync", FALSE)) {
174  REMMINA_PLUGIN_DEBUG("[%s] Run Async", PLUGIN_NAME);
175  g_spawn_async_with_pipes( NULL,
176  argv,
177  NULL,
178  G_SPAWN_DO_NOT_REAP_CHILD |
179  G_SPAWN_SEARCH_PATH_FROM_ENVP |
180  G_SPAWN_SEARCH_PATH,
181  NULL,
182  NULL,
183  &child_pid,
184  NULL,
185  &child_stdout,
186  &child_stderr,
187  &error);
188  if (error != NULL) {
189  gtk_text_buffer_set_text (gpdata->log_buffer, error->message, -1);
190  g_error_free(error);
191  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
192  return TRUE;
193  }
194  g_child_watch_add(child_pid, (GChildWatchFunc)cb_child_watch, gp );
195 
196  /* Create channels that will be used to read data from pipes. */
197  out_ch = g_io_channel_unix_new(child_stdout);
198  err_ch = g_io_channel_unix_new(child_stderr);
199  /* Add watches to channels */
200  g_io_add_watch(out_ch, G_IO_IN | G_IO_HUP, (GIOFunc)cb_out_watch, gp );
201  g_io_add_watch(err_ch, G_IO_IN | G_IO_HUP, (GIOFunc)cb_err_watch, gp );
202 
203  }else {
204  dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
205  GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
206  _("Warning: Running a command synchronously may cause Remmina not to respond.\nDo you really want to continue?")));
207  gint result = gtk_dialog_run (GTK_DIALOG (dialog));
208 
209  switch (result)
210  {
211  case GTK_RESPONSE_YES:
212  break;
213  default:
214  gtk_widget_destroy(GTK_WIDGET(dialog));
215  return FALSE;
216  break;
217  }
218  gtk_widget_destroy(GTK_WIDGET(dialog));
219  REMMINA_PLUGIN_DEBUG("[%s] Run Sync", PLUGIN_NAME);
220  g_spawn_sync (NULL, // CWD or NULL
221  argv,
222  NULL, // ENVP or NULL
223  G_SPAWN_SEARCH_PATH |
224  G_SPAWN_SEARCH_PATH_FROM_ENVP,
225  NULL,
226  NULL,
227  &stdout_buffer, // STDOUT
228  &stderr_buffer, // STDERR
229  NULL, // Exit status
230  &error);
231  if (!error) {
232  REMMINA_PLUGIN_DEBUG("[%s] Command executed", PLUGIN_NAME);
233  gtk_text_buffer_set_text (gpdata->log_buffer, stdout_buffer, -1);
234  }else {
235  g_warning("Command %s exited with error: %s\n", cmd, error->message);
236  gtk_text_buffer_set_text (gpdata->log_buffer, error->message, -1);
237  g_error_free(error);
238  }
239  }
240 
241  g_strfreev(argv);
242 
243  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
244  return TRUE;
245 }
246 
248 {
249  TRACE_CALL(__func__);
250  REMMINA_PLUGIN_DEBUG("[%s] Plugin close", PLUGIN_NAME);
251  remmina_plugin_service->protocol_plugin_signal_connection_closed(gp);
252  return FALSE;
253 }
254 
255 /* Array of RemminaProtocolSetting for basic settings.
256  * Each item is composed by:
257  * a) RemminaProtocolSettingType for setting type
258  * b) Setting name
259  * c) Setting description
260  * d) Compact disposition
261  * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO
262  * f) Setting tooltip
263  * g) Validation data pointer, will be passed to the validation callback method.
264  * h) Validation callback method (Can be NULL. Every entry will be valid then.)
265  * use following prototype:
266  * gboolean mysetting_validator_method(gpointer key, gpointer value,
267  * gpointer validator_data);
268  * gpointer key is a gchar* containing the setting's name,
269  * gpointer value contains the value which should be validated,
270  * gpointer validator_data contains your passed data.
271  */
273 {
274  { REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "execcommand", N_("Command"), FALSE, NULL, NULL, NULL, NULL },
275  { REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "runasync", N_("Asynchronous execution"), FALSE, NULL, NULL, NULL, NULL },
276  { REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }
277 };
278 
279 /* Protocol plugin definition and features */
282  PLUGIN_NAME, // Name
283  PLUGIN_DESCRIPTION, // Description
284  GETTEXT_PACKAGE, // Translation domain
285  PLUGIN_VERSION, // Version number
286  PLUGIN_APPICON, // Icon for normal connection
287  PLUGIN_APPICON, // Icon for SSH connection
288  remmina_plugin_exec_basic_settings, // Array for basic settings
289  NULL, // Array for advanced settings
290  REMMINA_PROTOCOL_SSH_SETTING_NONE, // SSH settings type
291  NULL, // Array for available features
292  remmina_plugin_exec_init, // Plugin initialization
293  remmina_plugin_exec_run, // Plugin open connection
294  remmina_plugin_exec_close, // Plugin close connection
295  NULL, // Query for available features
296  NULL, // Call a feature
297  NULL, // Send a keystroke
298  NULL, // No screenshot support available
299  NULL, // RCW map event
300  NULL // RCW unmap event
301 };
302 
303 G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)
304 {
305  TRACE_CALL(__func__);
306  remmina_plugin_service = service;
307 
308  bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);
309  bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
310 
311  if (!service->register_plugin((RemminaPlugin*)&remmina_plugin)) {
312  return FALSE;
313  }
314 
315  return TRUE;
316 }
static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]
Definition: exec_plugin.c:272
+Go to the documentation of this file.
1 /*
2  * Remmina - The GTK+ Remote Desktop Client
3  * Copyright (C) 2017-2023 Antenore Gatta, Giovanni Panozzo
4  *
5  * Initially based on the plugin "Remmina Plugin EXEC", created and written by
6  * Fabio Castelli (Muflone) <muflone@vbsimple.net>.
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation; either version 2 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin Street, Fifth Floor,
21  * Boston, MA 02110-1301, USA.
22  *
23  * In addition, as a special exception, the copyright holders give
24  * permission to link the code of portions of this program with the
25  * OpenSSL library under certain conditions as described in each
26  * individual source file, and distribute linked combinations
27  * including the two.
28  * You must obey the GNU General Public License in all respects
29  * for all of the code used other than OpenSSL. * If you modify
30  * file(s) with this exception, you may extend this exception to your
31  * version of the file(s), but you are not obligated to do so. * If you
32  * do not wish to do so, delete this exception statement from your
33  * version. * If you delete this exception statement from all source
34  * files in the program, then also delete it here.
35  *
36  */
37 
38 #include "exec_plugin_config.h"
39 
40 #include "common/remmina_plugin.h"
41 
42 #include <gdk/gdkkeysyms.h>
43 #include <gtk/gtk.h>
44 #include <glib.h>
45 #include <stdlib.h>
46 #include <sys/wait.h>
47 #include <unistd.h>
48 
49 #define GET_PLUGIN_DATA(gp) (RemminaPluginExecData*)g_object_get_data(G_OBJECT(gp), "plugin-data")
50 
51 typedef struct _RemminaPluginExecData {
52  GtkWidget *log_view;
53  GtkTextBuffer *log_buffer;
54  GtkTextBuffer *err;
55  GtkWidget *sw;
56  GPid pid;
58 
60 #define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service->_remmina_debug(__func__, fmt, ##__VA_ARGS__)
61 
62 
63  static void
64 cb_child_watch( GPid pid, gint status)
65 {
66  /* Close pid */
67  g_spawn_close_pid( pid );
68 }
69 
70 static void cb_child_setup(gpointer data){
71  int pid = getpid();
72  setpgid(pid, 0);
73 }
74 
75  static gboolean
76 cb_out_watch (GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
77 {
78  gchar *string;
79  gsize size;
80 
81  RemminaPluginExecData *gpdata = GET_PLUGIN_DATA(gp);
82 
83  if( cond == G_IO_HUP )
84  {
85  g_io_channel_unref( channel );
86  return FALSE;
87  }
88 
89  g_io_channel_read_line( channel, &string, &size, NULL, NULL );
90  gtk_text_buffer_insert_at_cursor( gpdata->log_buffer, string, -1 );
91  g_free( string );
92 
93  return TRUE;
94 }
95 
96  static gboolean
97 cb_err_watch (GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
98 {
99  gchar *string;
100  gsize size;
101 
102  RemminaPluginExecData *gpdata = GET_PLUGIN_DATA(gp);
103 
104  if( cond == G_IO_HUP )
105  {
106  g_io_channel_unref( channel );
107  return FALSE;
108  }
109 
110  g_io_channel_read_line( channel, &string, &size, NULL, NULL );
111  gtk_text_buffer_insert_at_cursor( gpdata->err, string, -1 );
112  g_free( string );
113 
114  return TRUE;
115 }
116 
118 {
119  TRACE_CALL(__func__);
120  RemminaPluginExecData *gpdata;
121 
122  REMMINA_PLUGIN_DEBUG("[%s] Plugin init", PLUGIN_NAME);
123 
124  gpdata = g_new0(RemminaPluginExecData, 1);
125  g_object_set_data_full(G_OBJECT(gp), "plugin-data", gpdata, g_free);
126 
127  gpdata->pid = 0;
128  gpdata->log_view = gtk_text_view_new();
129  gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gpdata->log_view), GTK_WRAP_CHAR);
130  gtk_text_view_set_editable(GTK_TEXT_VIEW(gpdata->log_view), FALSE);
131  gtk_text_view_set_left_margin (GTK_TEXT_VIEW (gpdata->log_view), 20);
132  gtk_text_view_set_right_margin (GTK_TEXT_VIEW (gpdata->log_view), 20);
133  gpdata->log_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gpdata->log_view));
134  gpdata->sw = gtk_scrolled_window_new (NULL, NULL);
135  gtk_widget_set_size_request (gpdata->sw, 640, 480);
136  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (gpdata->sw),
137  GTK_POLICY_AUTOMATIC,
138  GTK_POLICY_AUTOMATIC);
139  gtk_container_add(GTK_CONTAINER(gp), gpdata->sw);
140  gtk_container_add(GTK_CONTAINER(gpdata->sw), gpdata->log_view);
141  gtk_text_buffer_set_text (gpdata->log_buffer, "Remmina Exec Plugin Logger", -1);
142 
143  gtk_widget_show_all(gpdata->sw);
144 }
145 
147 {
148  TRACE_CALL(__func__);
149  RemminaFile* remminafile;
150  const gchar *cmd;
151  gchar *stdout_buffer;
152  gchar *stderr_buffer;
153  char **argv;
154  GError *error = NULL;
155  GPid child_pid;
156  gint child_stdout, child_stderr;
157  GtkDialog *dialog;
158  GIOChannel *out_ch, *err_ch;
159 
160  REMMINA_PLUGIN_DEBUG("[%s] Plugin run", PLUGIN_NAME);
161  RemminaPluginExecData *gpdata = GET_PLUGIN_DATA(gp);
162  remminafile = remmina_plugin_service->protocol_plugin_get_file(gp);
163 
164  cmd = remmina_plugin_service->file_get_string(remminafile, "execcommand");
165  if (!cmd) {
166  gtk_text_buffer_set_text (gpdata->log_buffer,
167  _("You did not set any command to be executed"), -1);
168  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
169  return TRUE;
170  }
171 
172  g_shell_parse_argv(cmd, NULL, &argv, &error);
173  if (error) {
174  gtk_text_buffer_set_text (gpdata->log_buffer, error->message, -1);
175  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
176  g_error_free(error);
177  return TRUE;
178  }
179 
180  if (remmina_plugin_service->file_get_int(remminafile, "runasync", FALSE)) {
181  REMMINA_PLUGIN_DEBUG("[%s] Run Async", PLUGIN_NAME);
182  g_spawn_async_with_pipes( NULL,
183  argv,
184  NULL,
185  G_SPAWN_DO_NOT_REAP_CHILD |
186  G_SPAWN_SEARCH_PATH_FROM_ENVP |
187  G_SPAWN_SEARCH_PATH,
189  NULL,
190  &child_pid,
191  NULL,
192  &child_stdout,
193  &child_stderr,
194  &error);
195  if (error != NULL) {
196  gtk_text_buffer_set_text (gpdata->log_buffer, error->message, -1);
197  g_error_free(error);
198  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
199  return TRUE;
200  }
201  g_child_watch_add(child_pid, (GChildWatchFunc)cb_child_watch, gp );
202 
203  gpdata->pid = child_pid;
204  /* Create channels that will be used to read data from pipes. */
205  out_ch = g_io_channel_unix_new(child_stdout);
206  err_ch = g_io_channel_unix_new(child_stderr);
207  /* Add watches to channels */
208  g_io_add_watch(out_ch, G_IO_IN | G_IO_HUP, (GIOFunc)cb_out_watch, gp );
209  g_io_add_watch(err_ch, G_IO_IN | G_IO_HUP, (GIOFunc)cb_err_watch, gp );
210 
211  }else {
212  dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
213  GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,
214  _("Warning: Running a command synchronously may cause Remmina not to respond.\nDo you really want to continue?")));
215  gint result = gtk_dialog_run (GTK_DIALOG (dialog));
216 
217  switch (result)
218  {
219  case GTK_RESPONSE_YES:
220  break;
221  default:
222  gtk_widget_destroy(GTK_WIDGET(dialog));
223  return FALSE;
224  break;
225  }
226  gtk_widget_destroy(GTK_WIDGET(dialog));
227  REMMINA_PLUGIN_DEBUG("[%s] Run Sync", PLUGIN_NAME);
228  g_spawn_sync (NULL, // CWD or NULL
229  argv,
230  NULL, // ENVP or NULL
231  G_SPAWN_SEARCH_PATH |
232  G_SPAWN_SEARCH_PATH_FROM_ENVP,
233  NULL,
234  NULL,
235  &stdout_buffer, // STDOUT
236  &stderr_buffer, // STDERR
237  NULL, // Exit status
238  &error);
239  if (!error) {
240  REMMINA_PLUGIN_DEBUG("[%s] Command executed", PLUGIN_NAME);
241  gtk_text_buffer_set_text (gpdata->log_buffer, stdout_buffer, -1);
242  }else {
243  g_warning("Command %s exited with error: %s\n", cmd, error->message);
244  gtk_text_buffer_set_text (gpdata->log_buffer, error->message, -1);
245  g_error_free(error);
246  }
247  }
248 
249  g_strfreev(argv);
250 
251  remmina_plugin_service->protocol_plugin_signal_connection_opened(gp);
252  return TRUE;
253 }
254 
256 {
257  TRACE_CALL(__func__);
258  REMMINA_PLUGIN_DEBUG("[%s] Plugin close", PLUGIN_NAME);
259  RemminaPluginExecData *gpdata = GET_PLUGIN_DATA(gp);
260  //if async process was started, make sure it's dead if option is selected
261  RemminaFile* remminafile = remmina_plugin_service->protocol_plugin_get_file(gp);
262  if (remmina_plugin_service->file_get_int(remminafile, "kill_proc", FALSE)) {
263  if (gpdata->pid !=0 ){
264  int pgid = getpgid(gpdata->pid);
265  if (pgid != 0){
266  kill(-gpdata->pid, SIGHUP);
267  }
268  else{
269  kill(gpdata->pid, SIGHUP);
270  }
271 
272  }
273  }
274  remmina_plugin_service->protocol_plugin_signal_connection_closed(gp);
275  return FALSE;
276 }
277 
278 /* Array of RemminaProtocolSetting for basic settings.
279  * Each item is composed by:
280  * a) RemminaProtocolSettingType for setting type
281  * b) Setting name
282  * c) Setting description
283  * d) Compact disposition
284  * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO
285  * f) Setting tooltip
286  * g) Validation data pointer, will be passed to the validation callback method.
287  * h) Validation callback method (Can be NULL. Every entry will be valid then.)
288  * use following prototype:
289  * gboolean mysetting_validator_method(gpointer key, gpointer value,
290  * gpointer validator_data);
291  * gpointer key is a gchar* containing the setting's name,
292  * gpointer value contains the value which should be validated,
293  * gpointer validator_data contains your passed data.
294  */
296 {
297  { REMMINA_PROTOCOL_SETTING_TYPE_TEXT, "execcommand", N_("Command"), FALSE, NULL, NULL, NULL, NULL },
298  { REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "runasync", N_("Asynchronous execution"), FALSE, NULL, NULL, NULL, NULL },
299  { REMMINA_PROTOCOL_SETTING_TYPE_CHECK, "kill_proc", N_("Kill process on disconnect"), FALSE, NULL, NULL, NULL, NULL },
300  { REMMINA_PROTOCOL_SETTING_TYPE_END, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }
301 };
302 
303 /* Protocol plugin definition and features */
306  PLUGIN_NAME, // Name
307  PLUGIN_DESCRIPTION, // Description
308  GETTEXT_PACKAGE, // Translation domain
309  PLUGIN_VERSION, // Version number
310  PLUGIN_APPICON, // Icon for normal connection
311  PLUGIN_APPICON, // Icon for SSH connection
312  remmina_plugin_exec_basic_settings, // Array for basic settings
313  NULL, // Array for advanced settings
314  REMMINA_PROTOCOL_SSH_SETTING_NONE, // SSH settings type
315  NULL, // Array for available features
316  remmina_plugin_exec_init, // Plugin initialization
317  remmina_plugin_exec_run, // Plugin open connection
318  remmina_plugin_exec_close, // Plugin close connection
319  NULL, // Query for available features
320  NULL, // Call a feature
321  NULL, // Send a keystroke
322  NULL, // No screenshot support available
323  NULL, // RCW map event
324  NULL // RCW unmap event
325 };
326 
327 G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)
328 {
329  TRACE_CALL(__func__);
330  remmina_plugin_service = service;
331 
332  bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);
333  bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
334 
335  if (!service->register_plugin((RemminaPlugin*)&remmina_plugin)) {
336  return FALSE;
337  }
338 
339  return TRUE;
340 }
static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]
Definition: exec_plugin.c:295
-
static void cb_child_watch(GPid pid, gint status)
Definition: exec_plugin.c:63
+
static void cb_child_watch(GPid pid, gint status)
Definition: exec_plugin.c:64
typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile
Definition: types.h:44
GtkTextBuffer * err
Definition: exec_plugin.c:54
-
static RemminaProtocolPlugin remmina_plugin
Definition: exec_plugin.c:280
+
static RemminaProtocolPlugin remmina_plugin
Definition: exec_plugin.c:304
-
static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:111
+
static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:117
struct _RemminaPluginExecData RemminaPluginExecData
-
static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:139
+
static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:146
void(* protocol_plugin_signal_connection_closed)(RemminaProtocolWidget *gp)
Definition: plugin.h:185
gint(* file_get_int)(RemminaFile *remminafile, const gchar *setting, gint default_value)
Definition: plugin.h:222
void(* protocol_plugin_signal_connection_opened)(RemminaProtocolWidget *gp)
Definition: plugin.h:186
gboolean(* register_plugin)(RemminaPlugin *plugin)
Definition: plugin.h:166
-
static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:247
+
static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)
Definition: exec_plugin.c:255
GtkWidget * log_view
Definition: exec_plugin.c:52
RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)
Definition: plugin.h:178
+
static void cb_child_setup(gpointer data)
Definition: exec_plugin.c:70
+
const gchar *(* file_get_string)(RemminaFile *remminafile, const gchar *setting)
Definition: plugin.h:219
-
static gboolean cb_err_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
Definition: exec_plugin.c:91
+
static gboolean cb_err_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
Definition: exec_plugin.c:97
GtkTextBuffer * log_buffer
Definition: exec_plugin.c:53
N_("Unable to connect to VNC server")
Definition: vnc_plugin.c:953
-
static gboolean cb_out_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
Definition: exec_plugin.c:70
-
G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)
Definition: exec_plugin.c:303
-
static RemminaPluginService * remmina_plugin_service
Definition: exec_plugin.c:58
+
static gboolean cb_out_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)
Definition: exec_plugin.c:76
+
G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)
Definition: exec_plugin.c:327
+
static RemminaPluginService * remmina_plugin_service
Definition: exec_plugin.c:59
diff --git a/public/functions_p.html b/public/functions_p.html index 650608800..aeadec958 100644 --- a/public/functions_p.html +++ b/public/functions_p.html @@ -163,6 +163,9 @@ $(document).ready(function(){initNavTree('functions_p.html','');});
  • physicalWidth : remmina_plugin_rdp_event
  • +
  • pid +: _RemminaPluginExecData +
  • pidx2go : _RemminaPluginX2GoData
  • diff --git a/public/functions_vars_p.html b/public/functions_vars_p.html index c579b05c7..30a8fcdbf 100644 --- a/public/functions_vars_p.html +++ b/public/functions_vars_p.html @@ -163,6 +163,9 @@ $(document).ready(function(){initNavTree('functions_vars_p.html','');});
  • physicalWidth : remmina_plugin_rdp_event
  • +
  • pid +: _RemminaPluginExecData +
  • pidx2go : _RemminaPluginX2GoData
  • diff --git a/public/globals_c.html b/public/globals_c.html index 4b8427d09..5400be516 100644 --- a/public/globals_c.html +++ b/public/globals_c.html @@ -106,6 +106,9 @@ $(document).ready(function(){initNavTree('globals_c.html','');});
  • CANCEL_TASK_SIGNAL : remmina_ftp_client.c
  • +
  • cb_child_setup() +: exec_plugin.c +
  • cb_child_watch() : exec_plugin.c
  • diff --git a/public/globals_func_c.html b/public/globals_func_c.html index f1b28085a..13a67f832 100644 --- a/public/globals_func_c.html +++ b/public/globals_func_c.html @@ -100,6 +100,9 @@ $(document).ready(function(){initNavTree('globals_func_c.html','');});
  • cancel_start_reverse_tunnel_cb() : remmina_protocol_widget.c
  • +
  • cb_child_setup() +: exec_plugin.c +
  • cb_child_watch() : exec_plugin.c
  • diff --git a/public/globals_r.html b/public/globals_r.html index 096617f3c..d1e759761 100644 --- a/public/globals_r.html +++ b/public/globals_r.html @@ -4316,12 +4316,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
  • remmina_ssh_tunnel_new_from_file() : remmina_ssh.h
  • -
  • REMMINA_SSH_TUNNEL_OPEN -: remmina_ssh.h -
  • remmina_ssh_tunnel_open() : remmina_ssh.h
  • +
  • REMMINA_SSH_TUNNEL_OPEN +: remmina_ssh.h +
  • REMMINA_SSH_TUNNEL_REVERSE : remmina_ssh.h
  • @@ -4846,12 +4846,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
  • RemminaLogWindowClass : remmina_log.c
  • -
  • RemminaMain -: remmina_main.h -
  • remminamain : remmina_main.c
  • +
  • RemminaMain +: remmina_main.h +
  • RemminaMainPriv : remmina_main.h
  • diff --git a/public/navtreedata.js b/public/navtreedata.js index 33e0eda3d..6bc6af0bb 100644 --- a/public/navtreedata.js +++ b/public/navtreedata.js @@ -88,24 +88,24 @@ var NAVTREE = var NAVTREEINDEX = [ "annotated.html", -"kwallet__plugin_8h.html#ad44ed3af2cdfb051e5122b85604cd0cd", -"python__wrapper__protocol_8h.html#ab223d3563d16258e33e8dfae0ee41e5d", -"rcw_8c.html#a89a2fc0dfcdc5e260cc3af191a7115ee", -"rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4", -"remmina__crypt_8c.html#aa02cf0fed3eb68d6a89815c3ba3bf7b1", -"remmina__ftp__client_8c.html#a3cb68d802d3c35dff5cee970d3c33bd5", -"remmina__main_8c.html#ab2a1a54320992fb796850ffbd6a63589", -"remmina__pref_8c.html#a12e52ee4ab89912280605e36ee069267", -"remmina__protocol__widget_8h.html#a25bcb2ae99449624fed6f770218e3d25", -"remmina__ssh_8h.html", -"remmina__utils_8h.html#a3ce53eeb3b090f86cfcdbce3e7cf71be", -"struct___remmina_color_pref.html#a8d7f02ac9b6890ad675b702708bc4af9", -"struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3", -"struct___remmina_pref.html#a99a34af002da68036758fab3ceb08259", -"struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0", -"structmpchanger__params.html#a3cb4141ca61b0b9a5584239386dbbe46", -"structrf__context.html#ad4ea260ce64d09deea422b9067ee70b4", -"www__plugin_8c.html#ae8ced85169ca68aae1ed7f14b488e5b8" +"kwallet__plugin_8h.html#ab0039ed9f1ecfa8937bed720fe408ae5", +"python__wrapper__protocol_8h.html#aaa90f5541895f5c3dedaa16c15d80de7", +"rcw_8c.html#a82c93bbb1ab73807b366b86928c37946", +"rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f", +"remmina__crypt_8c.html#a3fe2fa245d401146adf02a3a8f996ab9", +"remmina__ftp__client_8c.html#a3a2dc5070f06ae0fcd25fbfe1587ab5c", +"remmina__main_8c.html#ab203476099a5ad6e889f91c8e05d577d", +"remmina__pref_8c.html#a10b667eb7a100d6ac8d9544697f22743", +"remmina__protocol__widget_8h.html#a2551dd6f53480609596d2695040fba5d", +"remmina__ssh_8c_source.html", +"remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c", +"struct___remmina_color_pref.html#a8c109e8479617a5e6da0fcaccf511c60", +"struct___remmina_plugin_service.html#a46433bff9d6f3ea25b67115031e94e9b", +"struct___remmina_pref.html#a994425a04b78282ff40a05580cc9355c", +"struct___remmina_s_s_h.html", +"structmpchanger__params.html#a098952d194a183d4a505aa065797864b", +"structrf__context.html#acee2095e72fb2428c498f62e21800026", +"www__plugin_8c.html#ae38b4f2efc412b6256221d9a33a03cd4" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/public/navtreeindex0.js b/public/navtreeindex0.js index 5c40a604b..5cea79c65 100644 --- a/public/navtreeindex0.js +++ b/public/navtreeindex0.js @@ -3,17 +3,18 @@ var NAVTREEINDEX0 = "annotated.html":[60,0], "classes.html":[60,1], "exec__plugin_8c.html":[61,0,0], -"exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad":[61,0,0,8], -"exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99":[61,0,0,9], +"exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad":[61,0,0,9], +"exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74":[61,0,0,2], +"exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99":[61,0,0,10], "exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8":[61,0,0,1], -"exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe":[61,0,0,7], -"exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208":[61,0,0,5], -"exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088":[61,0,0,6], -"exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3":[61,0,0,10], -"exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7":[61,0,0,11], -"exec__plugin_8c.html#aa6294507761837488c3777f21096d219":[61,0,0,4], -"exec__plugin_8c.html#ab43db37b96c68093747620fbde879327":[61,0,0,3], -"exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71":[61,0,0,2], +"exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe":[61,0,0,8], +"exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208":[61,0,0,6], +"exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088":[61,0,0,7], +"exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3":[61,0,0,11], +"exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7":[61,0,0,12], +"exec__plugin_8c.html#aa6294507761837488c3777f21096d219":[61,0,0,5], +"exec__plugin_8c.html#ab43db37b96c68093747620fbde879327":[61,0,0,4], +"exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71":[61,0,0,3], "exec__plugin_8c_source.html":[61,0,0], "exec__plugin__config_8h.html":[61,0,1], "exec__plugin__config_8h_source.html":[61,0,1], @@ -248,6 +249,5 @@ var NAVTREEINDEX0 = "index.html":[], "index.html":[0], "kwallet__plugin_8h.html":[61,0,10], -"kwallet__plugin_8h.html#a1cce5ef9ceee5e678840c92b4bb0a4a9":[61,0,10,2], -"kwallet__plugin_8h.html#ab0039ed9f1ecfa8937bed720fe408ae5":[61,0,10,1] +"kwallet__plugin_8h.html#a1cce5ef9ceee5e678840c92b4bb0a4a9":[61,0,10,2] }; diff --git a/public/navtreeindex1.js b/public/navtreeindex1.js index 77da0e49f..241c34382 100644 --- a/public/navtreeindex1.js +++ b/public/navtreeindex1.js @@ -1,5 +1,6 @@ var NAVTREEINDEX1 = { +"kwallet__plugin_8h.html#ab0039ed9f1ecfa8937bed720fe408ae5":[61,0,10,1], "kwallet__plugin_8h.html#ad44ed3af2cdfb051e5122b85604cd0cd":[61,0,10,0], "kwallet__plugin_8h.html#ad91b525d838f1f2d62734c84a9f890ba":[61,0,10,3], "kwallet__plugin_8h.html#ae088299c1e5a756c6a178e1dd1becfe3":[61,0,10,4], @@ -248,6 +249,5 @@ var NAVTREEINDEX1 = "python__wrapper__protocol_8c.html#ab223d3563d16258e33e8dfae0ee41e5d":[61,0,28,1], "python__wrapper__protocol_8c_source.html":[61,0,28], "python__wrapper__protocol_8h.html":[61,0,29], -"python__wrapper__protocol_8h.html#a26eea3cdd2d97d5cd8ad00d2bbe17c29":[61,0,29,3], -"python__wrapper__protocol_8h.html#aaa90f5541895f5c3dedaa16c15d80de7":[61,0,29,2] +"python__wrapper__protocol_8h.html#a26eea3cdd2d97d5cd8ad00d2bbe17c29":[61,0,29,3] }; diff --git a/public/navtreeindex10.js b/public/navtreeindex10.js index c7b3b822a..31b94d6fe 100644 --- a/public/navtreeindex10.js +++ b/public/navtreeindex10.js @@ -1,5 +1,6 @@ var NAVTREEINDEX10 = { +"remmina__ssh_8c_source.html":[61,0,133], "remmina__ssh_8h.html":[61,0,134], "remmina__ssh_8h.html#a09bd4aee40b6e8d6ba8ffaa84dc95330":[61,0,134,21], "remmina__ssh_8h.html#a1500d65d1f0751812f237c1cb4d15188":[61,0,134,17], @@ -248,6 +249,5 @@ var NAVTREEINDEX10 = "remmina__utils_8c_source.html":[61,0,149], "remmina__utils_8h.html":[61,0,150], "remmina__utils_8h.html#a0f10e190a6dd212fcb0cf36ce81c8324":[61,0,150,5], -"remmina__utils_8h.html#a116e7cd4565386fe531d3a6d1a3d3730":[61,0,150,2], -"remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c":[61,0,150,6] +"remmina__utils_8h.html#a116e7cd4565386fe531d3a6d1a3d3730":[61,0,150,2] }; diff --git a/public/navtreeindex11.js b/public/navtreeindex11.js index de5ea0aaf..8367910df 100644 --- a/public/navtreeindex11.js +++ b/public/navtreeindex11.js @@ -1,5 +1,6 @@ var NAVTREEINDEX11 = { +"remmina__utils_8h.html#a2b4dbb0da7c8ba4bd86877097b85d10c":[61,0,150,6], "remmina__utils_8h.html#a3ce53eeb3b090f86cfcdbce3e7cf71be":[61,0,150,11], "remmina__utils_8h.html#a54cee350c4ecc6e77af835c4ba90df4c":[61,0,150,1], "remmina__utils_8h.html#a57603aa88df56e77e1a6de0f215f21aa":[61,0,150,4], @@ -248,6 +249,5 @@ var NAVTREEINDEX11 = "struct___remmina_color_pref.html#a4ad947d133d2aa2c94756aacb5031e79":[60,0,15,7], "struct___remmina_color_pref.html#a5ae99dc78a80baa14e0407983077c500":[60,0,15,18], "struct___remmina_color_pref.html#a5d92875f0034e5fc3d360d97d5992bd4":[60,0,15,15], -"struct___remmina_color_pref.html#a675a8004488715429fa540dffb330d49":[60,0,15,0], -"struct___remmina_color_pref.html#a8c109e8479617a5e6da0fcaccf511c60":[60,0,15,8] +"struct___remmina_color_pref.html#a675a8004488715429fa540dffb330d49":[60,0,15,0] }; diff --git a/public/navtreeindex12.js b/public/navtreeindex12.js index 51b743a2a..317daed52 100644 --- a/public/navtreeindex12.js +++ b/public/navtreeindex12.js @@ -1,5 +1,6 @@ var NAVTREEINDEX12 = { +"struct___remmina_color_pref.html#a8c109e8479617a5e6da0fcaccf511c60":[60,0,15,8], "struct___remmina_color_pref.html#a8d7f02ac9b6890ad675b702708bc4af9":[60,0,15,13], "struct___remmina_color_pref.html#aa495bd5170c952a7dccff4e2504f5867":[60,0,15,20], "struct___remmina_color_pref.html#aa4a65b76fbdc0b3e97d3046f0b48e1ff":[60,0,15,2], @@ -177,7 +178,8 @@ var NAVTREEINDEX12 = "struct___remmina_plugin.html#ac7f294cb3a5e989e95f619780ede87d3":[60,0,38,3], "struct___remmina_plugin.html#aecdad5d7ff5bdfbf0ce80b4b73f65099":[60,0,38,4], "struct___remmina_plugin_exec_data.html":[60,0,39], -"struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb":[60,0,39,3], +"struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb":[60,0,39,4], +"struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6":[60,0,39,3], "struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41":[60,0,39,1], "struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4":[60,0,39,0], "struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1":[60,0,39,2], @@ -247,7 +249,5 @@ var NAVTREEINDEX12 = "struct___remmina_plugin_service.html#a42ca6bc7a62f91efdba93cde19b347ce":[60,0,43,121], "struct___remmina_plugin_service.html#a434bf35a11eea8a5b653ffd8c7823d84":[60,0,43,97], "struct___remmina_plugin_service.html#a45416583767fafcac3fe3a9ac50d400f":[60,0,43,104], -"struct___remmina_plugin_service.html#a4558dbff70064da3de58a6d684611fad":[60,0,43,67], -"struct___remmina_plugin_service.html#a46433bff9d6f3ea25b67115031e94e9b":[60,0,43,89], -"struct___remmina_plugin_service.html#a48651c1147371e7e9069eb1fd06a9e4f":[60,0,43,3] +"struct___remmina_plugin_service.html#a4558dbff70064da3de58a6d684611fad":[60,0,43,67] }; diff --git a/public/navtreeindex13.js b/public/navtreeindex13.js index bb706782a..a71c2ca64 100644 --- a/public/navtreeindex13.js +++ b/public/navtreeindex13.js @@ -1,5 +1,7 @@ var NAVTREEINDEX13 = { +"struct___remmina_plugin_service.html#a46433bff9d6f3ea25b67115031e94e9b":[60,0,43,89], +"struct___remmina_plugin_service.html#a48651c1147371e7e9069eb1fd06a9e4f":[60,0,43,3], "struct___remmina_plugin_service.html#a4880fb57479708bc1cb47bf6b4dcabc3":[60,0,43,14], "struct___remmina_plugin_service.html#a4d39a5300472a230a65d44ac16391186":[60,0,43,39], "struct___remmina_plugin_service.html#a4da50fa364ddf1fcf22def341f61a7cb":[60,0,43,13], @@ -247,7 +249,5 @@ var NAVTREEINDEX13 = "struct___remmina_pref.html#a90e0cfac442b9e50e0f4857b3ff74255":[60,0,54,83], "struct___remmina_pref.html#a920221c2f304bfa278d0944bbbb6e011":[60,0,54,10], "struct___remmina_pref.html#a9258f6c3c18f14b4abb148aa43e6bc0e":[60,0,54,22], -"struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f":[60,0,54,19], -"struct___remmina_pref.html#a994425a04b78282ff40a05580cc9355c":[60,0,54,29], -"struct___remmina_pref.html#a999b74e3aab2e7fbc4431e803511b568":[60,0,54,4] +"struct___remmina_pref.html#a97ad6670df5c399df233f0a74f5c148f":[60,0,54,19] }; diff --git a/public/navtreeindex14.js b/public/navtreeindex14.js index 7d0727a25..db8a2da10 100644 --- a/public/navtreeindex14.js +++ b/public/navtreeindex14.js @@ -1,5 +1,7 @@ var NAVTREEINDEX14 = { +"struct___remmina_pref.html#a994425a04b78282ff40a05580cc9355c":[60,0,54,29], +"struct___remmina_pref.html#a999b74e3aab2e7fbc4431e803511b568":[60,0,54,4], "struct___remmina_pref.html#a99a34af002da68036758fab3ceb08259":[60,0,54,46], "struct___remmina_pref.html#a9c5171c5d8a61cc48171065644613cad":[60,0,54,86], "struct___remmina_pref.html#a9da302463dbefeecf192fd3460de1658":[60,0,54,32], @@ -247,7 +249,5 @@ var NAVTREEINDEX14 = "struct___remmina_s_f_t_p_client.html#ab74654f5e47c939e1098c183a582023c":[60,0,70,2], "struct___remmina_s_f_t_p_client.html#ad6c612bb5172905eb63bfd5b672e1875":[60,0,70,5], "struct___remmina_s_f_t_p_client_class.html":[60,0,71], -"struct___remmina_s_f_t_p_client_class.html#ac7786b1cfca2fcc92c85f10e4939f80d":[60,0,71,0], -"struct___remmina_s_s_h.html":[60,0,72], -"struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5":[60,0,72,4] +"struct___remmina_s_f_t_p_client_class.html#ac7786b1cfca2fcc92c85f10e4939f80d":[60,0,71,0] }; diff --git a/public/navtreeindex15.js b/public/navtreeindex15.js index 046576578..510b7b79d 100644 --- a/public/navtreeindex15.js +++ b/public/navtreeindex15.js @@ -1,5 +1,7 @@ var NAVTREEINDEX15 = { +"struct___remmina_s_s_h.html":[60,0,72], +"struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5":[60,0,72,4], "struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0":[60,0,72,5], "struct___remmina_s_s_h.html#a345d41b54490dd39e35280122d22feed":[60,0,72,11], "struct___remmina_s_s_h.html#a37cb349f88211ed4a65a3486f8523eaa":[60,0,72,3], @@ -247,7 +249,5 @@ var NAVTREEINDEX15 = "structlsb__distro__info.html#a251763a49054183774e2082595537e47":[60,0,86,0], "structlsb__distro__info.html#a7aba92d963bcaed1a5dda7b7be4fa6d7":[60,0,86,1], "structmpchanger__params.html":[60,0,87], -"structmpchanger__params.html#a00a888f26c1609e064367bb5095c71f4":[60,0,87,13], -"structmpchanger__params.html#a098952d194a183d4a505aa065797864b":[60,0,87,16], -"structmpchanger__params.html#a170ffe7965540ab152a4a95945482c87":[60,0,87,20] +"structmpchanger__params.html#a00a888f26c1609e064367bb5095c71f4":[60,0,87,13] }; diff --git a/public/navtreeindex16.js b/public/navtreeindex16.js index 3a9b67ade..3c5b47b78 100644 --- a/public/navtreeindex16.js +++ b/public/navtreeindex16.js @@ -1,5 +1,7 @@ var NAVTREEINDEX16 = { +"structmpchanger__params.html#a098952d194a183d4a505aa065797864b":[60,0,87,16], +"structmpchanger__params.html#a170ffe7965540ab152a4a95945482c87":[60,0,87,20], "structmpchanger__params.html#a3cb4141ca61b0b9a5584239386dbbe46":[60,0,87,17], "structmpchanger__params.html#a3f0a338901d8e6195eb872b0f2098e73":[60,0,87,22], "structmpchanger__params.html#a41f51745fc0e63d75d15fc80aaa4a29e":[60,0,87,18], @@ -247,7 +249,5 @@ var NAVTREEINDEX16 = "structrf__context.html#aafce196b029d2578151275acd07ccb82":[60,0,113,24], "structrf__context.html#ab5ffc4d8ba9d3d8a298414dc8e4efd2a":[60,0,113,30], "structrf__context.html#ac1f3330674d320c9d0ae408c551be6b8":[60,0,113,50], -"structrf__context.html#acacad775c2c168f900deaa6c90481319":[60,0,113,51], -"structrf__context.html#acee2095e72fb2428c498f62e21800026":[60,0,113,15], -"structrf__context.html#ad06c1d1a2295fbdf455df0250dfb2523":[60,0,113,9] +"structrf__context.html#acacad775c2c168f900deaa6c90481319":[60,0,113,51] }; diff --git a/public/navtreeindex17.js b/public/navtreeindex17.js index 35100e958..98cafb3a9 100644 --- a/public/navtreeindex17.js +++ b/public/navtreeindex17.js @@ -1,5 +1,7 @@ var NAVTREEINDEX17 = { +"structrf__context.html#acee2095e72fb2428c498f62e21800026":[60,0,113,15], +"structrf__context.html#ad06c1d1a2295fbdf455df0250dfb2523":[60,0,113,9], "structrf__context.html#ad4ea260ce64d09deea422b9067ee70b4":[60,0,113,25], "structrf__context.html#ada1ddaadc15cc017185d7114cbea4d56":[60,0,113,26], "structrf__context.html#adeee1ea1db2e19b99e4deb80b8a6a960":[60,0,113,23], @@ -247,7 +249,5 @@ var NAVTREEINDEX17 = "www__plugin_8c.html#ab0a82693798a5534d8657ba9f7634057":[61,0,169,15], "www__plugin_8c.html#abc7a556e81fb1152b1e9bc68406b983f":[61,0,169,12], "www__plugin_8c.html#ac6b72af8913086b2ec590a675473f2a1":[61,0,169,23], -"www__plugin_8c.html#adb58ee650d75d952dd5802fbba9e9b0e":[61,0,169,9], -"www__plugin_8c.html#ae38b4f2efc412b6256221d9a33a03cd4":[61,0,169,19], -"www__plugin_8c.html#ae6ccaf3df9ea3201521eb62dd9943b00":[61,0,169,11] +"www__plugin_8c.html#adb58ee650d75d952dd5802fbba9e9b0e":[61,0,169,9] }; diff --git a/public/navtreeindex18.js b/public/navtreeindex18.js index f2b263e41..4f50b0866 100644 --- a/public/navtreeindex18.js +++ b/public/navtreeindex18.js @@ -1,5 +1,7 @@ var NAVTREEINDEX18 = { +"www__plugin_8c.html#ae38b4f2efc412b6256221d9a33a03cd4":[61,0,169,19], +"www__plugin_8c.html#ae6ccaf3df9ea3201521eb62dd9943b00":[61,0,169,11], "www__plugin_8c.html#ae8ced85169ca68aae1ed7f14b488e5b8":[61,0,169,25], "www__plugin_8c.html#ae91c9382d5bb29416eab7de18c6d6b8d":[61,0,169,13], "www__plugin_8c.html#ae9973fcef32044b1238648c4695c3f23":[61,0,169,14], diff --git a/public/navtreeindex2.js b/public/navtreeindex2.js index 6a76e6599..145bc7285 100644 --- a/public/navtreeindex2.js +++ b/public/navtreeindex2.js @@ -1,5 +1,6 @@ var NAVTREEINDEX2 = { +"python__wrapper__protocol_8h.html#aaa90f5541895f5c3dedaa16c15d80de7":[61,0,29,2], "python__wrapper__protocol_8h.html#ab223d3563d16258e33e8dfae0ee41e5d":[61,0,29,4], "python__wrapper__protocol_8h.html#ad9e2034841e5b0a10291ad015e4bfc46":[61,0,29,5], "python__wrapper__protocol_8h_source.html":[61,0,29], @@ -248,6 +249,5 @@ var NAVTREEINDEX2 = "rcw_8c.html#a7b60c2cb02c4a893d8d2054f0bb53790":[61,0,40,36], "rcw_8c.html#a7e71031254421ccb10e0c29699cc9523":[61,0,40,148], "rcw_8c.html#a80f465cb910660ded402fb0e7bb3a7fd":[61,0,40,12], -"rcw_8c.html#a818f2fce53d01e503b6a466979aac606":[61,0,40,138], -"rcw_8c.html#a82c93bbb1ab73807b366b86928c37946":[61,0,40,81] +"rcw_8c.html#a818f2fce53d01e503b6a466979aac606":[61,0,40,138] }; diff --git a/public/navtreeindex3.js b/public/navtreeindex3.js index 93b29ec24..0e145f8c8 100644 --- a/public/navtreeindex3.js +++ b/public/navtreeindex3.js @@ -1,5 +1,6 @@ var NAVTREEINDEX3 = { +"rcw_8c.html#a82c93bbb1ab73807b366b86928c37946":[61,0,40,81], "rcw_8c.html#a89a2fc0dfcdc5e260cc3af191a7115ee":[61,0,40,114], "rcw_8c.html#a8a789be4e849f79bf8064bc47ba85ea3":[61,0,40,64], "rcw_8c.html#a8af64223778fc6adee796f5d98f17fd6":[61,0,40,67], @@ -248,6 +249,5 @@ var NAVTREEINDEX3 = "rdp__plugin_8c.html#a0d029a3287dd4abf1e7c602e3c556cde":[61,0,54,36], "rdp__plugin_8c.html#a124b97e9be7ba4047d910a1048a4507b":[61,0,54,64], "rdp__plugin_8c.html#a12e0199d082d510648cb27168486f4e0":[61,0,54,15], -"rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de":[61,0,54,48], -"rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f":[61,0,54,44] +"rdp__plugin_8c.html#a16227448ff442f2faacb0156f415d7de":[61,0,54,48] }; diff --git a/public/navtreeindex4.js b/public/navtreeindex4.js index 145b8b476..426f7a88b 100644 --- a/public/navtreeindex4.js +++ b/public/navtreeindex4.js @@ -1,5 +1,6 @@ var NAVTREEINDEX4 = { +"rdp__plugin_8c.html#a18f77c3f0788ca8df08ebc80c72b553f":[61,0,54,44], "rdp__plugin_8c.html#a1b89199f25081137222e72a4be577ea4":[61,0,54,35], "rdp__plugin_8c.html#a1beaae641f40fc4fbcafe84846a2eb76":[61,0,54,6], "rdp__plugin_8c.html#a1d631ea2efdaff13c9f372fe487d5e4c":[61,0,54,8], @@ -248,6 +249,5 @@ var NAVTREEINDEX4 = "remmina__chat__window_8h.html#ad80f333f09507226276104e015267fb4":[61,0,69,3], "remmina__chat__window_8h.html#afac452bad12df11e7d37cfaa07488446":[61,0,69,2], "remmina__chat__window_8h_source.html":[61,0,69], -"remmina__crypt_8c.html":[61,0,70], -"remmina__crypt_8c.html#a3fe2fa245d401146adf02a3a8f996ab9":[61,0,70,0] +"remmina__crypt_8c.html":[61,0,70] }; diff --git a/public/navtreeindex5.js b/public/navtreeindex5.js index 72d142748..1cc2529d5 100644 --- a/public/navtreeindex5.js +++ b/public/navtreeindex5.js @@ -1,5 +1,6 @@ var NAVTREEINDEX5 = { +"remmina__crypt_8c.html#a3fe2fa245d401146adf02a3a8f996ab9":[61,0,70,0], "remmina__crypt_8c.html#aa02cf0fed3eb68d6a89815c3ba3bf7b1":[61,0,70,1], "remmina__crypt_8c.html#ae097c169aefdd5d83a57fc1bde511171":[61,0,70,2], "remmina__crypt_8c_source.html":[61,0,70], @@ -248,6 +249,5 @@ var NAVTREEINDEX5 = "remmina__ftp__client_8c.html#a2aaef09531b1694c183a5ba530fcc2fa":[61,0,86,45], "remmina__ftp__client_8c.html#a2e39a69f60d38b46bc603df0ae368aed":[61,0,86,21], "remmina__ftp__client_8c.html#a33e4993b60c36eae89a6a0a943d28141":[61,0,86,43], -"remmina__ftp__client_8c.html#a3872b49a2c0bea73d51d0500c5cee488":[61,0,86,16], -"remmina__ftp__client_8c.html#a3a2dc5070f06ae0fcd25fbfe1587ab5c":[61,0,86,33] +"remmina__ftp__client_8c.html#a3872b49a2c0bea73d51d0500c5cee488":[61,0,86,16] }; diff --git a/public/navtreeindex6.js b/public/navtreeindex6.js index 8d166d8c4..f43d999fb 100644 --- a/public/navtreeindex6.js +++ b/public/navtreeindex6.js @@ -1,5 +1,6 @@ var NAVTREEINDEX6 = { +"remmina__ftp__client_8c.html#a3a2dc5070f06ae0fcd25fbfe1587ab5c":[61,0,86,33], "remmina__ftp__client_8c.html#a3cb68d802d3c35dff5cee970d3c33bd5":[61,0,86,61], "remmina__ftp__client_8c.html#a437dba2fc4f44f119501e9b53c688dd1":[61,0,86,25], "remmina__ftp__client_8c.html#a49d1fee26f8c7fb210b46d83f92b08e2":[61,0,86,13], @@ -248,6 +249,5 @@ var NAVTREEINDEX6 = "remmina__main_8c.html#aac3aa116a8d8b527f1aa61b7395b4b32":[61,0,94,54], "remmina__main_8c.html#aace9ecdd0b74d392ad6ed541bd605c1c":[61,0,94,89], "remmina__main_8c.html#ab08aae433b625c3a84330630fe2bd2d5":[61,0,94,83], -"remmina__main_8c.html#ab0d22f0e3571eb80886acb0c68005800":[61,0,94,23], -"remmina__main_8c.html#ab203476099a5ad6e889f91c8e05d577d":[61,0,94,60] +"remmina__main_8c.html#ab0d22f0e3571eb80886acb0c68005800":[61,0,94,23] }; diff --git a/public/navtreeindex7.js b/public/navtreeindex7.js index caf993667..a2e5b45ea 100644 --- a/public/navtreeindex7.js +++ b/public/navtreeindex7.js @@ -1,5 +1,6 @@ var NAVTREEINDEX7 = { +"remmina__main_8c.html#ab203476099a5ad6e889f91c8e05d577d":[61,0,94,60], "remmina__main_8c.html#ab2a1a54320992fb796850ffbd6a63589":[61,0,94,82], "remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89":[61,0,94,91], "remmina__main_8c.html#ab98d51c96a87fddaa2d5d6d4614bafa8":[61,0,94,53], @@ -248,6 +249,5 @@ var NAVTREEINDEX7 = "remmina__pref_8c.html":[61,0,115], "remmina__pref_8c.html#a0208d5dc8197423da67e5967aafb7a05":[61,0,115,7], "remmina__pref_8c.html#a0296a8f5b359547a0aa4cbffb914edd3":[61,0,115,6], -"remmina__pref_8c.html#a0dd25f5b3a055b936a5fa327bc71f19c":[61,0,115,19], -"remmina__pref_8c.html#a10b667eb7a100d6ac8d9544697f22743":[61,0,115,28] +"remmina__pref_8c.html#a0dd25f5b3a055b936a5fa327bc71f19c":[61,0,115,19] }; diff --git a/public/navtreeindex8.js b/public/navtreeindex8.js index 2efa9d006..d2da6d94a 100644 --- a/public/navtreeindex8.js +++ b/public/navtreeindex8.js @@ -1,5 +1,6 @@ var NAVTREEINDEX8 = { +"remmina__pref_8c.html#a10b667eb7a100d6ac8d9544697f22743":[61,0,115,28], "remmina__pref_8c.html#a12e52ee4ab89912280605e36ee069267":[61,0,115,9], "remmina__pref_8c.html#a1a695b64e75d6f49de220dc777e57714":[61,0,115,14], "remmina__pref_8c.html#a23aaa111a41eb1c80df5e85af25e7e44":[61,0,115,25], @@ -248,6 +249,5 @@ var NAVTREEINDEX8 = "remmina__protocol__widget_8h.html#a172fa9cf2ce196c9846a3e47ea9036b4":[61,0,120,77], "remmina__protocol__widget_8h.html#a1cae52cad394f317c712eb4fd709d261":[61,0,120,72], "remmina__protocol__widget_8h.html#a2067c19b160eb43bddda6c6c6e8d6045":[61,0,120,35], -"remmina__protocol__widget_8h.html#a2506e80d482c34532d0e534856452069":[61,0,120,22], -"remmina__protocol__widget_8h.html#a2551dd6f53480609596d2695040fba5d":[61,0,120,78] +"remmina__protocol__widget_8h.html#a2506e80d482c34532d0e534856452069":[61,0,120,22] }; diff --git a/public/navtreeindex9.js b/public/navtreeindex9.js index b7d738a6c..160cfe6da 100644 --- a/public/navtreeindex9.js +++ b/public/navtreeindex9.js @@ -1,5 +1,6 @@ var NAVTREEINDEX9 = { +"remmina__protocol__widget_8h.html#a2551dd6f53480609596d2695040fba5d":[61,0,120,78], "remmina__protocol__widget_8h.html#a25bcb2ae99449624fed6f770218e3d25":[61,0,120,20], "remmina__protocol__widget_8h.html#a262d75d6b535bd8c623e607805db4084":[61,0,120,50], "remmina__protocol__widget_8h.html#a278e13b53a4fdb65498e00e908edb98d":[61,0,120,53], @@ -248,6 +249,5 @@ var NAVTREEINDEX9 = "remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553":[61,0,133,21], "remmina__ssh_8c.html#ad6f3f5c196175412049af0c440414e65":[61,0,133,7], "remmina__ssh_8c.html#adfe0e9338fec4a1c03677595c15514d1":[61,0,133,18], -"remmina__ssh_8c.html#af39f90e2343e62348226aed0d7496dda":[61,0,133,19], -"remmina__ssh_8c_source.html":[61,0,133] +"remmina__ssh_8c.html#af39f90e2343e62348226aed0d7496dda":[61,0,133,19] }; diff --git a/public/python__wrapper__entry_8c_source.html b/public/python__wrapper__entry_8c_source.html index a2e4dd160..30c0c6702 100644 --- a/public/python__wrapper__entry_8c_source.html +++ b/public/python__wrapper__entry_8c_source.html @@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('python__wrapper__entry_8c_source.html'
    const gchar * version
    Definition: plugin.h:95
    const char * ATTR_VERSION
    void * python_wrapper_malloc(int bytes)
    Allocates memory and checks for errors before returning.
    -
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:280
    +
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:304
    const gchar * domain
    Definition: plugin.h:94
    const gchar * name
    Definition: plugin.h:92
    const gchar * description
    Definition: plugin.h:93
    diff --git a/public/python__wrapper__file_8c_source.html b/public/python__wrapper__file_8c_source.html index 37af6f364..bc69657b1 100644 --- a/public/python__wrapper__file_8c_source.html +++ b/public/python__wrapper__file_8c_source.html @@ -99,7 +99,7 @@ $(document).ready(function(){initNavTree('python__wrapper__file_8c_source.html',
    RemminaFile *(* import_func)(struct _RemminaFilePlugin *instance, const gchar *from_file)
    Definition: plugin.h:108
    const char * ATTR_VERSION
    void * python_wrapper_malloc(int bytes)
    Allocates memory and checks for errors before returning.
    -
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:280
    +
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:304
    RemminaFilePlugin * file_plugin
    const gchar * domain
    Definition: plugin.h:104
    void python_wrapper_file_init(void)
    Initializes the Python plugin specialisation for file plugins.
    diff --git a/public/python__wrapper__pref_8c_source.html b/public/python__wrapper__pref_8c_source.html index 5c4619778..e9869b5a6 100644 --- a/public/python__wrapper__pref_8c_source.html +++ b/public/python__wrapper__pref_8c_source.html @@ -93,7 +93,7 @@ $(document).ready(function(){initNavTree('python__wrapper__pref_8c_source.html',
    gboolean python_wrapper_check_attribute(PyObject *instance, const char *attr_name)
    Checks if a given attribute exists.
    const char * ATTR_VERSION
    void * python_wrapper_malloc(int bytes)
    Allocates memory and checks for errors before returning.
    -
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:280
    +
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:304
    Contains the specialisation of RemminaPluginFile plugins in Python.
    const gchar * domain
    Definition: plugin.h:128
    GtkWidget * get_pywidget(PyObject *obj)
    Extracts a GtkWidget from a PyObject instance.
    diff --git a/public/python__wrapper__protocol_8c_source.html b/public/python__wrapper__protocol_8c_source.html index b5cc819c5..9ac686b7e 100644 --- a/public/python__wrapper__protocol_8c_source.html +++ b/public/python__wrapper__protocol_8c_source.html @@ -105,7 +105,7 @@ $(document).ready(function(){initNavTree('python__wrapper__protocol_8c_source.ht
    Contains the implementation of the Python module &#39;remmina&#39;, provided to interface with the applicatio...
    void * python_wrapper_malloc(int bytes)
    Allocates memory and checks for errors before returning.
    void(* init)(RemminaProtocolWidget *gp)
    Definition: plugin.h:79
    -
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:280
    +
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:304
    Definition: plugin.h:47
    long python_wrapper_get_attribute_long(PyObject *instance, const char *attr_name, long def)
    Gets the attribute as long value.
    const RemminaProtocolFeature * features
    Definition: plugin.h:77
    diff --git a/public/python__wrapper__remmina_8c_source.html b/public/python__wrapper__remmina_8c_source.html index 8d09ba4f2..bc68e478d 100644 --- a/public/python__wrapper__remmina_8c_source.html +++ b/public/python__wrapper__remmina_8c_source.html @@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('python__wrapper__remmina_8c_source.htm
    Definition: types.h:53
    void * python_wrapper_malloc(int bytes)
    Allocates memory and checks for errors before returning.
    static PyMethodDef remmina_python_module_type_methods[]
    Declares functions for the Remmina module.
    -
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:280
    +
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:304
    static PyObject * python_wrapper_generic_to_string(PyGeneric *self, PyObject *args)
    Definition: plugin.h:47
    diff --git a/public/python__wrapper__secret_8c_source.html b/public/python__wrapper__secret_8c_source.html index 0af1eea8b..f50d32abd 100644 --- a/public/python__wrapper__secret_8c_source.html +++ b/public/python__wrapper__secret_8c_source.html @@ -97,7 +97,7 @@ $(document).ready(function(){initNavTree('python__wrapper__secret_8c_source.html
    const char * ATTR_VERSION
    void * python_wrapper_malloc(int bytes)
    Allocates memory and checks for errors before returning.
    int init_order
    Definition: plugin.h:141
    -
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:280
    +
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:304
    const gchar * version
    Definition: plugin.h:140
    const gchar * domain
    Definition: plugin.h:139
    gboolean(* is_service_available)(struct _RemminaSecretPlugin *instance)
    Definition: plugin.h:144
    diff --git a/public/python__wrapper__tool_8c_source.html b/public/python__wrapper__tool_8c_source.html index 58845a4ad..8cdd1fca1 100644 --- a/public/python__wrapper__tool_8c_source.html +++ b/public/python__wrapper__tool_8c_source.html @@ -95,7 +95,7 @@ $(document).ready(function(){initNavTree('python__wrapper__tool_8c_source.html',
    gboolean python_wrapper_check_attribute(PyObject *instance, const char *attr_name)
    Checks if a given attribute exists.
    const char * ATTR_VERSION
    void * python_wrapper_malloc(int bytes)
    Allocates memory and checks for errors before returning.
    -
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:280
    +
    static RemminaProtocolPlugin remmina_plugin
    Definition: exec_plugin.c:304
    void(* exec_func)(GtkMenuItem *item, struct _RemminaToolPlugin *instance)
    Definition: plugin.h:121
    void python_wrapper_tool_init(void)
    Initializes the Python plugin specialisation for tool plugins.
    RemminaToolPlugin * tool_plugin
    diff --git a/public/search/all_10.js b/public/search/all_10.js index 419f42cad..b07f39d10 100644 --- a/public/search/all_10.js +++ b/public/search/all_10.js @@ -27,6 +27,7 @@ var searchData= ['pformatlist',['pFormatList',['../structremmina__plugin__rdp__event.html#a02c2d40efeac883dcc6294be9782e082',1,'remmina_plugin_rdp_event']]], ['physicalheight',['physicalHeight',['../structremmina__plugin__rdp__event.html#aab8e2356f6619d11ecc80b8b767ca815',1,'remmina_plugin_rdp_event']]], ['physicalwidth',['physicalWidth',['../structremmina__plugin__rdp__event.html#af62c17a8001e045d3f9e781a0a5089ef',1,'remmina_plugin_rdp_event']]], + ['pid',['pid',['../struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6',1,'_RemminaPluginExecData']]], ['pidx2go',['pidx2go',['../struct___remmina_plugin_x2_go_data.html#a096eb53491e1297c8119badfb75df393',1,'_RemminaPluginX2GoData']]], ['pixmap',['pixmap',['../structrf__bitmap.html#a6210ab69c4338e23396f6838a255a50b',1,'rf_bitmap::pixmap()'],['../structrf__glyph.html#a19abe408a1c2a4c0c27ecddafb60cc22',1,'rf_glyph::pixmap()']]], ['plugin',['plugin',['../struct___remmina_protocol_widget_priv.html#a2381772c96a26aafc98d347d210dbfe0',1,'_RemminaProtocolWidgetPriv::plugin()'],['../struct___remmina_protocol_widget.html#aa7b9f54b6bb8bb01c24a8740b9c3633c',1,'_RemminaProtocolWidget::plugin()']]], diff --git a/public/search/all_12.js b/public/search/all_12.js index d6601f137..ef0c69443 100644 --- a/public/search/all_12.js +++ b/public/search/all_12.js @@ -1425,7 +1425,7 @@ var searchData= ['remmina_5fssh_5ftunnel_5fcancel_5faccept',['remmina_ssh_tunnel_cancel_accept',['../remmina__ssh_8h.html#ae9f52b1a3a545acae8c93007e20ec909',1,'remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5ffree',['remmina_ssh_tunnel_free',['../remmina__ssh_8h.html#a223f8dd7a678bcec2ece40a2d8f7ea06',1,'remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5fnew_5ffrom_5ffile',['remmina_ssh_tunnel_new_from_file',['../remmina__ssh_8h.html#abf04fd329ab77bbd4f6aa1cb1eaa349d',1,'remmina_ssh.h']]], - ['remmina_5fssh_5ftunnel_5fopen',['remmina_ssh_tunnel_open',['../remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53',1,'remmina_ssh_tunnel_open(RemminaSSHTunnel *tunnel, const gchar *host, gint port, gint local_port): remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN(): remmina_ssh.h']]], + ['remmina_5fssh_5ftunnel_5fopen',['REMMINA_SSH_TUNNEL_OPEN',['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN(): remmina_ssh.h'],['../remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53',1,'remmina_ssh_tunnel_open(RemminaSSHTunnel *tunnel, const gchar *host, gint port, gint local_port): remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5freverse',['remmina_ssh_tunnel_reverse',['../remmina__ssh_8h.html#ae47c8270267b02b9c0ff5b36074101c2',1,'remmina_ssh_tunnel_reverse(RemminaSSHTunnel *tunnel, gint port, gint local_port): remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798ae14c0d50235951946ca18866a1329459',1,'REMMINA_SSH_TUNNEL_REVERSE(): remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5fterminated',['remmina_ssh_tunnel_terminated',['../remmina__ssh_8h.html#aeb20d31243a4d30e469a34fe01684e38',1,'remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5fxport',['REMMINA_SSH_TUNNEL_XPORT',['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798afbca41cd7b252c2594e1d53cd081b326',1,'REMMINA_SSH_TUNNEL_XPORT(): remmina_ssh.h'],['../remmina__ssh_8h.html#aba49db2ced40e21e8adfad69dcfda2c4',1,'remmina_ssh_tunnel_xport(RemminaSSHTunnel *tunnel, gboolean bindlocalhost): remmina_ssh.h']]], @@ -1600,7 +1600,7 @@ var searchData= ['remminalanguagewrapperplugin',['RemminaLanguageWrapperPlugin',['../plugin_8h.html#a4cc4789bb1ba76d339b61b364399c304',1,'plugin.h']]], ['remminalogwindow',['RemminaLogWindow',['../remmina__log_8c.html#ad5a920aad512279bb932bcb26a2c3c19',1,'remmina_log.c']]], ['remminalogwindowclass',['RemminaLogWindowClass',['../remmina__log_8c.html#a5682db89dd84e1c413326e17a4f79dbe',1,'remmina_log.c']]], - ['remminamain',['RemminaMain',['../remmina__main_8h.html#ad17d9a48f2b3f84e17baa91104bc6cb1',1,'RemminaMain(): remmina_main.h'],['../remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89',1,'remminamain(): remmina_main.c']]], + ['remminamain',['remminamain',['../remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89',1,'remminamain(): remmina_main.c'],['../remmina__main_8h.html#ad17d9a48f2b3f84e17baa91104bc6cb1',1,'RemminaMain(): remmina_main.h']]], ['remminamainpriv',['RemminaMainPriv',['../remmina__main_8h.html#a49e7c1b5d4dcfd155886e39d78b3d052',1,'remmina_main.h']]], ['remminamessagepanelcallback',['RemminaMessagePanelCallback',['../remmina__message__panel_8h.html#ae2923c94c1caf1ac4a7eb48361d2670a',1,'remmina_message_panel.h']]], ['remminamessagepanelflags',['RemminaMessagePanelFlags',['../types_8h.html#a341a0a8b6509633809d99348cc3ba486',1,'types.h']]], diff --git a/public/search/all_14.js b/public/search/all_14.js index 74cce3524..f2f1b068f 100644 --- a/public/search/all_14.js +++ b/public/search/all_14.js @@ -43,7 +43,7 @@ var searchData= ['toolbar_5fplacement_5ftop',['TOOLBAR_PLACEMENT_TOP',['../remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a069738542d6980f9594299ab57221a7f',1,'remmina_pref.h']]], ['toolbarplace_5fsignal',['TOOLBARPLACE_SIGNAL',['../rcw_8c.html#adf764cbdea00d65edcd07bb9953ad2b7aa9941863b5633ddecb019f793f2f7668',1,'rcw.c']]], ['tooltip',['tooltip',['../struct___remmina_f_t_p_task.html#ac2b00cace6fd885736792664843be667',1,'_RemminaFTPTask']]], - ['top',['Top',['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()'],['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()']]], + ['top',['top',['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()'],['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()']]], ['transfer_5fclip_5fcond',['transfer_clip_cond',['../structrf__clipboard.html#acf5bf9da1a18e21409c4b10368f8dfd7',1,'rf_clipboard']]], ['transfer_5fclip_5fmutex',['transfer_clip_mutex',['../structrf__clipboard.html#a5c6be1637ed9e2ce72ffde2ed5400205',1,'rf_clipboard']]], ['translated_5fkeycode',['translated_keycode',['../structremmina__plugin__rdp__keymap__entry.html#aa63271d75f6dfda81584ddfb7c60b2a1',1,'remmina_plugin_rdp_keymap_entry']]], diff --git a/public/search/all_3.js b/public/search/all_3.js index 37274b094..0bf74d284 100644 --- a/public/search/all_3.js +++ b/public/search/all_3.js @@ -18,6 +18,7 @@ var searchData= ['cancel_5ftask',['cancel_task',['../struct___remmina_f_t_p_client_class.html#a99fedf4b912c0bb38662644fe4798a93',1,'_RemminaFTPClientClass']]], ['cancel_5ftask_5fsignal',['CANCEL_TASK_SIGNAL',['../remmina__ftp__client_8c.html#adc29c2ff13d900c2f185ee95427fb06ca53f24253e039f2efdaa4c7830958df03',1,'remmina_ftp_client.c']]], ['cancelled',['cancelled',['../structremmina__masterthread__exec__data.html#ac390f60a6ecc7312c7e4cbc1c4de0a63',1,'remmina_masterthread_exec_data::cancelled()'],['../structon_main_thread__cb__data.html#a75eab61445fbabacaa34f95e2437ea75',1,'onMainThread_cb_data::cancelled()']]], + ['cb_5fchild_5fsetup',['cb_child_setup',['../exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74',1,'exec_plugin.c']]], ['cb_5fchild_5fwatch',['cb_child_watch',['../exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71',1,'exec_plugin.c']]], ['cb_5fclosewidget',['cb_closewidget',['../remmina__exec_8c.html#a0ffd51ed283da4640c920e75e89e694a',1,'remmina_exec.c']]], ['cb_5ferr_5fwatch',['cb_err_watch',['../exec__plugin_8c.html#ab43db37b96c68093747620fbde879327',1,'exec_plugin.c']]], diff --git a/public/search/functions_3.js b/public/search/functions_3.js index 9b49ddcf1..4b11c8cb0 100644 --- a/public/search/functions_3.js +++ b/public/search/functions_3.js @@ -5,6 +5,7 @@ var searchData= ['cancel_5fopen_5fconnection_5fcb',['cancel_open_connection_cb',['../remmina__protocol__widget_8c.html#a4fb4c2252289e8e891376db6279ef8f5',1,'remmina_protocol_widget.c']]], ['cancel_5fstart_5fdirect_5ftunnel_5fcb',['cancel_start_direct_tunnel_cb',['../remmina__protocol__widget_8c.html#a0a93da80662ff18b93270ced59243ce3',1,'remmina_protocol_widget.c']]], ['cancel_5fstart_5freverse_5ftunnel_5fcb',['cancel_start_reverse_tunnel_cb',['../remmina__protocol__widget_8c.html#aeffe07c6412286d99ba04f05fe74aeac',1,'remmina_protocol_widget.c']]], + ['cb_5fchild_5fsetup',['cb_child_setup',['../exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74',1,'exec_plugin.c']]], ['cb_5fchild_5fwatch',['cb_child_watch',['../exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71',1,'exec_plugin.c']]], ['cb_5fclosewidget',['cb_closewidget',['../remmina__exec_8c.html#a0ffd51ed283da4640c920e75e89e694a',1,'remmina_exec.c']]], ['cb_5ferr_5fwatch',['cb_err_watch',['../exec__plugin_8c.html#ab43db37b96c68093747620fbde879327',1,'exec_plugin.c']]], diff --git a/public/search/variables_13.js b/public/search/variables_13.js index 58ce55ace..12551c7b0 100644 --- a/public/search/variables_13.js +++ b/public/search/variables_13.js @@ -25,7 +25,7 @@ var searchData= ['toolbar_5fplace',['toolbar_place',['../struct___remmina_connection_window_class.html#aeb815c87f3bddad607a61d293eef661d',1,'_RemminaConnectionWindowClass']]], ['toolbar_5fplacement',['toolbar_placement',['../struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133',1,'_RemminaPref']]], ['tooltip',['tooltip',['../struct___remmina_f_t_p_task.html#ac2b00cace6fd885736792664843be667',1,'_RemminaFTPTask']]], - ['top',['Top',['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()'],['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()']]], + ['top',['top',['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()'],['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()']]], ['transfer_5fclip_5fcond',['transfer_clip_cond',['../structrf__clipboard.html#acf5bf9da1a18e21409c4b10368f8dfd7',1,'rf_clipboard']]], ['transfer_5fclip_5fmutex',['transfer_clip_mutex',['../structrf__clipboard.html#a5c6be1637ed9e2ce72ffde2ed5400205',1,'rf_clipboard']]], ['translated_5fkeycode',['translated_keycode',['../structremmina__plugin__rdp__keymap__entry.html#aa63271d75f6dfda81584ddfb7c60b2a1',1,'remmina_plugin_rdp_keymap_entry']]], diff --git a/public/search/variables_f.js b/public/search/variables_f.js index 3cfcb5c76..1cbcdb6d9 100644 --- a/public/search/variables_f.js +++ b/public/search/variables_f.js @@ -20,6 +20,7 @@ var searchData= ['pformatlist',['pFormatList',['../structremmina__plugin__rdp__event.html#a02c2d40efeac883dcc6294be9782e082',1,'remmina_plugin_rdp_event']]], ['physicalheight',['physicalHeight',['../structremmina__plugin__rdp__event.html#aab8e2356f6619d11ecc80b8b767ca815',1,'remmina_plugin_rdp_event']]], ['physicalwidth',['physicalWidth',['../structremmina__plugin__rdp__event.html#af62c17a8001e045d3f9e781a0a5089ef',1,'remmina_plugin_rdp_event']]], + ['pid',['pid',['../struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6',1,'_RemminaPluginExecData']]], ['pidx2go',['pidx2go',['../struct___remmina_plugin_x2_go_data.html#a096eb53491e1297c8119badfb75df393',1,'_RemminaPluginX2GoData']]], ['pixmap',['pixmap',['../structrf__bitmap.html#a6210ab69c4338e23396f6838a255a50b',1,'rf_bitmap::pixmap()'],['../structrf__glyph.html#a19abe408a1c2a4c0c27ecddafb60cc22',1,'rf_glyph::pixmap()']]], ['plugin',['plugin',['../struct___remmina_protocol_widget_priv.html#a2381772c96a26aafc98d347d210dbfe0',1,'_RemminaProtocolWidgetPriv::plugin()'],['../struct___remmina_protocol_widget.html#aa7b9f54b6bb8bb01c24a8740b9c3633c',1,'_RemminaProtocolWidget::plugin()']]], diff --git a/public/struct___remmina_plugin_exec_data.html b/public/struct___remmina_plugin_exec_data.html index 54b5d7f0d..6135d40b7 100644 --- a/public/struct___remmina_plugin_exec_data.html +++ b/public/struct___remmina_plugin_exec_data.html @@ -99,6 +99,8 @@ Data Fields   GtkWidget * sw   +GPid pid

    Detailed Description

    @@ -150,6 +152,22 @@ Data Fields

    Definition at line 52 of file exec_plugin.c.

    +
    + + +

    ◆ pid

    + +
    +
    + + + + +
    GPid _RemminaPluginExecData::pid
    +
    + +

    Definition at line 56 of file exec_plugin.c.

    +
    diff --git a/public/struct___remmina_plugin_exec_data.js b/public/struct___remmina_plugin_exec_data.js index a597a8458..56f60129e 100644 --- a/public/struct___remmina_plugin_exec_data.js +++ b/public/struct___remmina_plugin_exec_data.js @@ -3,5 +3,6 @@ var struct___remmina_plugin_exec_data = [ "err", "struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4", null ], [ "log_buffer", "struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41", null ], [ "log_view", "struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1", null ], + [ "pid", "struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6", null ], [ "sw", "struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb", null ] ]; \ No newline at end of file -- cgit v1.2.3