diff options
author | Antenore Gatta <antenore@simbiosi.org> | 2023-06-13 16:42:07 +0300 |
---|---|---|
committer | Antenore Gatta <antenore@simbiosi.org> | 2023-06-13 16:42:07 +0300 |
commit | 801b447b3cb7b3fd7366716d72b2a868886bd751 (patch) | |
tree | ac1dc087657aa591daab94a55e02559172aba113 | |
parent | 08f5133c32a3626e3ed8ec041a0df814414eb426 (diff) |
Automatic doc build by remmina-ci
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 </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"> </td></tr> +<tr class="memitem:a26f6bd87259193e03faa2b969f92dc74"><td class="memItemLeft" align="right" valign="top">static void </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"> </td></tr> <tr class="memitem:aa6294507761837488c3777f21096d219"><td class="memItemLeft" align="right" valign="top">static gboolean </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"> </td></tr> <tr class="memitem:ab43db37b96c68093747620fbde879327"><td class="memItemLeft" align="right" valign="top">static gboolean </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">◆ </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 </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">◆ </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">"execcommand"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Command"</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">"runasync"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Asynchronous execution"</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">"execcommand"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Command"</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">"runasync"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Asynchronous execution"</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">"kill_proc"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Kill process on disconnect"</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_("Unable to connect to VNC server")</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> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <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> <span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Initially based on the plugin "Remmina Plugin EXEC", created and written by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Fabio Castelli (Muflone) <muflone@vbsimple.net>.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <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> <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * including the two.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <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> <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> <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> <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> <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> <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> <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> <span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="exec__plugin__config_8h.html">exec_plugin_config.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="remmina__plugin_8h.html">common/remmina_plugin.h</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <gdk/gdkkeysyms.h></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <gtk/gtk.h></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <glib.h></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <stdlib.h></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <sys/wait.h></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#define GET_PLUGIN_DATA(gp) (RemminaPluginExecData*)g_object_get_data(G_OBJECT(gp), "plugin-data")</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html"> 51</a></span> <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>  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>  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>  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>  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> } <a class="code" href="exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8">RemminaPluginExecData</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span> </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7"> 58</a></span> <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> <span class="preprocessor">#define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service->_remmina_debug(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span> </div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  <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> <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> {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  <span class="comment">/* Close pid */</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  g_spawn_close_pid( pid );</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span> }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> </div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  <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> <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> {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  gchar *string;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  gsize size;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <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> </div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  g_io_channel_unref( channel );</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  g_io_channel_read_line( channel, &<span class="keywordtype">string</span>, &size, NULL, NULL );</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  gtk_text_buffer_insert_at_cursor( gpdata-><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>  g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span> </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span> </div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <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> <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> {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  gchar *string;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  gsize size;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <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> </div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  g_io_channel_unref( channel );</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  g_io_channel_read_line( channel, &<span class="keywordtype">string</span>, &size, NULL, NULL );</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  gtk_text_buffer_insert_at_cursor( gpdata-><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>  g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span> </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span> </div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe"> 111</a></span> <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> {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <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> </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Plugin init"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span> </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>  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>  g_object_set_data_full(G_OBJECT(gp), <span class="stringliteral">"plugin-data"</span>, gpdata, g_free);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  gpdata-><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>  gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gpdata-><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>  gtk_text_view_set_editable(GTK_TEXT_VIEW(gpdata-><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>  gtk_text_view_set_left_margin (GTK_TEXT_VIEW (gpdata-><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>  gtk_text_view_set_right_margin (GTK_TEXT_VIEW (gpdata-><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>  gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a> = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gpdata-><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>  gpdata-><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>  gtk_widget_set_size_request (gpdata-><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>  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (gpdata-><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>  GTK_POLICY_AUTOMATIC,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  gtk_container_add(GTK_CONTAINER(gp), gpdata-><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>  gtk_container_add(GTK_CONTAINER(gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>), gpdata-><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>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="stringliteral">"Remmina Exec Plugin Logger"</span>, -1);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  gtk_widget_show_all(gpdata-><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> }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span> </div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad"> 139</a></span> <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> {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keyword">const</span> gchar *cmd;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  gchar *stdout_buffer;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  gchar *stderr_buffer;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordtype">char</span> **argv;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  GError *error = NULL;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  GPid child_pid;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  gint child_stdout, child_stderr;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  GtkDialog *dialog;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  GIOChannel *out_ch, *err_ch;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span> </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Plugin run"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <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>  remminafile = remmina_plugin_service-><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> </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  cmd = remmina_plugin_service-><a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">"execcommand"</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (!cmd) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  gtk_text_buffer_set_text (gpdata-><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>  _(<span class="stringliteral">"You did not set any command to be executed"</span>), -1);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  g_shell_parse_argv(cmd, NULL, &argv, &error);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">if</span> (error) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error->message, -1);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  remmina_plugin_service-><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>  g_error_free(error);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">if</span> (remmina_plugin_service-><a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">"runasync"</span>, FALSE)) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Run Async"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  g_spawn_async_with_pipes( NULL,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  argv,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  NULL,</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  G_SPAWN_DO_NOT_REAP_CHILD |</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  G_SPAWN_SEARCH_PATH_FROM_ENVP |</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  G_SPAWN_SEARCH_PATH,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  NULL,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  NULL,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  &child_pid,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  NULL,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  &child_stdout,</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  &child_stderr,</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  &error);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">if</span> (error != NULL) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error->message, -1);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  g_error_free(error);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  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> </div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <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>  out_ch = g_io_channel_unix_new(child_stdout);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  err_ch = g_io_channel_unix_new(child_stderr);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <span class="comment">/* Add watches to channels */</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  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>  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> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  _(<span class="stringliteral">"Warning: Running a command synchronously may cause Remmina not to respond.\nDo you really want to continue?"</span>)));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  gint result = gtk_dialog_run (GTK_DIALOG (dialog));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">switch</span> (result)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  <span class="keywordflow">case</span> GTK_RESPONSE_YES:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Run Sync"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  g_spawn_sync (NULL, <span class="comment">// CWD or NULL</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  argv,</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  NULL, <span class="comment">// ENVP or NULL</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  G_SPAWN_SEARCH_PATH |</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  G_SPAWN_SEARCH_PATH_FROM_ENVP,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  NULL,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  NULL,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  &stdout_buffer, <span class="comment">// STDOUT</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  &stderr_buffer, <span class="comment">// STDERR</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  NULL, <span class="comment">// Exit status</span></div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  &error);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  <span class="keywordflow">if</span> (!error) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Command executed"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  gtk_text_buffer_set_text (gpdata-><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>  }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  g_warning(<span class="stringliteral">"Command %s exited with error: %s\n"</span>, cmd, error->message);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error->message, -1);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  g_error_free(error);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span> </div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  g_strfreev(argv);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span> }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span> </div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088"> 247</a></span> <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> {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Plugin close"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span> <span class="comment">/* Array of RemminaProtocolSetting for basic settings.</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span> <span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span> <span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span> <span class="comment"> * b) Setting name</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span> <span class="comment"> * c) Setting description</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <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> <span class="comment"> * f) Setting tooltip</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span> <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> <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> <span class="comment"> * use following prototype:</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span> <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> <span class="comment"> * gpointer validator_data);</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span> <span class="comment"> * gpointer key is a gchar* containing the setting's name,</span></div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <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> <span class="comment"> * gpointer validator_data contains your passed data.</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <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> <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> {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">"execcommand"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Command"</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">"runasync"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Asynchronous execution"</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  { <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> };</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <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> <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>  <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>  PLUGIN_NAME, <span class="comment">// Name</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  PLUGIN_DESCRIPTION, <span class="comment">// Description</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  PLUGIN_VERSION, <span class="comment">// Version number</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  PLUGIN_APPICON, <span class="comment">// Icon for normal connection</span></div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  PLUGIN_APPICON, <span class="comment">// Icon for SSH connection</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  <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>  NULL, <span class="comment">// Array for advanced settings</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  <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>  NULL, <span class="comment">// Array for available features</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <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>  <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>  <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>  NULL, <span class="comment">// Query for available features</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>  NULL, <span class="comment">// Call a feature</span></div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  NULL, <span class="comment">// Send a keystroke</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  NULL, <span class="comment">// No screenshot support available</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  NULL, <span class="comment">// RCW map event</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  NULL <span class="comment">// RCW unmap event</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span> };</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208"> 303</a></span> 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> {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  remmina_plugin_service = service;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span> </div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">"UTF-8"</span>);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span> </div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">if</span> (!service-><a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)&remmina_plugin)) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span> </div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span> }</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> <span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <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> <span class="comment"> *</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment"> * Initially based on the plugin "Remmina Plugin EXEC", created and written by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"> * Fabio Castelli (Muflone) <muflone@vbsimple.net>.</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <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> <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> <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> <span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment"> *</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <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> <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> <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> <span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment"> *</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <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> <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> <span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="comment"> *</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <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> <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> <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> <span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="comment"> * including the two.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <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> <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> <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> <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> <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> <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> <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> <span class="comment"> *</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span> <span class="comment"> */</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span> </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor">#include "<a class="code" href="exec__plugin__config_8h.html">exec_plugin_config.h</a>"</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span> </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="preprocessor">#include "<a class="code" href="remmina__plugin_8h.html">common/remmina_plugin.h</a>"</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span> </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="preprocessor">#include <gdk/gdkkeysyms.h></span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#include <gtk/gtk.h></span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor">#include <glib.h></span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor">#include <stdlib.h></span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span> <span class="preprocessor">#include <sys/wait.h></span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span> <span class="preprocessor">#include <unistd.h></span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span> <span class="preprocessor">#define GET_PLUGIN_DATA(gp) (RemminaPluginExecData*)g_object_get_data(G_OBJECT(gp), "plugin-data")</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span> </div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct___remmina_plugin_exec_data.html"> 51</a></span> <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>  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>  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>  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>  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>  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> } <a class="code" href="exec__plugin_8c.html#a44fb47f82521cf4e8a802f4042f6edb8">RemminaPluginExecData</a>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span> </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a9493664f6bdafe3f5b593c3e5e1eacc7"> 59</a></span> <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> <span class="preprocessor">#define REMMINA_PLUGIN_DEBUG(fmt, ...) remmina_plugin_service->_remmina_debug(__func__, fmt, ##__VA_ARGS__)</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span> </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <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> <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> {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="comment">/* Close pid */</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  g_spawn_close_pid( pid );</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span> }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span> </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74"> 70</a></span> <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>  <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>  setpgid(pid, 0);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span> }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span> </div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  <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> <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> {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  gchar *string;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  gsize size;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <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> </div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  g_io_channel_unref( channel );</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span> </div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  g_io_channel_read_line( channel, &<span class="keywordtype">string</span>, &size, NULL, NULL );</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  gtk_text_buffer_insert_at_cursor( gpdata-><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>  g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span> </div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span> }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span> </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <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> <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> {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  gchar *string;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  gsize size;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  <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> </div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  <span class="keywordflow">if</span>( cond == G_IO_HUP )</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  g_io_channel_unref( channel );</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span> </div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  g_io_channel_read_line( channel, &<span class="keywordtype">string</span>, &size, NULL, NULL );</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  gtk_text_buffer_insert_at_cursor( gpdata-><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>  g_free( <span class="keywordtype">string</span> );</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span> }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span> </div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a53edac9deab20832959582a95bedcafe"> 117</a></span> <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> {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  <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> </div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Plugin init"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span> </div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  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>  g_object_set_data_full(G_OBJECT(gp), <span class="stringliteral">"plugin-data"</span>, gpdata, g_free);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span> </div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  gpdata-><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>  gpdata-><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>  gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(gpdata-><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>  gtk_text_view_set_editable(GTK_TEXT_VIEW(gpdata-><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>  gtk_text_view_set_left_margin (GTK_TEXT_VIEW (gpdata-><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>  gtk_text_view_set_right_margin (GTK_TEXT_VIEW (gpdata-><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>  gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a> = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gpdata-><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>  gpdata-><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>  gtk_widget_set_size_request (gpdata-><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>  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (gpdata-><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>  GTK_POLICY_AUTOMATIC,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  GTK_POLICY_AUTOMATIC);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  gtk_container_add(GTK_CONTAINER(gp), gpdata-><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>  gtk_container_add(GTK_CONTAINER(gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a59117466c585cabdc32c363083867bbb">sw</a>), gpdata-><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>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, <span class="stringliteral">"Remmina Exec Plugin Logger"</span>, -1);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span> </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  gtk_widget_show_all(gpdata-><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> }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span> </div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a11eddf7a4294b5650382e025f9f2a0ad"> 146</a></span> <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> {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  <span class="keyword">const</span> gchar *cmd;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  gchar *stdout_buffer;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  gchar *stderr_buffer;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keywordtype">char</span> **argv;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  GError *error = NULL;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  GPid child_pid;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  gint child_stdout, child_stderr;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  GtkDialog *dialog;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  GIOChannel *out_ch, *err_ch;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span> </div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Plugin run"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <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>  remminafile = remmina_plugin_service-><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> </div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  cmd = remmina_plugin_service-><a class="code" href="struct___remmina_plugin_service.html#a673ff4320377c3b440dfd24a796c69fc">file_get_string</a>(remminafile, <span class="stringliteral">"execcommand"</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  <span class="keywordflow">if</span> (!cmd) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  gtk_text_buffer_set_text (gpdata-><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>  _(<span class="stringliteral">"You did not set any command to be executed"</span>), -1);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span> </div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  g_shell_parse_argv(cmd, NULL, &argv, &error);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <span class="keywordflow">if</span> (error) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error->message, -1);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  remmina_plugin_service-><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>  g_error_free(error);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span> </div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <span class="keywordflow">if</span> (remmina_plugin_service-><a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">"runasync"</span>, FALSE)) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Run Async"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  g_spawn_async_with_pipes( NULL,</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  argv,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  NULL,</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  G_SPAWN_DO_NOT_REAP_CHILD |</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  G_SPAWN_SEARCH_PATH_FROM_ENVP |</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  G_SPAWN_SEARCH_PATH,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <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>  NULL,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  &child_pid,</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  NULL,</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  &child_stdout,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  &child_stderr,</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  &error);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  <span class="keywordflow">if</span> (error != NULL) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error->message, -1);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  g_error_free(error);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  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> </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  gpdata-><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>  <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>  out_ch = g_io_channel_unix_new(child_stdout);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  err_ch = g_io_channel_unix_new(child_stderr);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  <span class="comment">/* Add watches to channels */</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  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>  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> </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  dialog = GTK_DIALOG(gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO,</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  _(<span class="stringliteral">"Warning: Running a command synchronously may cause Remmina not to respond.\nDo you really want to continue?"</span>)));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  gint result = gtk_dialog_run (GTK_DIALOG (dialog));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span> </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">switch</span> (result)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  <span class="keywordflow">case</span> GTK_RESPONSE_YES:</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  <span class="keywordflow">default</span>:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  gtk_widget_destroy(GTK_WIDGET(dialog));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Run Sync"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  g_spawn_sync (NULL, <span class="comment">// CWD or NULL</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  argv,</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  NULL, <span class="comment">// ENVP or NULL</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  G_SPAWN_SEARCH_PATH |</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  G_SPAWN_SEARCH_PATH_FROM_ENVP,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  NULL,</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  NULL,</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  &stdout_buffer, <span class="comment">// STDOUT</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  &stderr_buffer, <span class="comment">// STDERR</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  NULL, <span class="comment">// Exit status</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  &error);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span> (!error) {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Command executed"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  gtk_text_buffer_set_text (gpdata-><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>  }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  g_warning(<span class="stringliteral">"Command %s exited with error: %s\n"</span>, cmd, error->message);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  gtk_text_buffer_set_text (gpdata-><a class="code" href="struct___remmina_plugin_exec_data.html#a9adc6a977b68bd6fc1dc1f60c834ed41">log_buffer</a>, error->message, -1);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  g_error_free(error);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span> </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  g_strfreev(argv);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span> </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span> }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span> </div><div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a775ebb715d8db084d673e05ae526c088"> 255</a></span> <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> {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  REMMINA_PLUGIN_DEBUG(<span class="stringliteral">"[%s] Plugin close"</span>, PLUGIN_NAME);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <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>  <span class="comment">//if async process was started, make sure it's dead if option is selected</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a>* remminafile = remmina_plugin_service-><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>  <span class="keywordflow">if</span> (remmina_plugin_service-><a class="code" href="struct___remmina_plugin_service.html#a0c7eab256e1b1fdf84be44e28cddc3de">file_get_int</a>(remminafile, <span class="stringliteral">"kill_proc"</span>, FALSE)) {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">if</span> (gpdata-><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>  <span class="keywordtype">int</span> pgid = getpgid(gpdata-><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>  <span class="keywordflow">if</span> (pgid != 0){</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  kill(-gpdata-><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>  }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keywordflow">else</span>{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  kill(gpdata-><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>  }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  remmina_plugin_service-><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>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span> }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span> </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span> <span class="comment">/* Array of RemminaProtocolSetting for basic settings.</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <span class="comment"> * Each item is composed by:</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span> <span class="comment"> * a) RemminaProtocolSettingType for setting type</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span> <span class="comment"> * b) Setting name</span></div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span> <span class="comment"> * c) Setting description</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span> <span class="comment"> * d) Compact disposition</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span> <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> <span class="comment"> * f) Setting tooltip</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span> <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> <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> <span class="comment"> * use following prototype:</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span> <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> <span class="comment"> * gpointer validator_data);</span></div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span> <span class="comment"> * gpointer key is a gchar* containing the setting's name,</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span> <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> <span class="comment"> * gpointer validator_data contains your passed data.</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span> <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> <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> {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a8be3f210c609fde31f68e607c41de296">REMMINA_PROTOCOL_SETTING_TYPE_TEXT</a>, <span class="stringliteral">"execcommand"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Command"</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">"runasync"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Asynchronous execution"</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  { <a class="code" href="types_8h.html#aee1a3e130e6991978acd907b52204350a52a80f3f9b84e9e0d0bf3335cfd7527f">REMMINA_PROTOCOL_SETTING_TYPE_CHECK</a>, <span class="stringliteral">"kill_proc"</span>, <a class="code" href="vnc__plugin_8c.html#ab96ef9227ecef94018f2729f72e7651e">N_</a>(<span class="stringliteral">"Kill process on disconnect"</span>), FALSE, NULL, NULL, NULL, NULL },</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  { <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> };</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span> </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span> <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> <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>  <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>  PLUGIN_NAME, <span class="comment">// Name</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  PLUGIN_DESCRIPTION, <span class="comment">// Description</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  GETTEXT_PACKAGE, <span class="comment">// Translation domain</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  PLUGIN_VERSION, <span class="comment">// Version number</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  PLUGIN_APPICON, <span class="comment">// Icon for normal connection</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  PLUGIN_APPICON, <span class="comment">// Icon for SSH connection</span></div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  <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>  NULL, <span class="comment">// Array for advanced settings</span></div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <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>  NULL, <span class="comment">// Array for available features</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <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>  <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>  <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>  NULL, <span class="comment">// Query for available features</span></div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  NULL, <span class="comment">// Call a feature</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  NULL, <span class="comment">// Send a keystroke</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  NULL, <span class="comment">// No screenshot support available</span></div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  NULL, <span class="comment">// RCW map event</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  NULL <span class="comment">// RCW unmap event</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span> };</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span> </div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="exec__plugin_8c.html#a56e5020de11446dbc23f3480e313f208"> 327</a></span> 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> {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  TRACE_CALL(__func__);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  remmina_plugin_service = service;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span> </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  bindtextdomain(GETTEXT_PACKAGE, REMMINA_RUNTIME_LOCALEDIR);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  bind_textdomain_codeset(GETTEXT_PACKAGE, <span class="stringliteral">"UTF-8"</span>);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span> </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">if</span> (!service-><a class="code" href="struct___remmina_plugin_service.html#a529cc64f67b16f13f0445add690a8df2">register_plugin</a>((<a class="code" href="struct___remmina_plugin.html">RemminaPlugin</a>*)&remmina_plugin)) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span> </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span> }</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_("Unable to connect to VNC server")</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 &#39;remmina&#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): remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN(): remmina_ssh.h']]], + ['remmina_5fssh_5ftunnel_5fopen',['REMMINA_SSH_TUNNEL_OPEN',['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798a78cac65c66c1f72592488c7c5728ea14',1,'REMMINA_SSH_TUNNEL_OPEN(): remmina_ssh.h'],['../remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53',1,'remmina_ssh_tunnel_open(RemminaSSHTunnel *tunnel, const gchar *host, gint port, gint local_port): remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5freverse',['remmina_ssh_tunnel_reverse',['../remmina__ssh_8h.html#ae47c8270267b02b9c0ff5b36074101c2',1,'remmina_ssh_tunnel_reverse(RemminaSSHTunnel *tunnel, gint port, gint local_port): remmina_ssh.h'],['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798ae14c0d50235951946ca18866a1329459',1,'REMMINA_SSH_TUNNEL_REVERSE(): remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5fterminated',['remmina_ssh_tunnel_terminated',['../remmina__ssh_8h.html#aeb20d31243a4d30e469a34fe01684e38',1,'remmina_ssh.h']]], ['remmina_5fssh_5ftunnel_5fxport',['REMMINA_SSH_TUNNEL_XPORT',['../remmina__ssh_8h.html#a77867ab4129f63159b37bca3b652a798afbca41cd7b252c2594e1d53cd081b326',1,'REMMINA_SSH_TUNNEL_XPORT(): remmina_ssh.h'],['../remmina__ssh_8h.html#aba49db2ced40e21e8adfad69dcfda2c4',1,'remmina_ssh_tunnel_xport(RemminaSSHTunnel *tunnel, gboolean bindlocalhost): remmina_ssh.h']]], @@ -1600,7 +1600,7 @@ var searchData= ['remminalanguagewrapperplugin',['RemminaLanguageWrapperPlugin',['../plugin_8h.html#a4cc4789bb1ba76d339b61b364399c304',1,'plugin.h']]], ['remminalogwindow',['RemminaLogWindow',['../remmina__log_8c.html#ad5a920aad512279bb932bcb26a2c3c19',1,'remmina_log.c']]], ['remminalogwindowclass',['RemminaLogWindowClass',['../remmina__log_8c.html#a5682db89dd84e1c413326e17a4f79dbe',1,'remmina_log.c']]], - ['remminamain',['RemminaMain',['../remmina__main_8h.html#ad17d9a48f2b3f84e17baa91104bc6cb1',1,'RemminaMain(): remmina_main.h'],['../remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89',1,'remminamain(): remmina_main.c']]], + ['remminamain',['remminamain',['../remmina__main_8c.html#ab7c680e1f6ffeef21cb928a083d36d89',1,'remminamain(): remmina_main.c'],['../remmina__main_8h.html#ad17d9a48f2b3f84e17baa91104bc6cb1',1,'RemminaMain(): remmina_main.h']]], ['remminamainpriv',['RemminaMainPriv',['../remmina__main_8h.html#a49e7c1b5d4dcfd155886e39d78b3d052',1,'remmina_main.h']]], ['remminamessagepanelcallback',['RemminaMessagePanelCallback',['../remmina__message__panel_8h.html#ae2923c94c1caf1ac4a7eb48361d2670a',1,'remmina_message_panel.h']]], ['remminamessagepanelflags',['RemminaMessagePanelFlags',['../types_8h.html#a341a0a8b6509633809d99348cc3ba486',1,'types.h']]], diff --git a/public/search/all_14.js b/public/search/all_14.js index 74cce3524..f2f1b068f 100644 --- a/public/search/all_14.js +++ b/public/search/all_14.js @@ -43,7 +43,7 @@ var searchData= ['toolbar_5fplacement_5ftop',['TOOLBAR_PLACEMENT_TOP',['../remmina__pref_8h.html#a4caf8d8f829279fba122163d961608a4a069738542d6980f9594299ab57221a7f',1,'remmina_pref.h']]], ['toolbarplace_5fsignal',['TOOLBARPLACE_SIGNAL',['../rcw_8c.html#adf764cbdea00d65edcd07bb9953ad2b7aa9941863b5633ddecb019f793f2f7668',1,'rcw.c']]], ['tooltip',['tooltip',['../struct___remmina_f_t_p_task.html#ac2b00cace6fd885736792664843be667',1,'_RemminaFTPTask']]], - ['top',['Top',['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()'],['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()']]], + ['top',['top',['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()'],['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()']]], ['transfer_5fclip_5fcond',['transfer_clip_cond',['../structrf__clipboard.html#acf5bf9da1a18e21409c4b10368f8dfd7',1,'rf_clipboard']]], ['transfer_5fclip_5fmutex',['transfer_clip_mutex',['../structrf__clipboard.html#a5c6be1637ed9e2ce72ffde2ed5400205',1,'rf_clipboard']]], ['translated_5fkeycode',['translated_keycode',['../structremmina__plugin__rdp__keymap__entry.html#aa63271d75f6dfda81584ddfb7c60b2a1',1,'remmina_plugin_rdp_keymap_entry']]], diff --git a/public/search/all_3.js b/public/search/all_3.js index 37274b094..0bf74d284 100644 --- a/public/search/all_3.js +++ b/public/search/all_3.js @@ -18,6 +18,7 @@ var searchData= ['cancel_5ftask',['cancel_task',['../struct___remmina_f_t_p_client_class.html#a99fedf4b912c0bb38662644fe4798a93',1,'_RemminaFTPClientClass']]], ['cancel_5ftask_5fsignal',['CANCEL_TASK_SIGNAL',['../remmina__ftp__client_8c.html#adc29c2ff13d900c2f185ee95427fb06ca53f24253e039f2efdaa4c7830958df03',1,'remmina_ftp_client.c']]], ['cancelled',['cancelled',['../structremmina__masterthread__exec__data.html#ac390f60a6ecc7312c7e4cbc1c4de0a63',1,'remmina_masterthread_exec_data::cancelled()'],['../structon_main_thread__cb__data.html#a75eab61445fbabacaa34f95e2437ea75',1,'onMainThread_cb_data::cancelled()']]], + ['cb_5fchild_5fsetup',['cb_child_setup',['../exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74',1,'exec_plugin.c']]], ['cb_5fchild_5fwatch',['cb_child_watch',['../exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71',1,'exec_plugin.c']]], ['cb_5fclosewidget',['cb_closewidget',['../remmina__exec_8c.html#a0ffd51ed283da4640c920e75e89e694a',1,'remmina_exec.c']]], ['cb_5ferr_5fwatch',['cb_err_watch',['../exec__plugin_8c.html#ab43db37b96c68093747620fbde879327',1,'exec_plugin.c']]], diff --git a/public/search/functions_3.js b/public/search/functions_3.js index 9b49ddcf1..4b11c8cb0 100644 --- a/public/search/functions_3.js +++ b/public/search/functions_3.js @@ -5,6 +5,7 @@ var searchData= ['cancel_5fopen_5fconnection_5fcb',['cancel_open_connection_cb',['../remmina__protocol__widget_8c.html#a4fb4c2252289e8e891376db6279ef8f5',1,'remmina_protocol_widget.c']]], ['cancel_5fstart_5fdirect_5ftunnel_5fcb',['cancel_start_direct_tunnel_cb',['../remmina__protocol__widget_8c.html#a0a93da80662ff18b93270ced59243ce3',1,'remmina_protocol_widget.c']]], ['cancel_5fstart_5freverse_5ftunnel_5fcb',['cancel_start_reverse_tunnel_cb',['../remmina__protocol__widget_8c.html#aeffe07c6412286d99ba04f05fe74aeac',1,'remmina_protocol_widget.c']]], + ['cb_5fchild_5fsetup',['cb_child_setup',['../exec__plugin_8c.html#a26f6bd87259193e03faa2b969f92dc74',1,'exec_plugin.c']]], ['cb_5fchild_5fwatch',['cb_child_watch',['../exec__plugin_8c.html#ae5fe6643dc64e9250dc2a33e9f266e71',1,'exec_plugin.c']]], ['cb_5fclosewidget',['cb_closewidget',['../remmina__exec_8c.html#a0ffd51ed283da4640c920e75e89e694a',1,'remmina_exec.c']]], ['cb_5ferr_5fwatch',['cb_err_watch',['../exec__plugin_8c.html#ab43db37b96c68093747620fbde879327',1,'exec_plugin.c']]], diff --git a/public/search/variables_13.js b/public/search/variables_13.js index 58ce55ace..12551c7b0 100644 --- a/public/search/variables_13.js +++ b/public/search/variables_13.js @@ -25,7 +25,7 @@ var searchData= ['toolbar_5fplace',['toolbar_place',['../struct___remmina_connection_window_class.html#aeb815c87f3bddad607a61d293eef661d',1,'_RemminaConnectionWindowClass']]], ['toolbar_5fplacement',['toolbar_placement',['../struct___remmina_pref.html#a0242e9fcc63d6d24257f63fc23077133',1,'_RemminaPref']]], ['tooltip',['tooltip',['../struct___remmina_f_t_p_task.html#ac2b00cace6fd885736792664843be667',1,'_RemminaFTPTask']]], - ['top',['Top',['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()'],['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()']]], + ['top',['top',['../structremmina__plugin__rdp__ui__object.html#a8303068061e16a6a1878be52b6403070',1,'remmina_plugin_rdp_ui_object::top()'],['../structremmina__plugin__rdp__event.html#a880c2311bdcc07c03842427490da7764',1,'remmina_plugin_rdp_event::Top()']]], ['transfer_5fclip_5fcond',['transfer_clip_cond',['../structrf__clipboard.html#acf5bf9da1a18e21409c4b10368f8dfd7',1,'rf_clipboard']]], ['transfer_5fclip_5fmutex',['transfer_clip_mutex',['../structrf__clipboard.html#a5c6be1637ed9e2ce72ffde2ed5400205',1,'rf_clipboard']]], ['translated_5fkeycode',['translated_keycode',['../structremmina__plugin__rdp__keymap__entry.html#aa63271d75f6dfda81584ddfb7c60b2a1',1,'remmina_plugin_rdp_keymap_entry']]], diff --git a/public/search/variables_f.js b/public/search/variables_f.js index 3cfcb5c76..1cbcdb6d9 100644 --- a/public/search/variables_f.js +++ b/public/search/variables_f.js @@ -20,6 +20,7 @@ var searchData= ['pformatlist',['pFormatList',['../structremmina__plugin__rdp__event.html#a02c2d40efeac883dcc6294be9782e082',1,'remmina_plugin_rdp_event']]], ['physicalheight',['physicalHeight',['../structremmina__plugin__rdp__event.html#aab8e2356f6619d11ecc80b8b767ca815',1,'remmina_plugin_rdp_event']]], ['physicalwidth',['physicalWidth',['../structremmina__plugin__rdp__event.html#af62c17a8001e045d3f9e781a0a5089ef',1,'remmina_plugin_rdp_event']]], + ['pid',['pid',['../struct___remmina_plugin_exec_data.html#a8e029765416cac86abd48f12eb0c4de6',1,'_RemminaPluginExecData']]], ['pidx2go',['pidx2go',['../struct___remmina_plugin_x2_go_data.html#a096eb53491e1297c8119badfb75df393',1,'_RemminaPluginX2GoData']]], ['pixmap',['pixmap',['../structrf__bitmap.html#a6210ab69c4338e23396f6838a255a50b',1,'rf_bitmap::pixmap()'],['../structrf__glyph.html#a19abe408a1c2a4c0c27ecddafb60cc22',1,'rf_glyph::pixmap()']]], ['plugin',['plugin',['../struct___remmina_protocol_widget_priv.html#a2381772c96a26aafc98d347d210dbfe0',1,'_RemminaProtocolWidgetPriv::plugin()'],['../struct___remmina_protocol_widget.html#aa7b9f54b6bb8bb01c24a8740b9c3633c',1,'_RemminaProtocolWidget::plugin()']]], diff --git a/public/struct___remmina_plugin_exec_data.html b/public/struct___remmina_plugin_exec_data.html index 54b5d7f0d..6135d40b7 100644 --- a/public/struct___remmina_plugin_exec_data.html +++ b/public/struct___remmina_plugin_exec_data.html @@ -99,6 +99,8 @@ Data Fields</h2></td></tr> <tr class="separator:a9ff6bc2fe9796bdc74fda1677ebf80c4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:a59117466c585cabdc32c363083867bbb"><td class="memItemLeft" align="right" valign="top">GtkWidget * </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"> </td></tr> +<tr class="memitem:a8e029765416cac86abd48f12eb0c4de6"><td class="memItemLeft" align="right" valign="top">GPid </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"> </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">◆ </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">◆ </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 |