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

gitlab.com/Remmina/remminadoc.gitlab.io.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2023-06-13 16:42:07 +0300
committerAntenore Gatta <antenore@simbiosi.org>2023-06-13 16:42:07 +0300
commit801b447b3cb7b3fd7366716d72b2a868886bd751 (patch)
treeac1dc087657aa591daab94a55e02559172aba113
parent08f5133c32a3626e3ed8ec041a0df814414eb426 (diff)
Automatic doc build by remmina-ci
-rw-r--r--public/exec__plugin_8c.html60
-rw-r--r--public/exec__plugin_8c.js1
-rw-r--r--public/exec__plugin_8c_source.html22
-rw-r--r--public/functions_p.html3
-rw-r--r--public/functions_vars_p.html3
-rw-r--r--public/globals_c.html3
-rw-r--r--public/globals_func_c.html3
-rw-r--r--public/globals_r.html12
-rw-r--r--public/navtreedata.js36
-rw-r--r--public/navtreeindex0.js24
-rw-r--r--public/navtreeindex1.js4
-rw-r--r--public/navtreeindex10.js4
-rw-r--r--public/navtreeindex11.js4
-rw-r--r--public/navtreeindex12.js8
-rw-r--r--public/navtreeindex13.js6
-rw-r--r--public/navtreeindex14.js6
-rw-r--r--public/navtreeindex15.js6
-rw-r--r--public/navtreeindex16.js6
-rw-r--r--public/navtreeindex17.js6
-rw-r--r--public/navtreeindex18.js2
-rw-r--r--public/navtreeindex2.js4
-rw-r--r--public/navtreeindex3.js4
-rw-r--r--public/navtreeindex4.js4
-rw-r--r--public/navtreeindex5.js4
-rw-r--r--public/navtreeindex6.js4
-rw-r--r--public/navtreeindex7.js4
-rw-r--r--public/navtreeindex8.js4
-rw-r--r--public/navtreeindex9.js4
-rw-r--r--public/python__wrapper__entry_8c_source.html2
-rw-r--r--public/python__wrapper__file_8c_source.html2
-rw-r--r--public/python__wrapper__pref_8c_source.html2
-rw-r--r--public/python__wrapper__protocol_8c_source.html2
-rw-r--r--public/python__wrapper__remmina_8c_source.html2
-rw-r--r--public/python__wrapper__secret_8c_source.html2
-rw-r--r--public/python__wrapper__tool_8c_source.html2
-rw-r--r--public/search/all_10.js1
-rw-r--r--public/search/all_12.js4
-rw-r--r--public/search/all_14.js2
-rw-r--r--public/search/all_3.js1
-rw-r--r--public/search/functions_3.js1
-rw-r--r--public/search/variables_13.js2
-rw-r--r--public/search/variables_f.js1
-rw-r--r--public/struct___remmina_plugin_exec_data.html18
-rw-r--r--public/struct___remmina_plugin_exec_data.js1
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</h2></td></tr>
Functions</h2></td></tr>
<tr class="memitem:ae5fe6643dc64e9250dc2a33e9f266e71"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a> (GPid pid, gint status)</td></tr>
<tr class="separator:ae5fe6643dc64e9250dc2a33e9f266e71"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a26f6bd87259193e03faa2b969f92dc74"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">cb_child_setup</a> (gpointer data)</td></tr>
+<tr class="separator:a26f6bd87259193e03faa2b969f92dc74"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6294507761837488c3777f21096d219"><td class="memItemLeft" align="right" valign="top">static gboolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="el" href="types_8h.html#a3fc3247f5a12b842032241d0cdde9cf4">RemminaProtocolWidget</a> *gp)</td></tr>
<tr class="separator:aa6294507761837488c3777f21096d219"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab43db37b96c68093747620fbde879327"><td class="memItemLeft" align="right" valign="top">static gboolean&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="el" href="types_8h.html#a3fc3247f5a12b842032241d0cdde9cf4">RemminaProtocolWidget</a> *gp)</td></tr>
@@ -146,6 +148,34 @@ Variables</h2></td></tr>
</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
+<a id="a26f6bd87259193e03faa2b969f92dc74"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26f6bd87259193e03faa2b969f92dc74">&#9670;&nbsp;</a></span>cb_child_setup()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void cb_child_setup </td>
+ <td>(</td>
+ <td class="paramtype">gpointer&#160;</td>
+ <td class="paramname"><em>data</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00070">70</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+
+</div>
+</div>
<a id="ae5fe6643dc64e9250dc2a33e9f266e71"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5fe6643dc64e9250dc2a33e9f266e71">&#9670;&nbsp;</a></span>cb_child_watch()</h2>
@@ -180,7 +210,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00063">63</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00064">64</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -224,7 +254,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00091">91</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00097">97</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -268,7 +298,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00070">70</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00076">76</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -288,7 +318,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00303">303</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00327">327</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -316,7 +346,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00247">247</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00255">255</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -344,7 +374,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00111">111</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00117">117</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -372,7 +402,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00139">139</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00146">146</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -396,14 +426,14 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, </div><div class="line"> PLUGIN_NAME, </div><div class="line"> PLUGIN_DESCRIPTION, </div><div class="line"> GETTEXT_PACKAGE, </div><div class="line"> PLUGIN_VERSION, </div><div class="line"> PLUGIN_APPICON, </div><div class="line"> PLUGIN_APPICON, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>, </div><div class="line"> NULL, </div><div class="line"> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>, </div><div class="line"> NULL, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL </div><div class="line">}</div><div class="ttc" id="exec__plugin_8c_html_a89c6ce747f68e963b8c6d21427a352f3"><div class="ttname"><a href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00272">exec_plugin.c:272</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">= {</div><div class="line"> <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, </div><div class="line"> PLUGIN_NAME, </div><div class="line"> PLUGIN_DESCRIPTION, </div><div class="line"> GETTEXT_PACKAGE, </div><div class="line"> PLUGIN_VERSION, </div><div class="line"> PLUGIN_APPICON, </div><div class="line"> PLUGIN_APPICON, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>, </div><div class="line"> NULL, </div><div class="line"> <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>, </div><div class="line"> NULL, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>, </div><div class="line"> <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL, </div><div class="line"> NULL </div><div class="line">}</div><div class="ttc" id="exec__plugin_8c_html_a89c6ce747f68e963b8c6d21427a352f3"><div class="ttname"><a href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00295">exec_plugin.c:295</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a53edac9deab20832959582a95bedcafe"><div class="ttname"><a href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a></div><div class="ttdeci">static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00111">exec_plugin.c:111</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a11eddf7a4294b5650382e025f9f2a0ad"><div class="ttname"><a href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00139">exec_plugin.c:139</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a775ebb715d8db084d673e05ae526c088"><div class="ttname"><a href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00247">exec_plugin.c:247</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a53edac9deab20832959582a95bedcafe"><div class="ttname"><a href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a></div><div class="ttdeci">static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00117">exec_plugin.c:117</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a11eddf7a4294b5650382e025f9f2a0ad"><div class="ttname"><a href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00146">exec_plugin.c:146</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a775ebb715d8db084d673e05ae526c088"><div class="ttname"><a href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00255">exec_plugin.c:255</a></div></div>
<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00280">280</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00304">304</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -426,12 +456,12 @@ Variables</h2></td></tr>
</tr>
</table>
</div><div class="memdoc">
-<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execcommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;runasync&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Asynchronous execution&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
+<b>Initial value:</b><div class="fragment"><div class="line">=</div><div class="line">{</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execcommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;runasync&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Asynchronous execution&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;kill_proc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kill process on disconnect&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"> { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line">}</div><div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
</div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00272">272</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00295">295</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
@@ -455,7 +485,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00058">58</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00059">59</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
</div>
</div>
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','');});
<div class="title">exec_plugin.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="exec__plugin_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2017-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Initially based on the plugin &quot;Remmina Plugin EXEC&quot;, created and written by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Fabio Castelli (Muflone) &lt;muflone@vbsimple.net&gt;.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="exec__plugin__config_8h.html">exec_plugin_config.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin_8h.html">common/remmina_plugin.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkkeysyms.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;sys/wait.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define GET_PLUGIN_DATA(gp) (RemminaPluginExecData*)g_object_get_data(G_OBJECT(gp), &quot;plugin-data&quot;)</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html"> 51</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_plugin_exec_data.html">_RemminaPluginExecData</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1"> 52</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41"> 53</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4"> 54</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">err</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb"> 55</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;} <a class="code" href="exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8">RemminaPluginExecData</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7"> 58</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *<a class="code" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a> = NULL;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service-&gt;_remmina_debug(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71"> 63</a></span>&#160;<a class="code" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a>( GPid pid, gint status)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">/* Close pid */</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; g_spawn_close_pid( pid );</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">static</span> gboolean</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219"> 70</a></span>&#160;<a class="code" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; gchar *string;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; gsize size;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; g_io_channel_unref( channel );</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; g_io_channel_read_line( channel, &amp;<span class="keywordtype">string</span>, &amp;size, NULL, NULL );</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; gtk_text_buffer_insert_at_cursor( gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="keywordtype">string</span>, -1 );</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">static</span> gboolean</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327"> 91</a></span>&#160;<a class="code" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; gchar *string;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; gsize size;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; g_io_channel_unref( channel );</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; g_io_channel_read_line( channel, &amp;<span class="keywordtype">string</span>, &amp;size, NULL, NULL );</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; gtk_text_buffer_insert_at_cursor( gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">err</a>, <span class="keywordtype">string</span>, -1 );</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe"> 111</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin init&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; gpdata = g_new0(<a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a>, 1);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; g_object_set_data_full(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>, gpdata, g_free);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a> = gtk_text_view_new();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), GTK_WRAP_CHAR);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; gtk_text_view_set_editable(GTK_TEXT_VIEW(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), FALSE);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; gtk_text_view_set_left_margin (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), 20);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; gtk_text_view_set_right_margin (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), 20);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a> = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a> = gtk_scrolled_window_new (NULL, NULL);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; gtk_widget_set_size_request (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>, 640, 480);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>),</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GTK_POLICY_AUTOMATIC,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; gtk_container_add(GTK_CONTAINER(gp), gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; gtk_container_add(GTK_CONTAINER(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>), gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="stringliteral">&quot;Remmina Exec Plugin Logger&quot;</span>, -1);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; gtk_widget_show_all(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad"> 139</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">const</span> gchar *cmd;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; gchar *stdout_buffer;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; gchar *stderr_buffer;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">char</span> **argv;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; GError *error = NULL;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; GPid child_pid;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; gint child_stdout, child_stderr;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GtkDialog *dialog;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; GIOChannel *out_ch, *err_ch;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin run&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; cmd = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;execcommand&quot;</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span> (!cmd) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; _(<span class="stringliteral">&quot;You did not set any command to be executed&quot;</span>), -1);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; g_shell_parse_argv(cmd, NULL, &amp;argv, &amp;error);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span> (error) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; g_error_free(error);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;runasync&quot;</span>, FALSE)) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Run Async&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; g_spawn_async_with_pipes( NULL,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; argv,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; NULL,</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; G_SPAWN_DO_NOT_REAP_CHILD |</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; G_SPAWN_SEARCH_PATH_FROM_ENVP |</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; G_SPAWN_SEARCH_PATH,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; NULL,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; NULL,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; &amp;child_pid,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; NULL,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; &amp;child_stdout,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; &amp;child_stderr,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; &amp;error);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span> (error != NULL) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; g_error_free(error);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; g_child_watch_add(child_pid, (GChildWatchFunc)<a class="code" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a>, gp );</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">/* Create channels that will be used to read data from pipes. */</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; out_ch = g_io_channel_unix_new(child_stdout);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; err_ch = g_io_channel_unix_new(child_stderr);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">/* Add watches to channels */</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; g_io_add_watch(out_ch, G_IO_IN | G_IO_HUP, (GIOFunc)<a class="code" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a>, gp );</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; g_io_add_watch(err_ch, G_IO_IN | G_IO_HUP, (GIOFunc)<a class="code" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a>, gp );</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; _(<span class="stringliteral">&quot;Warning: Running a command synchronously may cause Remmina not to respond.\nDo you really want to continue?&quot;</span>)));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; gint result = gtk_dialog_run (GTK_DIALOG (dialog));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">switch</span> (result)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">case</span> GTK_RESPONSE_YES:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Run Sync&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; g_spawn_sync (NULL, <span class="comment">// CWD or NULL</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; argv,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; NULL, <span class="comment">// ENVP or NULL</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; G_SPAWN_SEARCH_PATH |</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; G_SPAWN_SEARCH_PATH_FROM_ENVP,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; NULL,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; NULL,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; &amp;stdout_buffer, <span class="comment">// STDOUT</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; &amp;stderr_buffer, <span class="comment">// STDERR</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; NULL, <span class="comment">// Exit status</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; &amp;error);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span> (!error) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Command executed&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, stdout_buffer, -1);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; g_warning(<span class="stringliteral">&quot;Command %s exited with error: %s\n&quot;</span>, cmd, error-&gt;message);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; g_error_free(error);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; g_strfreev(argv);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088"> 247</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin close&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(gp);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="comment">/* Array of RemminaProtocolSetting for basic settings.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;<span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="comment"> * b) Setting name</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="comment"> * c) Setting description</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;<span class="comment"> * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment"> * f) Setting tooltip</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;<span class="comment"> * g) Validation data pointer, will be passed to the validation callback method.</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="comment"> * h) Validation callback method (Can be NULL. Every entry will be valid then.)</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="comment"> * use following prototype:</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="comment"> * gboolean mysetting_validator_method(gpointer key, gpointer value,</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;<span class="comment"> * gpointer validator_data);</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="comment"> * gpointer key is a gchar* containing the setting&#39;s name,</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;<span class="comment"> * gpointer value contains the value which should be validated,</span></div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="comment"> * gpointer validator_data contains your passed data.</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3"> 272</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>[] =</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execcommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;runasync&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Asynchronous execution&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;};</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment">/* Protocol plugin definition and features */</span></div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99"> 280</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> <a class="code" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a> = {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, <span class="comment">// Type</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; PLUGIN_NAME, <span class="comment">// Name</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; PLUGIN_DESCRIPTION, <span class="comment">// Description</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; PLUGIN_VERSION, <span class="comment">// Version number</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; PLUGIN_APPICON, <span class="comment">// Icon for normal connection</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; PLUGIN_APPICON, <span class="comment">// Icon for SSH connection</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>, <span class="comment">// Array for basic settings</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; NULL, <span class="comment">// Array for advanced settings</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>, <span class="comment">// SSH settings type</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; NULL, <span class="comment">// Array for available features</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>, <span class="comment">// Plugin initialization</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>, <span class="comment">// Plugin open connection</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>, <span class="comment">// Plugin close connection</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; NULL, <span class="comment">// Query for available features</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; NULL, <span class="comment">// Call a feature</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; NULL, <span class="comment">// Send a keystroke</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; NULL, <span class="comment">// No screenshot support available</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; NULL, <span class="comment">// RCW map event</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; NULL <span class="comment">// RCW unmap event</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;};</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208"> 303</a></span>&#160;G_MODULE_EXPORT gboolean <a class="code" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a>(<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *service)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;{</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; remmina_plugin_service = service;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">&quot;UTF-8&quot;</span>);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)&amp;remmina_plugin)) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;}</div><div class="ttc" id="exec__plugin_8c_html_a89c6ce747f68e963b8c6d21427a352f3"><div class="ttname"><a href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00272">exec_plugin.c:272</a></div></div>
+<a href="exec__plugin_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2017-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Initially based on the plugin &quot;Remmina Plugin EXEC&quot;, created and written by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * Fabio Castelli (Muflone) &lt;muflone@vbsimple.net&gt;.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="exec__plugin__config_8h.html">exec_plugin_config.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__plugin_8h.html">common/remmina_plugin.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkkeysyms.h&gt;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;sys/wait.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define GET_PLUGIN_DATA(gp) (RemminaPluginExecData*)g_object_get_data(G_OBJECT(gp), &quot;plugin-data&quot;)</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html"> 51</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_plugin_exec_data.html">_RemminaPluginExecData</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1"> 52</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41"> 53</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4"> 54</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">err</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb"> 55</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6"> 56</a></span>&#160; GPid <a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;} <a class="code" href="exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8">RemminaPluginExecData</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7"> 59</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *<a class="code" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a> = NULL;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service-&gt;_remmina_debug(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71"> 64</a></span>&#160;<a class="code" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a>( GPid <a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>, gint status)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">/* Close pid */</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; g_spawn_close_pid( pid );</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74"> 70</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">cb_child_setup</a>(gpointer data){</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">int</span> <a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> = getpid();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; setpgid(pid, 0);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">static</span> gboolean</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219"> 76</a></span>&#160;<a class="code" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; gchar *string;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; gsize size;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; g_io_channel_unref( channel );</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; g_io_channel_read_line( channel, &amp;<span class="keywordtype">string</span>, &amp;size, NULL, NULL );</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; gtk_text_buffer_insert_at_cursor( gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="keywordtype">string</span>, -1 );</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">static</span> gboolean</div><div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327"> 97</a></span>&#160;<a class="code" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a> (GIOChannel *channel, GIOCondition cond, <a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; gchar *string;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; gsize size;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; g_io_channel_unref( channel );</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; g_io_channel_read_line( channel, &amp;<span class="keywordtype">string</span>, &amp;size, NULL, NULL );</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; gtk_text_buffer_insert_at_cursor( gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">err</a>, <span class="keywordtype">string</span>, -1 );</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe"> 117</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin init&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; gpdata = g_new0(<a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a>, 1);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; g_object_set_data_full(G_OBJECT(gp), <span class="stringliteral">&quot;plugin-data&quot;</span>, gpdata, g_free);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> = 0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a> = gtk_text_view_new();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), GTK_WRAP_CHAR);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; gtk_text_view_set_editable(GTK_TEXT_VIEW(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), FALSE);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; gtk_text_view_set_left_margin (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), 20);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; gtk_text_view_set_right_margin (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>), 20);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a> = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>));</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a> = gtk_scrolled_window_new (NULL, NULL);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; gtk_widget_set_size_request (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>, 640, 480);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>),</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GTK_POLICY_AUTOMATIC,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; gtk_container_add(GTK_CONTAINER(gp), gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; gtk_container_add(GTK_CONTAINER(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>), gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">log_view</a>);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="stringliteral">&quot;Remmina Exec Plugin Logger&quot;</span>, -1);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; gtk_widget_show_all(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad"> 146</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> gchar *cmd;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; gchar *stdout_buffer;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; gchar *stderr_buffer;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">char</span> **argv;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; GError *error = NULL;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; GPid child_pid;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; gint child_stdout, child_stderr;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; GtkDialog *dialog;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; GIOChannel *out_ch, *err_ch;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin run&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; cmd = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">&quot;execcommand&quot;</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span> (!cmd) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; _(<span class="stringliteral">&quot;You did not set any command to be executed&quot;</span>), -1);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; g_shell_parse_argv(cmd, NULL, &amp;argv, &amp;error);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (error) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; g_error_free(error);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;runasync&quot;</span>, FALSE)) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Run Async&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; g_spawn_async_with_pipes( NULL,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; argv,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; NULL,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; G_SPAWN_DO_NOT_REAP_CHILD |</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; G_SPAWN_SEARCH_PATH_FROM_ENVP |</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; G_SPAWN_SEARCH_PATH,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">cb_child_setup</a>,</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; NULL,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; &amp;child_pid,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; NULL,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; &amp;child_stdout,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; &amp;child_stderr,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; &amp;error);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span> (error != NULL) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; g_error_free(error);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; g_child_watch_add(child_pid, (GChildWatchFunc)<a class="code" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a>, gp );</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> = child_pid;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">/* Create channels that will be used to read data from pipes. */</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; out_ch = g_io_channel_unix_new(child_stdout);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; err_ch = g_io_channel_unix_new(child_stderr);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">/* Add watches to channels */</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; g_io_add_watch(out_ch, G_IO_IN | G_IO_HUP, (GIOFunc)<a class="code" href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a>, gp );</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; g_io_add_watch(err_ch, G_IO_IN | G_IO_HUP, (GIOFunc)<a class="code" href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a>, gp );</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; _(<span class="stringliteral">&quot;Warning: Running a command synchronously may cause Remmina not to respond.\nDo you really want to continue?&quot;</span>)));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; gint result = gtk_dialog_run (GTK_DIALOG (dialog));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">switch</span> (result)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">case</span> GTK_RESPONSE_YES:</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Run Sync&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; g_spawn_sync (NULL, <span class="comment">// CWD or NULL</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; argv,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; NULL, <span class="comment">// ENVP or NULL</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; G_SPAWN_SEARCH_PATH |</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; G_SPAWN_SEARCH_PATH_FROM_ENVP,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; NULL,</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; NULL,</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; &amp;stdout_buffer, <span class="comment">// STDOUT</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; &amp;stderr_buffer, <span class="comment">// STDERR</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; NULL, <span class="comment">// Exit status</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; &amp;error);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span> (!error) {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Command executed&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, stdout_buffer, -1);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; g_warning(<span class="stringliteral">&quot;Command %s exited with error: %s\n&quot;</span>, cmd, error-&gt;message);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; gtk_text_buffer_set_text (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error-&gt;message, -1);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; g_error_free(error);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; g_strfreev(argv);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">protocol_plugin_signal_connection_opened</a>(gp);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088"> 255</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>(<a class="code" href="struct___remmina_protocol_widget.html">RemminaProtocolWidget</a> *gp)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; REMMINA_PLUGIN_DEBUG(<span class="stringliteral">&quot;[%s] Plugin close&quot;</span>, PLUGIN_NAME);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="struct___remmina_plugin_exec_data.html">RemminaPluginExecData</a> *gpdata = GET_PLUGIN_DATA(gp);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">//if async process was started, make sure it&#39;s dead if option is selected</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile = remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">protocol_plugin_get_file</a>(gp);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span> (remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">&quot;kill_proc&quot;</span>, FALSE)) {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span> (gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a> !=0 ){</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordtype">int</span> pgid = getpgid(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span> (pgid != 0){</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; kill(-gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>, SIGHUP);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">else</span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; kill(gpdata-&gt;<a class="code" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a>, SIGHUP);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; remmina_plugin_service-&gt;<a class="code" href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">protocol_plugin_signal_connection_closed</a>(gp);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;}</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="comment">/* Array of RemminaProtocolSetting for basic settings.</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;<span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;<span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="comment"> * b) Setting name</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="comment"> * c) Setting description</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;<span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="comment"> * e) Values for REMMINA_PROTOCOL_SETTING_TYPE_SELECT or REMMINA_PROTOCOL_SETTING_TYPE_COMBO</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="comment"> * f) Setting tooltip</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="comment"> * g) Validation data pointer, will be passed to the validation callback method.</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="comment"> * h) Validation callback method (Can be NULL. Every entry will be valid then.)</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment"> * use following prototype:</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;<span class="comment"> * gboolean mysetting_validator_method(gpointer key, gpointer value,</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="comment"> * gpointer validator_data);</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;<span class="comment"> * gpointer key is a gchar* containing the setting&#39;s name,</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="comment"> * gpointer value contains the value which should be validated,</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;<span class="comment"> * gpointer validator_data contains your passed data.</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3"> 295</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> <a class="code" href="struct___remmina_protocol_setting.html">RemminaProtocolSetting</a> <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>[] =</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;{</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">&quot;execcommand&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Command&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;runasync&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Asynchronous execution&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">&quot;kill_proc&quot;</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">&quot;Kill process on disconnect&quot;</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a>, NULL, NULL, FALSE, NULL, NULL, NULL, NULL }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;};</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;<span class="comment">/* Protocol plugin definition and features */</span></div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99"> 304</a></span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_protocol_plugin.html">RemminaProtocolPlugin</a> <a class="code" href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a> = {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <a class="code" href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a>, <span class="comment">// Type</span></div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; PLUGIN_NAME, <span class="comment">// Name</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; PLUGIN_DESCRIPTION, <span class="comment">// Description</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; PLUGIN_VERSION, <span class="comment">// Version number</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; PLUGIN_APPICON, <span class="comment">// Icon for normal connection</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; PLUGIN_APPICON, <span class="comment">// Icon for SSH connection</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a>, <span class="comment">// Array for basic settings</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; NULL, <span class="comment">// Array for advanced settings</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a>, <span class="comment">// SSH settings type</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; NULL, <span class="comment">// Array for available features</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a>, <span class="comment">// Plugin initialization</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <a class="code" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a>, <span class="comment">// Plugin open connection</span></div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a>, <span class="comment">// Plugin close connection</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; NULL, <span class="comment">// Query for available features</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; NULL, <span class="comment">// Call a feature</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; NULL, <span class="comment">// Send a keystroke</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; NULL, <span class="comment">// No screenshot support available</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; NULL, <span class="comment">// RCW map event</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; NULL <span class="comment">// RCW unmap event</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;};</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208"> 327</a></span>&#160;G_MODULE_EXPORT gboolean <a class="code" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a>(<a class="code" href="struct___remmina_plugin_service.html">RemminaPluginService</a> *service)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; remmina_plugin_service = service;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">&quot;UTF-8&quot;</span>);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span> (!service-&gt;<a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)&amp;remmina_plugin)) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;}</div><div class="ttc" id="exec__plugin_8c_html_a89c6ce747f68e963b8c6d21427a352f3"><div class="ttname"><a href="exec__plugin_8c.html#a89c6ce747f68e963b8c6d21427a352f3">remmina_plugin_exec_basic_settings</a></div><div class="ttdeci">static const RemminaProtocolSetting remmina_plugin_exec_basic_settings[]</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00295">exec_plugin.c:295</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html"><div class="ttname"><a href="struct___remmina_plugin.html">_RemminaPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00056">plugin.h:56</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_ae5fe6643dc64e9250dc2a33e9f266e71"><div class="ttname"><a href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a></div><div class="ttdeci">static void cb_child_watch(GPid pid, gint status)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00063">exec_plugin.c:63</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_ae5fe6643dc64e9250dc2a33e9f266e71"><div class="ttname"><a href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">cb_child_watch</a></div><div class="ttdeci">static void cb_child_watch(GPid pid, gint status)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00064">exec_plugin.c:64</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00109">types.h:109</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00105">types.h:105</a></div></div>
<div class="ttc" id="types_8h_html_a112d7cc6c755209cabb68cf2a62ad515"><div class="ttname"><a href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a></div><div class="ttdeci">typedefG_BEGIN_DECLS struct _RemminaFile RemminaFile</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00044">types.h:44</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html_a9ff6bc2fe9796bdc74fda1677ebf80c4"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#a9ff6bc2fe9796bdc74fda1677ebf80c4">_RemminaPluginExecData::err</a></div><div class="ttdeci">GtkTextBuffer * err</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00054">exec_plugin.c:54</a></div></div>
<div class="ttc" id="remmina__plugin_8h_html"><div class="ttname"><a href="remmina__plugin_8h.html">remmina_plugin.h</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html">_RemminaPluginExecData</a></div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00051">exec_plugin.c:51</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a53edac9deab20832959582a95bedcafe"><div class="ttname"><a href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a></div><div class="ttdeci">static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00111">exec_plugin.c:111</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a53edac9deab20832959582a95bedcafe"><div class="ttname"><a href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe">remmina_plugin_exec_init</a></div><div class="ttdeci">static void remmina_plugin_exec_init(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00117">exec_plugin.c:117</a></div></div>
<div class="ttc" id="exec__plugin_8c_html_a44fb47f82521cf4e8a802f4042f6edb8"><div class="ttname"><a href="exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8">RemminaPluginExecData</a></div><div class="ttdeci">struct _RemminaPluginExecData RemminaPluginExecData</div></div>
-<div class="ttc" id="exec__plugin_8c_html_a11eddf7a4294b5650382e025f9f2a0ad"><div class="ttname"><a href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00139">exec_plugin.c:139</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a11eddf7a4294b5650382e025f9f2a0ad"><div class="ttname"><a href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad">remmina_plugin_exec_run</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_run(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00146">exec_plugin.c:146</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ab58b7bf5f91c5f60349a8242e6322f7f"><div class="ttname"><a href="struct___remmina_plugin_service.html#ab58b7bf5f91c5f60349a8242e6322f7f">_RemminaPluginService::protocol_plugin_signal_connection_closed</a></div><div class="ttdeci">void(* protocol_plugin_signal_connection_closed)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00185">plugin.h:185</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html"><div class="ttname"><a href="struct___remmina_protocol_plugin.html">_RemminaProtocolPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00065">plugin.h:65</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a0c7eab256e1b1fdf84be44e28cddc3de"><div class="ttname"><a href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">_RemminaPluginService::file_get_int</a></div><div class="ttdeci">gint(* file_get_int)(RemminaFile *remminafile, const gchar *setting, gint default_value)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00222">plugin.h:222</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_ab212bed4baf8cba148fadb5773148ad6"><div class="ttname"><a href="struct___remmina_plugin_service.html#ab212bed4baf8cba148fadb5773148ad6">_RemminaPluginService::protocol_plugin_signal_connection_opened</a></div><div class="ttdeci">void(* protocol_plugin_signal_connection_opened)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00186">plugin.h:186</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a529cc64f67b16f13f0445add690a8df2"><div class="ttname"><a href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">_RemminaPluginService::register_plugin</a></div><div class="ttdeci">gboolean(* register_plugin)(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00166">plugin.h:166</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a775ebb715d8db084d673e05ae526c088"><div class="ttname"><a href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00247">exec_plugin.c:247</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a775ebb715d8db084d673e05ae526c088"><div class="ttname"><a href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088">remmina_plugin_exec_close</a></div><div class="ttdeci">static gboolean remmina_plugin_exec_close(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00255">exec_plugin.c:255</a></div></div>
<div class="ttc" id="struct___remmina_protocol_widget_html"><div class="ttname"><a href="struct___remmina_protocol_widget.html">_RemminaProtocolWidget</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8h_source.html#l00058">remmina_protocol_widget.h:58</a></div></div>
<div class="ttc" id="types_8h_html_a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093"><div class="ttname"><a href="types_8h.html#a64c62354cc2b7baa50e1d73dcd3df9c7a8f910597287a73453a5f09ca0037d093">REMMINA_PROTOCOL_SSH_SETTING_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00128">types.h:128</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html_ac7ad166ff0ad398b004d39b72a5aa2e1"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#ac7ad166ff0ad398b004d39b72a5aa2e1">_RemminaPluginExecData::log_view</a></div><div class="ttdeci">GtkWidget * log_view</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00052">exec_plugin.c:52</a></div></div>
<div class="ttc" id="struct___remmina_protocol_setting_html"><div class="ttname"><a href="struct___remmina_protocol_setting.html">_RemminaProtocolSetting</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00116">types.h:116</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a1409dcc143ddc35de86b792df095cfc4"><div class="ttname"><a href="struct___remmina_plugin_service.html#a1409dcc143ddc35de86b792df095cfc4">_RemminaPluginService::protocol_plugin_get_file</a></div><div class="ttdeci">RemminaFile *(* protocol_plugin_get_file)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00178">plugin.h:178</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a26f6bd87259193e03faa2b969f92dc74"><div class="ttname"><a href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">cb_child_setup</a></div><div class="ttdeci">static void cb_child_setup(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00070">exec_plugin.c:70</a></div></div>
+<div class="ttc" id="struct___remmina_plugin_exec_data_html_a8e029765416cac86abd48f12eb0c4de6"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">_RemminaPluginExecData::pid</a></div><div class="ttdeci">GPid pid</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00056">exec_plugin.c:56</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html_a59117466c585cabdc32c363083867bbb"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">_RemminaPluginExecData::sw</a></div><div class="ttdeci">GtkWidget * sw</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00055">exec_plugin.c:55</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ad898beb6ae625dee1ae27de75f1ab4e3">REMMINA_PROTOCOL_SETTING_TYPE_END</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00098">types.h:98</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html_a673ff4320377c3b440dfd24a796c69fc"><div class="ttname"><a href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">_RemminaPluginService::file_get_string</a></div><div class="ttdeci">const gchar *(* file_get_string)(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00219">plugin.h:219</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_ab43db37b96c68093747620fbde879327"><div class="ttname"><a href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a></div><div class="ttdeci">static gboolean cb_err_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00091">exec_plugin.c:91</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_ab43db37b96c68093747620fbde879327"><div class="ttname"><a href="exec__plugin_8c.html#ab43db37b96c68093747620fbde879327">cb_err_watch</a></div><div class="ttdeci">static gboolean cb_err_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00097">exec_plugin.c:97</a></div></div>
<div class="ttc" id="struct___remmina_plugin_exec_data_html_a9adc6a977b68bd6fc1dc1f60c834ed41"><div class="ttname"><a href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">_RemminaPluginExecData::log_buffer</a></div><div class="ttdeci">GtkTextBuffer * log_buffer</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00053">exec_plugin.c:53</a></div></div>
<div class="ttc" id="vnc__plugin_8c_html_ab96ef9227ecef94018f2729f72e7651e"><div class="ttname"><a href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a></div><div class="ttdeci">N_(&quot;Unable to connect to VNC server&quot;)</div><div class="ttdef"><b>Definition:</b> <a href="vnc__plugin_8c_source.html#l00953">vnc_plugin.c:953</a></div></div>
<div class="ttc" id="struct___remmina_plugin_service_html"><div class="ttname"><a href="struct___remmina_plugin_service.html">_RemminaPluginService</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00165">plugin.h:165</a></div></div>
<div class="ttc" id="exec__plugin__config_8h_html"><div class="ttname"><a href="exec__plugin__config_8h.html">exec_plugin_config.h</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_aa6294507761837488c3777f21096d219"><div class="ttname"><a href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a></div><div class="ttdeci">static gboolean cb_out_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00070">exec_plugin.c:70</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00303">exec_plugin.c:303</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">static RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00058">exec_plugin.c:58</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_aa6294507761837488c3777f21096d219"><div class="ttname"><a href="exec__plugin_8c.html#aa6294507761837488c3777f21096d219">cb_out_watch</a></div><div class="ttdeci">static gboolean cb_out_watch(GIOChannel *channel, GIOCondition cond, RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00076">exec_plugin.c:76</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a56e5020de11446dbc23f3480e313f208"><div class="ttname"><a href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208">remmina_plugin_entry</a></div><div class="ttdeci">G_MODULE_EXPORT gboolean remmina_plugin_entry(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00327">exec_plugin.c:327</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a9493664f6bdafe3f5b593c3e5e1eacc7"><div class="ttname"><a href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7">remmina_plugin_service</a></div><div class="ttdeci">static RemminaPluginService * remmina_plugin_service</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00059">exec_plugin.c:59</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
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','');});
<li>physicalWidth
: <a class="el" href="structremmina__plugin__rdp__event.html#af62c17a8001e045d3f9e781a0a5089ef">remmina_plugin_rdp_event</a>
</li>
+<li>pid
+: <a class="el" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">_RemminaPluginExecData</a>
+</li>
<li>pidx2go
: <a class="el" href="struct___remmina_plugin_x2_go_data.html#a096eb53491e1297c8119badfb75df393">_RemminaPluginX2GoData</a>
</li>
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','');});
<li>physicalWidth
: <a class="el" href="structremmina__plugin__rdp__event.html#af62c17a8001e045d3f9e781a0a5089ef">remmina_plugin_rdp_event</a>
</li>
+<li>pid
+: <a class="el" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">_RemminaPluginExecData</a>
+</li>
<li>pidx2go
: <a class="el" href="struct___remmina_plugin_x2_go_data.html#a096eb53491e1297c8119badfb75df393">_RemminaPluginX2GoData</a>
</li>
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','');});
<li>CANCEL_TASK_SIGNAL
: <a class="el" href="remmina__ftp__client_8c.html#adc29c2ff13d900c2f185ee95427fb06ca53f24253e039f2efdaa4c7830958df03">remmina_ftp_client.c</a>
</li>
+<li>cb_child_setup()
+: <a class="el" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">exec_plugin.c</a>
+</li>
<li>cb_child_watch()
: <a class="el" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">exec_plugin.c</a>
</li>
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','');});
<li>cancel_start_reverse_tunnel_cb()
: <a class="el" href="remmina__protocol__widget_8c.html#aeffe07c6412286d99ba04f05fe74aeac">remmina_protocol_widget.c</a>
</li>
+<li>cb_child_setup()
+: <a class="el" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74">exec_plugin.c</a>
+</li>
<li>cb_child_watch()
: <a class="el" href="exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71">exec_plugin.c</a>
</li>
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','');});
<li>remmina_ssh_tunnel_new_from_file()
: <a class="el" href="remmina__ssh_8h.html#abf04fd329ab77bbd4f6aa1cb1eaa349d">remmina_ssh.h</a>
</li>
-<li>REMMINA_SSH_TUNNEL_OPEN
-: <a class="el" href="remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14">remmina_ssh.h</a>
-</li>
<li>remmina_ssh_tunnel_open()
: <a class="el" href="remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53">remmina_ssh.h</a>
</li>
+<li>REMMINA_SSH_TUNNEL_OPEN
+: <a class="el" href="remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14">remmina_ssh.h</a>
+</li>
<li>REMMINA_SSH_TUNNEL_REVERSE
: <a class="el" href="remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798ae14c0d50235951946ca18866a1329459">remmina_ssh.h</a>
</li>
@@ -4846,12 +4846,12 @@ $(document).ready(function(){initNavTree('globals_r.html','');});
<li>RemminaLogWindowClass
: <a class="el" href="remmina__log_8c.html#a5682db89dd84e1c413326e17a4f79dbe">remmina_log.c</a>
</li>
-<li>RemminaMain
-: <a class="el" href="remmina__main_8h.html#ad17d9a48f2b3f84e17baa91104bc6cb1">remmina_main.h</a>
-</li>
<li>remminamain
: <a class="el" href="remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89">remmina_main.c</a>
</li>
+<li>RemminaMain
+: <a class="el" href="remmina__main_8h.html#ad17d9a48f2b3f84e17baa91104bc6cb1">remmina_main.h</a>
+</li>
<li>RemminaMainPriv
: <a class="el" href="remmina__main_8h.html#a49e7c1b5d4dcfd155886e39d78b3d052">remmina_main.h</a>
</li>
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'
<div class="ttc" id="struct___remmina_entry_plugin_html_afb8b164b36f2a9cff50176befbc23441"><div class="ttname"><a href="struct___remmina_entry_plugin.html#afb8b164b36f2a9cff50176befbc23441">_RemminaEntryPlugin::version</a></div><div class="ttdeci">const gchar * version</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00095">plugin.h:95</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a18794c4ccbbc68f11a76dc7943bbcb56"><div class="ttname"><a href="python__wrapper__common_8c.html#a18794c4ccbbc68f11a76dc7943bbcb56">ATTR_VERSION</a></div><div class="ttdeci">const char * ATTR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00064">python_wrapper_common.c:64</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="struct___remmina_entry_plugin_html_a44723a4f75f1a2ac3e029212fe0e8533"><div class="ttname"><a href="struct___remmina_entry_plugin.html#a44723a4f75f1a2ac3e029212fe0e8533">_RemminaEntryPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00094">plugin.h:94</a></div></div>
<div class="ttc" id="struct___remmina_entry_plugin_html_a4c4f13e65c7b64ba2d8bc019fd00e6a1"><div class="ttname"><a href="struct___remmina_entry_plugin.html#a4c4f13e65c7b64ba2d8bc019fd00e6a1">_RemminaEntryPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00092">plugin.h:92</a></div></div>
<div class="ttc" id="struct___remmina_entry_plugin_html_abec2e8cc2551f64eda4ee21d553accd4"><div class="ttname"><a href="struct___remmina_entry_plugin.html#abec2e8cc2551f64eda4ee21d553accd4">_RemminaEntryPlugin::description</a></div><div class="ttdeci">const gchar * description</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00093">plugin.h:93</a></div></div>
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',
<div class="ttc" id="struct___remmina_file_plugin_html_a597178a88c755ebe0614897b7aa279b1"><div class="ttname"><a href="struct___remmina_file_plugin.html#a597178a88c755ebe0614897b7aa279b1">_RemminaFilePlugin::import_func</a></div><div class="ttdeci">RemminaFile *(* import_func)(struct _RemminaFilePlugin *instance, const gchar *from_file)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00108">plugin.h:108</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a18794c4ccbbc68f11a76dc7943bbcb56"><div class="ttname"><a href="python__wrapper__common_8c.html#a18794c4ccbbc68f11a76dc7943bbcb56">ATTR_VERSION</a></div><div class="ttdeci">const char * ATTR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00064">python_wrapper_common.c:64</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="struct_py_plugin_html_a50c373b557faddaf959746d7086cbd4f"><div class="ttname"><a href="struct_py_plugin.html#a50c373b557faddaf959746d7086cbd4f">PyPlugin::file_plugin</a></div><div class="ttdeci">RemminaFilePlugin * file_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00129">python_wrapper_common.h:129</a></div></div>
<div class="ttc" id="struct___remmina_file_plugin_html_a1de86485b3c4db138b0fcd264884483f"><div class="ttname"><a href="struct___remmina_file_plugin.html#a1de86485b3c4db138b0fcd264884483f">_RemminaFilePlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00104">plugin.h:104</a></div></div>
<div class="ttc" id="python__wrapper__file_8c_html_af7da0109a9ce79e9b70d1a5947ef00b1"><div class="ttname"><a href="python__wrapper__file_8c.html#af7da0109a9ce79e9b70d1a5947ef00b1">python_wrapper_file_init</a></div><div class="ttdeci">void python_wrapper_file_init(void)</div><div class="ttdoc">Initializes the Python plugin specialisation for file plugins. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__file_8c_source.html#l00050">python_wrapper_file.c:50</a></div></div>
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',
<div class="ttc" id="python__wrapper__common_8c_html_a11658eaccd360b5a1a5e037e9687a6d5"><div class="ttname"><a href="python__wrapper__common_8c.html#a11658eaccd360b5a1a5e037e9687a6d5">python_wrapper_check_attribute</a></div><div class="ttdeci">gboolean python_wrapper_check_attribute(PyObject *instance, const char *attr_name)</div><div class="ttdoc">Checks if a given attribute exists. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00139">python_wrapper_common.c:139</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a18794c4ccbbc68f11a76dc7943bbcb56"><div class="ttname"><a href="python__wrapper__common_8c.html#a18794c4ccbbc68f11a76dc7943bbcb56">ATTR_VERSION</a></div><div class="ttdeci">const char * ATTR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00064">python_wrapper_common.c:64</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="python__wrapper__pref_8h_html"><div class="ttname"><a href="python__wrapper__pref_8h.html">python_wrapper_pref.h</a></div><div class="ttdoc">Contains the specialisation of RemminaPluginFile plugins in Python. </div></div>
<div class="ttc" id="struct___remmina_pref_plugin_html_a4a036be229f8b3797c3e0ad4913c7cdf"><div class="ttname"><a href="struct___remmina_pref_plugin.html#a4a036be229f8b3797c3e0ad4913c7cdf">_RemminaPrefPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00128">plugin.h:128</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_acee67aa338f743ad9978c5de9e7c72aa"><div class="ttname"><a href="python__wrapper__common_8c.html#acee67aa338f743ad9978c5de9e7c72aa">get_pywidget</a></div><div class="ttdeci">GtkWidget * get_pywidget(PyObject *obj)</div><div class="ttdoc">Extracts a GtkWidget from a PyObject instance. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00324">python_wrapper_common.c:324</a></div></div>
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
<div class="ttc" id="python__wrapper__remmina_8h_html"><div class="ttname"><a href="python__wrapper__remmina_8h.html">python_wrapper_remmina.h</a></div><div class="ttdoc">Contains the implementation of the Python module &amp;#39;remmina&amp;#39;, provided to interface with the applicatio...</div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_a3d9e2f2eb2594411e6fe63cde443dfb2"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#a3d9e2f2eb2594411e6fe63cde443dfb2">_RemminaProtocolPlugin::init</a></div><div class="ttdeci">void(* init)(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00079">plugin.h:79</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a02ffe3b273f3813b52fb784e8667b9e6"><div class="ttname"><a href="python__wrapper__common_8c.html#a02ffe3b273f3813b52fb784e8667b9e6">python_wrapper_get_attribute_long</a></div><div class="ttdeci">long python_wrapper_get_attribute_long(PyObject *instance, const char *attr_name, long def)</div><div class="ttdoc">Gets the attribute as long value. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00124">python_wrapper_common.c:124</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_afa1a3a21c504b386cecfb42d1c9e6bff"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#afa1a3a21c504b386cecfb42d1c9e6bff">_RemminaProtocolPlugin::features</a></div><div class="ttdeci">const RemminaProtocolFeature * features</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00077">plugin.h:77</a></div></div>
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
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5af727b997d174217f949eb7364704f501">REMMINA_PROTOCOL_FEATURE_TYPE_MULTIMON</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00053">types.h:53</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_adf58bae87972fe68fa239199e7ca6e1b"><div class="ttname"><a href="python__wrapper__remmina_8c.html#adf58bae87972fe68fa239199e7ca6e1b">remmina_python_module_type_methods</a></div><div class="ttdeci">static PyMethodDef remmina_python_module_type_methods[]</div><div class="ttdoc">Declares functions for the Remmina module. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00097">python_wrapper_remmina.c:97</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="python__wrapper__remmina_8c_html_ad676d99c4833507cb8f6843e1b02f184"><div class="ttname"><a href="python__wrapper__remmina_8c.html#ad676d99c4833507cb8f6843e1b02f184">python_wrapper_generic_to_string</a></div><div class="ttdeci">static PyObject * python_wrapper_generic_to_string(PyGeneric *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina_8c_source.html#l00589">python_wrapper_remmina.c:589</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa45e094c248384c12cdafd9d088e4aa24">REMMINA_PLUGIN_TYPE_PROTOCOL</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00047">plugin.h:47</a></div></div>
<div class="ttc" id="plugin_8h_html"><div class="ttname"><a href="plugin_8h.html">plugin.h</a></div></div>
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
<div class="ttc" id="python__wrapper__common_8c_html_a18794c4ccbbc68f11a76dc7943bbcb56"><div class="ttname"><a href="python__wrapper__common_8c.html#a18794c4ccbbc68f11a76dc7943bbcb56">ATTR_VERSION</a></div><div class="ttdeci">const char * ATTR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00064">python_wrapper_common.c:64</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a0155c6684591e0dd843c7145792fef09"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a0155c6684591e0dd843c7145792fef09">_RemminaSecretPlugin::init_order</a></div><div class="ttdeci">int init_order</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00141">plugin.h:141</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_ac6927c92267fdb786b01319aeade0daa"><div class="ttname"><a href="struct___remmina_secret_plugin.html#ac6927c92267fdb786b01319aeade0daa">_RemminaSecretPlugin::version</a></div><div class="ttdeci">const gchar * version</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00140">plugin.h:140</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a81ff30e7efe61fd0057184640baf545e"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a81ff30e7efe61fd0057184640baf545e">_RemminaSecretPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00139">plugin.h:139</a></div></div>
<div class="ttc" id="struct___remmina_secret_plugin_html_a2123e14795b104f5fe8d77a4b7847261"><div class="ttname"><a href="struct___remmina_secret_plugin.html#a2123e14795b104f5fe8d77a4b7847261">_RemminaSecretPlugin::is_service_available</a></div><div class="ttdeci">gboolean(* is_service_available)(struct _RemminaSecretPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00144">plugin.h:144</a></div></div>
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',
<div class="ttc" id="python__wrapper__common_8c_html_a11658eaccd360b5a1a5e037e9687a6d5"><div class="ttname"><a href="python__wrapper__common_8c.html#a11658eaccd360b5a1a5e037e9687a6d5">python_wrapper_check_attribute</a></div><div class="ttdeci">gboolean python_wrapper_check_attribute(PyObject *instance, const char *attr_name)</div><div class="ttdoc">Checks if a given attribute exists. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00139">python_wrapper_common.c:139</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a18794c4ccbbc68f11a76dc7943bbcb56"><div class="ttname"><a href="python__wrapper__common_8c.html#a18794c4ccbbc68f11a76dc7943bbcb56">ATTR_VERSION</a></div><div class="ttdeci">const char * ATTR_VERSION</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00064">python_wrapper_common.c:64</a></div></div>
<div class="ttc" id="python__wrapper__common_8c_html_a4a8a4735511a148ef3e81980671b3503"><div class="ttname"><a href="python__wrapper__common_8c.html#a4a8a4735511a148ef3e81980671b3503">python_wrapper_malloc</a></div><div class="ttdeci">void * python_wrapper_malloc(int bytes)</div><div class="ttdoc">Allocates memory and checks for errors before returning. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8c_source.html#l00154">python_wrapper_common.c:154</a></div></div>
-<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00280">exec_plugin.c:280</a></div></div>
+<div class="ttc" id="exec__plugin_8c_html_a3b53d8bbfcf5bdf5564c8804d211cf99"><div class="ttname"><a href="exec__plugin_8c.html#a3b53d8bbfcf5bdf5564c8804d211cf99">remmina_plugin</a></div><div class="ttdeci">static RemminaProtocolPlugin remmina_plugin</div><div class="ttdef"><b>Definition:</b> <a href="exec__plugin_8c_source.html#l00304">exec_plugin.c:304</a></div></div>
<div class="ttc" id="struct___remmina_tool_plugin_html_ad83c522c030d51d5f0313b1f77f04d74"><div class="ttname"><a href="struct___remmina_tool_plugin.html#ad83c522c030d51d5f0313b1f77f04d74">_RemminaToolPlugin::exec_func</a></div><div class="ttdeci">void(* exec_func)(GtkMenuItem *item, struct _RemminaToolPlugin *instance)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00121">plugin.h:121</a></div></div>
<div class="ttc" id="python__wrapper__tool_8c_html_ac1e8af0e4f21e009c4052483a09fa606"><div class="ttname"><a href="python__wrapper__tool_8c.html#ac1e8af0e4f21e009c4052483a09fa606">python_wrapper_tool_init</a></div><div class="ttdeci">void python_wrapper_tool_init(void)</div><div class="ttdoc">Initializes the Python plugin specialisation for tool plugins. </div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__tool_8c_source.html#l00045">python_wrapper_tool.c:45</a></div></div>
<div class="ttc" id="struct_py_plugin_html_aeba82110f6ea8b55fcbebe80f5134c82"><div class="ttname"><a href="struct_py_plugin.html#aeba82110f6ea8b55fcbebe80f5134c82">PyPlugin::tool_plugin</a></div><div class="ttdeci">RemminaToolPlugin * tool_plugin</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__common_8h_source.html#l00131">python_wrapper_common.h:131</a></div></div>
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):&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN():&#160;remmina_ssh.h']]],
+ ['remmina_5fssh_5ftunnel_5fopen',['REMMINA_SSH_TUNNEL_OPEN',['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN():&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53',1,'remmina_ssh_tunnel_open(RemminaSSHTunnel *tunnel, const gchar *host, gint port, gint local_port):&#160;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):&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798ae14c0d50235951946ca18866a1329459',1,'REMMINA_SSH_TUNNEL_REVERSE():&#160;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():&#160;remmina_ssh.h'],['../remmina__ssh_8h.html#aba49db2ced40e21e8adfad69dcfda2c4',1,'remmina_ssh_tunnel_xport(RemminaSSHTunnel *tunnel, gboolean bindlocalhost):&#160;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():&#160;remmina_main.h'],['../remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89',1,'remminamain():&#160;remmina_main.c']]],
+ ['remminamain',['remminamain',['../remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89',1,'remminamain():&#160;remmina_main.c'],['../remmina__main_8h.html#ad17d9a48f2b3f84e17baa91104bc6cb1',1,'RemminaMain():&#160;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</h2></td></tr>
<tr class="separator:a9ff6bc2fe9796bdc74fda1677ebf80c4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a59117466c585cabdc32c363083867bbb"><td class="memItemLeft" align="right" valign="top">GtkWidget *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a></td></tr>
<tr class="separator:a59117466c585cabdc32c363083867bbb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e029765416cac86abd48f12eb0c4de6"><td class="memItemLeft" align="right" valign="top">GPid&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6">pid</a></td></tr>
+<tr class="separator:a8e029765416cac86abd48f12eb0c4de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
@@ -152,6 +154,22 @@ Data Fields</h2></td></tr>
</div>
</div>
+<a id="a8e029765416cac86abd48f12eb0c4de6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8e029765416cac86abd48f12eb0c4de6">&#9670;&nbsp;</a></span>pid</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">GPid _RemminaPluginExecData::pid</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p class="definition">Definition at line <a class="el" href="exec__plugin_8c_source.html#l00056">56</a> of file <a class="el" href="exec__plugin_8c_source.html">exec_plugin.c</a>.</p>
+
+</div>
+</div>
<a id="a59117466c585cabdc32c363083867bbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a59117466c585cabdc32c363083867bbb">&#9670;&nbsp;</a></span>sw</h2>
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