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

gitlab.com/Remmina/remminadoc.gitlab.io.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2023-06-01 16:02:31 +0300
committerAntenore Gatta <antenore@simbiosi.org>2023-06-01 16:02:31 +0300
commit0dbfccbf3824f1a30f550dd902d37058e62f6274 (patch)
tree7e2e7a7e96f7a31bba17597b0fc45cce8cf95418
parentfe1a5b4636d7df256373d473f85fb3a4c3510e47 (diff)
Automatic doc build by remmina-ci
-rw-r--r--public/plugin_8h_source.html14
-rw-r--r--public/remmina__log_8c.html28
-rw-r--r--public/remmina__log_8c_source.html30
-rw-r--r--public/remmina__log_8h.html20
-rw-r--r--public/remmina__log_8h_source.html20
-rw-r--r--public/remmina__plugin__manager_8c_source.html18
-rw-r--r--public/remmina__ssh_8c_source.html2
7 files changed, 66 insertions, 66 deletions
diff --git a/public/plugin_8h_source.html b/public/plugin_8h_source.html
index 240fbfd55..e344c5f04 100644
--- a/public/plugin_8h_source.html
+++ b/public/plugin_8h_source.html
@@ -118,7 +118,7 @@ $(document).ready(function(){initNavTree('plugin_8h_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__protocol__widget_8c_html_a84bcd4be8bed8010af993547d4800384"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a84bcd4be8bed8010af993547d4800384">protocol_widget_get_current_scale_mode</a></div><div class="ttdeci">static PyObject * protocol_widget_get_current_scale_mode(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00326">python_wrapper_protocol_widget.c:326</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a004f096d606721a81e53ac18e187db0f"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a004f096d606721a81e53ac18e187db0f">protocol_widget_unlock_dynres</a></div><div class="ttdeci">static PyObject * protocol_widget_unlock_dynres(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00560">python_wrapper_protocol_widget.c:560</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00381">remmina_log.c:381</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00382">remmina_log.c:382</a></div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_aa5727804eb3f5cd4a4a40acb98df76bb"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#aa5727804eb3f5cd4a4a40acb98df76bb">_RemminaProtocolPlugin::ssh_setting</a></div><div class="ttdeci">RemminaProtocolSSHSetting ssh_setting</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00076">plugin.h:76</a></div></div>
<div class="ttc" id="plugin_8h_html_a52531fe685f868ce2bf593ed7328e8fd"><div class="ttname"><a href="plugin_8h.html#a52531fe685f868ce2bf593ed7328e8fd">RemminaProtocolPlugin</a></div><div class="ttdeci">struct _RemminaProtocolPlugin RemminaProtocolPlugin</div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a0c78595e80159625ca60527668e9e1fb"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a0c78595e80159625ca60527668e9e1fb">protocol_widget_panel_show_listen</a></div><div class="ttdeci">static PyObject * protocol_widget_panel_show_listen(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00695">python_wrapper_protocol_widget.c:695</a></div></div>
@@ -128,14 +128,14 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<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>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html_a024d3e6d752dd29828b31c60c8c7c201"><div class="ttname"><a href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">_RemminaPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00060">plugin.h:60</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00285">remmina_log.c:285</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00286">remmina_log.c:286</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a520457aa6bf810e775617809df7e0e61"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a520457aa6bf810e775617809df7e0e61">protocol_widget_update_align</a></div><div class="ttdeci">static PyObject * protocol_widget_update_align(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00551">python_wrapper_protocol_widget.c:551</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>
<div class="ttc" id="struct___remmina_secret_plugin_html_abbe56963e94b1a131f3e6d9bcafce772"><div class="ttname"><a href="struct___remmina_secret_plugin.html#abbe56963e94b1a131f3e6d9bcafce772">_RemminaSecretPlugin::delete_password</a></div><div class="ttdeci">void(* delete_password)(struct _RemminaSecretPlugin *instance, RemminaFile *remminafile, const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00147">plugin.h:147</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_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="remmina__log_8c_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00312">remmina_log.c:312</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00313">remmina_log.c:313</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a5ec62969da54155e24edcb1d998f93f7"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a></div><div class="ttdeci">RemminaScaleMode remmina_protocol_widget_get_current_scale_mode(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01413">remmina_protocol_widget.c:1413</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="struct___remmina_language_wrapper_plugin_html_ade9917bdf8e926b342900280b984fded"><div class="ttname"><a href="struct___remmina_language_wrapper_plugin.html#ade9917bdf8e926b342900280b984fded">_RemminaLanguageWrapperPlugin::type</a></div><div class="ttdeci">RemminaPluginType type</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00151">plugin.h:151</a></div></div>
@@ -147,7 +147,7 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<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>
<div class="ttc" id="struct___remmina_entry_plugin_html"><div class="ttname"><a href="struct___remmina_entry_plugin.html">_RemminaEntryPlugin</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00090">plugin.h:90</a></div></div>
<div class="ttc" id="plugin_8h_html_a144360664546fcbf4d5aa0457c395f25"><div class="ttname"><a href="plugin_8h.html#a144360664546fcbf4d5aa0457c395f25">RemminaToolPlugin</a></div><div class="ttdeci">struct _RemminaToolPlugin RemminaToolPlugin</div></div>
-<div class="ttc" id="remmina__log_8c_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00258">remmina_log.c:258</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00259">remmina_log.c:259</a></div></div>
<div class="ttc" id="python__wrapper__remmina__file_8c_html_ab4229f3335c43efd45356880fee4d0c7"><div class="ttname"><a href="python__wrapper__remmina__file_8c.html#ab4229f3335c43efd45356880fee4d0c7">file_unsave_passwords</a></div><div class="ttdeci">static PyObject * file_unsave_passwords(PyRemminaFile *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__remmina__file_8c_source.html#l00191">python_wrapper_remmina_file.c:191</a></div></div>
<div class="ttc" id="struct___remmina_language_wrapper_plugin_html_a122aa4942c59646f92c18214cbb6cff0"><div class="ttname"><a href="struct___remmina_language_wrapper_plugin.html#a122aa4942c59646f92c18214cbb6cff0">_RemminaLanguageWrapperPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00154">plugin.h:154</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a2ef0af826bce30c53f33e28dfa3d9a2f"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a2ef0af826bce30c53f33e28dfa3d9a2f">protocol_widget_send_keys_signals</a></div><div class="ttdeci">static PyObject * protocol_widget_send_keys_signals(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00817">python_wrapper_protocol_widget.c:817</a></div></div>
@@ -182,7 +182,7 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<div class="ttc" id="struct___remmina_protocol_plugin_html_ac783acfaf93007d0100bd02f1faff7f0"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#ac783acfaf93007d0100bd02f1faff7f0">_RemminaProtocolPlugin::type</a></div><div class="ttdeci">RemminaPluginType type</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00066">plugin.h:66</a></div></div>
<div class="ttc" id="struct___remmina_tool_plugin_html_adcdd7f3020665461c0a95a47ac6675af"><div class="ttname"><a href="struct___remmina_tool_plugin.html#adcdd7f3020665461c0a95a47ac6675af">_RemminaToolPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00116">plugin.h:116</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_a57bd5b61ad42a9fdd7e411fe6936ae29"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#a57bd5b61ad42a9fdd7e411fe6936ae29">protocol_widget_get_expand</a></div><div class="ttdeci">static PyObject * protocol_widget_get_expand(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00334">python_wrapper_protocol_widget.c:334</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00205">remmina_log.c:205</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00206">remmina_log.c:206</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="plugin_8h_html_a59fee7dbde41c8d29059ca64622d1948"><div class="ttname"><a href="plugin_8h.html#a59fee7dbde41c8d29059ca64622d1948">RemminaPluginEntryFunc</a></div><div class="ttdeci">gboolean(* RemminaPluginEntryFunc)(RemminaPluginService *service)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00306">plugin.h:306</a></div></div>
<div class="ttc" id="types_8h_html_aeea5ee1e675368413b6f6ab09883e7de"><div class="ttname"><a href="types_8h.html#aeea5ee1e675368413b6f6ab09883e7de">RemminaScaleMode</a></div><div class="ttdeci">RemminaScaleMode</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00141">types.h:141</a></div></div>
@@ -211,7 +211,7 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_aab3fe87a08d1291ff5baca5972834a96"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#aab3fe87a08d1291ff5baca5972834a96">protocol_widget_panel_show</a></div><div class="ttdeci">static PyObject * protocol_widget_panel_show(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00722">python_wrapper_protocol_widget.c:722</a></div></div>
<div class="ttc" id="plugin_8h_html_a55c60503140443d4fec9e84c33dfdd22"><div class="ttname"><a href="plugin_8h.html#a55c60503140443d4fec9e84c33dfdd22">RemminaPlugin</a></div><div class="ttdeci">struct _RemminaPlugin RemminaPlugin</div></div>
<div class="ttc" id="struct___remmina_protocol_plugin_html_a9552c70a10eea2b8263dbc7d05e2fb10"><div class="ttname"><a href="struct___remmina_protocol_plugin.html#a9552c70a10eea2b8263dbc7d05e2fb10">_RemminaProtocolPlugin::icon_name</a></div><div class="ttdeci">const gchar * icon_name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00072">plugin.h:72</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00229">remmina_log.c:229</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00230">remmina_log.c:230</a></div></div>
<div class="ttc" id="struct___remmina_tool_plugin_html_ae812659a7e2bd72a7875a05193b88176"><div class="ttname"><a href="struct___remmina_tool_plugin.html#ae812659a7e2bd72a7875a05193b88176">_RemminaToolPlugin::type</a></div><div class="ttdeci">RemminaPluginType type</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00115">plugin.h:115</a></div></div>
<div class="ttc" id="python__wrapper__protocol__widget_8c_html_abf0befc7feb517dbd1643b602515bf33"><div class="ttname"><a href="python__wrapper__protocol__widget_8c.html#abf0befc7feb517dbd1643b602515bf33">protocol_widget_panel_changed_certificate</a></div><div class="ttdeci">static PyObject * protocol_widget_panel_changed_certificate(PyRemminaProtocolWidget *self, PyObject *args)</div><div class="ttdef"><b>Definition:</b> <a href="python__wrapper__protocol__widget_8c_source.html#l00596">python_wrapper_protocol_widget.c:596</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aa0d17e841a53921a7a6156f5d30e9f09c">REMMINA_PLUGIN_TYPE_SECRET</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00052">plugin.h:52</a></div></div>
@@ -221,7 +221,7 @@ $(document).ready(function(){initNavTree('plugin_8h_source.html','');});
<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="struct___remmina_plugin_html_a3f09b29bb3b0c044780d56a8b1a51582"><div class="ttname"><a href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">_RemminaPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00058">plugin.h:58</a></div></div>
<div class="ttc" id="plugin_8h_html_aaf53c620d115a4642130227cff4a624aae2648710d57bdd48a15a95e9c4cc234e"><div class="ttname"><a href="plugin_8h.html#aaf53c620d115a4642130227cff4a624aae2648710d57bdd48a15a95e9c4cc234e">REMMINA_PLUGIN_TYPE_ENTRY</a></div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00048">plugin.h:48</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00354">remmina_log.c:354</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00355">remmina_log.c:355</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/remmina__log_8c.html b/public/remmina__log_8c.html
index 87de47968..9d707129c 100644
--- a/public/remmina__log_8c.html
+++ b/public/remmina__log_8c.html
@@ -221,7 +221,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00312">312</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00313">313</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -257,7 +257,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00381">381</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00382">382</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -296,7 +296,7 @@ Variables</h2></td></tr>
<p>Print a string in the Remmina Debug Windows and in the terminal. </p>
<p>The string will be visible in the terminal if G_MESSAGES_DEBUG=all Variadic function of REMMINA_DEBUG </p>
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00258">258</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00259">259</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -332,7 +332,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00354">354</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00355">355</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -362,7 +362,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00205">205</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00206">206</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -392,7 +392,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00229">229</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00230">230</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -428,7 +428,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00285">285</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00286">286</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -510,7 +510,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00425">425</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00426">426</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -530,7 +530,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00196">196</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00197">197</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -558,7 +558,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00180">180</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00181">181</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -588,7 +588,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00410">410</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00411">411</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -608,7 +608,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00161">161</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00162">162</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -636,7 +636,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00167">167</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00168">168</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -770,7 +770,7 @@ Variables</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00444">444</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00445">445</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
diff --git a/public/remmina__log_8c_source.html b/public/remmina__log_8c_source.html
index 5e22de773..2f67cf329 100644
--- a/public/remmina__log_8c_source.html
+++ b/public/remmina__log_8c_source.html
@@ -86,30 +86,30 @@ $(document).ready(function(){initNavTree('remmina__log_8c_source.html','');});
<div class="title">remmina_log.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="remmina__log_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__log_8h.html">remmina_log.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__stats_8h.html">remmina_stats.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0"> 45</a></span>&#160;gboolean <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">/***** Define the log window GUI *****/</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define REMMINA_TYPE_LOG_WINDOW (remmina_log_window_get_type())</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define REMMINA_LOG_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), REMMINA_TYPE_LOG_WINDOW, RemminaLogWindow))</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#define REMMINA_LOG_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), REMMINA_TYPE_LOG_WINDOW, RemminaLogWindowClass))</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define REMMINA_IS_LOG_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), REMMINA_TYPE_LOG_WINDOW))</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#define REMMINA_IS_LOG_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), REMMINA_TYPE_LOG_WINDOW))</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define REMMINA_LOG_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), REMMINA_TYPE_LOG_WINDOW, RemminaLogWindowClass))</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html"> 55</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_log_window.html">_RemminaLogWindow</a> {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html#ae287dadd2c2a5bf704d7c494bcc74184"> 56</a></span>&#160; GtkWindow <a class="code" href="struct___remmina_log_window.html#ae287dadd2c2a5bf704d7c494bcc74184">window</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087"> 58</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232"> 59</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <a class="code" href="remmina__log_8c.html#ad5a920aad512279bb932bcb26a2c3c19">RemminaLogWindow</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct___remmina_log_window_class.html"> 62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_log_window_class.html">_RemminaLogWindowClass</a> {</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct___remmina_log_window_class.html#af63588f4d71726fcda17ae5c2adcf2af"> 63</a></span>&#160; GtkWindowClass <a class="code" href="struct___remmina_log_window_class.html#af63588f4d71726fcda17ae5c2adcf2af">parent_class</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="remmina__log_8c.html#a5682db89dd84e1c413326e17a4f79dbe">RemminaLogWindowClass</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a8f8d45cce779ec2a8db7bfdd02097a3e"> 66</a></span>&#160;GType <a class="code" href="remmina__log_8c.html#a8f8d45cce779ec2a8db7bfdd02097a3e">remmina_log_window_get_type</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;G_GNUC_CONST;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="rcw_8c.html#a21e0a6e416667f30c2b1599b8b24faec">G_DEFINE_TYPE</a>(<a class="code" href="struct___remmina_log_window.html">RemminaLogWindow</a>, remmina_log_window, GTK_TYPE_WINDOW)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> remmina_log_stats()</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; JsonNode *n;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; n = <a class="code" href="remmina__stats_8c.html#a7398b36347e3621772776c466b565641">remmina_stats_get_all</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (n != NULL) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; JsonGenerator *g = json_generator_new();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; json_generator_set_pretty (g, TRUE);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; json_generator_set_root(g, n);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; json_node_unref(n);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; g_autofree gchar *s = json_generator_to_data(g, NULL); <span class="comment">// s=serialized stats</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;STATS: JSON data%s\n&quot;</span>, s);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; g_object_unref(g);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a0c3592cad5a8e91cd4d0c3c1b2b1f427"> 89</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a0c3592cad5a8e91cd4d0c3c1b2b1f427">remmina_log_window_class_init</a>(<a class="code" href="struct___remmina_log_window_class.html">RemminaLogWindowClass</a> *klass)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">/* We will always only have one log window per instance */</span></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a"> 95</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> = NULL;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">static</span> GtkWidget*</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a070042aa580b708536dc793336722660"> 98</a></span>&#160;<a class="code" href="remmina__log_8c.html#a070042aa580b708536dc793336722660">remmina_log_window_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> GTK_WIDGET(g_object_new(REMMINA_TYPE_LOG_WINDOW, NULL));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a355067bd2e33d8942ad9d8af60c19f0c"> 104</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a355067bd2e33d8942ad9d8af60c19f0c">remmina_log_end</a>(GtkWidget *widget, gpointer data)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> = NULL;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a8a5e75012fecec3ede5b29247760d5c3"> 110</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a8a5e75012fecec3ede5b29247760d5c3">remmina_log_start_stop</a> (GtkSwitch *logswitch, gpointer user_data)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a> = !<a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a72cf53183f3ef89c4208fdccb629003d"> 116</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a72cf53183f3ef89c4208fdccb629003d">remmina_log_start</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; gtk_window_present(GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> = <a class="code" href="remmina__log_8c.html#a070042aa580b708536dc793336722660">remmina_log_window_new</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; gtk_window_set_default_size(GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), 640, 480);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; gtk_window_set_resizable (GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), TRUE);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; gtk_window_set_decorated (GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), TRUE);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">/* Header bar */</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GtkWidget *header = gtk_header_bar_new ();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; gtk_header_bar_set_title (GTK_HEADER_BAR (header), _(<span class="stringliteral">&quot;Remmina debugging window&quot;</span>));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; gtk_header_bar_set_has_subtitle (GTK_HEADER_BAR (header), FALSE);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">/* Stats */</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GtkWidget *getstat = gtk_button_new ();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; gtk_widget_set_tooltip_text (getstat, _(<span class="stringliteral">&quot;Paste system info in the Remmina debugging window&quot;</span>));</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GIcon *icon = g_themed_icon_new (<span class="stringliteral">&quot;edit-paste-symbolic&quot;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GtkWidget *image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_BUTTON);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; g_object_unref (icon);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; gtk_container_add (GTK_CONTAINER (getstat), image);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; gtk_header_bar_pack_start (GTK_HEADER_BAR (header), getstat);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">/* Start logging */</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GtkWidget *start = gtk_switch_new ();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a> = TRUE;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; gtk_switch_set_active (GTK_SWITCH(start), <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; gtk_header_bar_pack_start (GTK_HEADER_BAR (header), start);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; gtk_window_set_titlebar (GTK_WINDOW (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), header);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; g_signal_connect(getstat, <span class="stringliteral">&quot;button-press-event&quot;</span>, G_CALLBACK(remmina_log_stats), NULL);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; g_signal_connect(start, <span class="stringliteral">&quot;notify::active&quot;</span>, G_CALLBACK(<a class="code" href="remmina__log_8c.html#a8a5e75012fecec3ede5b29247760d5c3">remmina_log_start_stop</a>), NULL);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; g_signal_connect(G_OBJECT(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="remmina__log_8c.html#a355067bd2e33d8942ad9d8af60c19f0c">remmina_log_end</a>), NULL);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; gtk_widget_show_all(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(_(<span class="stringliteral">&quot;This window can help you find connection problems.\n&quot;</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="stringliteral">&quot;You can stop and start the logging at any moment using the On/Off switch.\n&quot;</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="stringliteral">&quot;The stats button (Ctrl+T), can be useful to gather system info you may share when reporting a bug.\n&quot;</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="stringliteral">&quot;There is more info about debugging Remmina on https://gitlab.com/Remmina/Remmina/-/wikis/Usage/Remmina-debugging\n&quot;</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; ));</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a96f5bb72acbdcbf8793b4a5f4a6132b5"> 161</a></span>&#160;gboolean <a class="code" href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;{</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> != NULL);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b"> 167</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b">remmina_log_scroll_to_end</a>(gpointer data)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; GtkTextIter iter;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; gtk_text_buffer_get_end_iter(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>, &amp;iter);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a>), &amp;iter, 0.0, FALSE, 0.0,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; 0.0);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1"> 180</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>(gpointer data)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; GtkTextIter iter;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> &amp;&amp; <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; gtk_text_buffer_get_end_iter(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>, &amp;iter);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; gtk_text_buffer_insert(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>, &amp;iter, (<span class="keyword">const</span> gchar*)data, -1);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b">remmina_log_scroll_to_end</a>, NULL);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; g_free(data);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;<span class="comment">// Only prints into Remmina&#39;s own debug window. (Not stdout!)</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// See _remmina_{debug, info, error, critical, warning}</span></div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#aca8f826a273194e22f4467421af9b3aa"> 196</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(<span class="keyword">const</span> gchar *text)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, g_strdup(text));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;}</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a49817b70a398a2f21514fb0066c6e04c"> 205</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a>(<span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; va_list args;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; g_autofree gchar *text;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; va_end(args);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; g_info (<span class="stringliteral">&quot;%s&quot;</span>, text);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(text, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(INFO) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; free(bufn);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#ae439b5fb61045d22c9474b32d0158185"> 229</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>(<span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;{</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; va_list args;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; g_autofree gchar *text;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; va_end(args);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; g_message (<span class="stringliteral">&quot;%s&quot;</span>, text);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(text, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(MESSAGE) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a9234814488626cc2513e9fb255a90f53"> 258</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;{</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; va_list args;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; gchar *text;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; va_end(args);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; g_free(text);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; g_debug (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(DEBUG) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;}</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a8a47ecac307ae1787cdad1ccc4b43d13"> 285</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;{</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; va_list args;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; gchar *text;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; va_end(args);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; g_free(text);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; g_warning (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(WARN) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;}</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a19da9a0d0eac2a2b7fcc926dee2eb368"> 312</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;{</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; va_list args;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; gchar *text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; va_end(args);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;<span class="preprocessor">#if GLIB_CHECK_VERSION(2,62,0)</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; GDateTime* tv = g_date_time_new_now_local();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; gchar *isodate = g_date_time_format_iso8601(tv);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; g_date_time_unref(tv);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; GTimeVal tv;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; g_get_current_time(&amp;tv);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; gchar *isodate = g_time_val_to_iso8601(&amp;tv);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; g_autofree gchar *buf = g_strdup(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (isodate) {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; buf = g_strconcat(</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="stringliteral">&quot;[&quot;</span>, isodate, <span class="stringliteral">&quot;] - &quot;</span>,</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; g_get_host_name (),</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="stringliteral">&quot; - &quot;</span>,</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; g_get_user_name (),</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="stringliteral">&quot; - &quot;</span>,</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; text,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; NULL);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; }</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; g_free(text);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__pref_8c.html#a9a8d02227eb703bccc3f9296a5d89d6f">remmina_pref_get_boolean</a>(<span class="stringliteral">&quot;audit&quot;</span>))</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>(buf);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>(fun, buf);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;}</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="comment">// !!! Calling this function will crash Remmina !!!</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">// !!! purposefully and send a trap signal !!!</span></div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a984e0494481144aa121893f5d14025f7"> 354</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; va_list args;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; gchar *text;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; va_end(args);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; g_free(text);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; g_error (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(ERROR) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;}</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a35109f5950931f79c13dac26143a69d3"> 381</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;{</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; va_list args;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; gchar *text;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; va_end(args);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; g_free(text);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; g_critical (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(CRIT) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;}</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="comment">// Only prints into Remmina&#39;s own debug window. (Not stdout!)</span></div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment">// See _remmina_{message, info, debug warning, error, critical}</span></div><div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#ac7848510c1fe1990c992e28cd31af9d8"> 410</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; va_list args;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; gchar *text;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; va_end(args);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, text);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;}</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;</div><div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1"> 425</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1">remmina_log_on_keypress</a>(GtkWidget *widget, GdkEvent *event, gpointer user_data)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;{</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; GdkEventKey *e = (GdkEventKey *)event;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">if</span> ((e-&gt;state &amp; GDK_CONTROL_MASK) == GDK_CONTROL_MASK) {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span> (e-&gt;keyval == GDK_KEY_t) {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; remmina_log_stats();</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;}</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a1e5960f194353bd36d82bd9476c309bd"> 444</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a1e5960f194353bd36d82bd9476c309bd">remmina_log_window_init</a>(<a class="code" href="struct___remmina_log_window.html">RemminaLogWindow</a> *logwin)</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;{</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; GtkWidget *scrolledwindow;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(logwin), 4);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; scrolledwindow = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; gtk_widget_show(scrolledwindow);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; gtk_container_add(GTK_CONTAINER(logwin), scrolledwindow);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; widget = gtk_text_view_new();</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(widget), GTK_WRAP_WORD_CHAR);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; gtk_text_view_set_editable(GTK_TEXT_VIEW(widget), FALSE);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; gtk_text_view_set_monospace(GTK_TEXT_VIEW(widget), TRUE);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; gtk_container_add(GTK_CONTAINER(scrolledwindow), widget);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; logwin-&gt;<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a> = widget;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; logwin-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a> = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; g_signal_connect(G_OBJECT(logwin-&gt;<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a>), <span class="stringliteral">&quot;key-press-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1">remmina_log_on_keypress</a>), (gpointer)logwin);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="ttc" id="remmina__log_8c_html_a72cf53183f3ef89c4208fdccb629003d"><div class="ttname"><a href="remmina__log_8c.html#a72cf53183f3ef89c4208fdccb629003d">remmina_log_start</a></div><div class="ttdeci">void remmina_log_start(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00116">remmina_log.c:116</a></div></div>
+<a href="remmina__log_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2014-2015 Antenore Gatta, Fabio Castelli, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * Copyright (C) 2016-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__public_8h.html">remmina_public.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__pref_8h.html">remmina_pref.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__log_8h.html">remmina_log.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__stats_8h.html">remmina_stats.h</a>&quot;</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__trace__calls_8h.html">remmina/remmina_trace_calls.h</a>&quot;</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0"> 45</a></span>&#160;gboolean <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="comment">/***** Define the log window GUI *****/</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define REMMINA_TYPE_LOG_WINDOW (remmina_log_window_get_type())</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define REMMINA_LOG_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), REMMINA_TYPE_LOG_WINDOW, RemminaLogWindow))</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#define REMMINA_LOG_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), REMMINA_TYPE_LOG_WINDOW, RemminaLogWindowClass))</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#define REMMINA_IS_LOG_WINDOW(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), REMMINA_TYPE_LOG_WINDOW))</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#define REMMINA_IS_LOG_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), REMMINA_TYPE_LOG_WINDOW))</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#define REMMINA_LOG_WINDOW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), REMMINA_TYPE_LOG_WINDOW, RemminaLogWindowClass))</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html"> 55</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_log_window.html">_RemminaLogWindow</a> {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html#ae287dadd2c2a5bf704d7c494bcc74184"> 56</a></span>&#160; GtkWindow <a class="code" href="struct___remmina_log_window.html#ae287dadd2c2a5bf704d7c494bcc74184">window</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087"> 58</a></span>&#160; GtkWidget *<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232"> 59</a></span>&#160; GtkTextBuffer *<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;} <a class="code" href="remmina__log_8c.html#ad5a920aad512279bb932bcb26a2c3c19">RemminaLogWindow</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="struct___remmina_log_window_class.html"> 62</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct___remmina_log_window_class.html">_RemminaLogWindowClass</a> {</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="struct___remmina_log_window_class.html#af63588f4d71726fcda17ae5c2adcf2af"> 63</a></span>&#160; GtkWindowClass <a class="code" href="struct___remmina_log_window_class.html#af63588f4d71726fcda17ae5c2adcf2af">parent_class</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;} <a class="code" href="remmina__log_8c.html#a5682db89dd84e1c413326e17a4f79dbe">RemminaLogWindowClass</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a8f8d45cce779ec2a8db7bfdd02097a3e"> 66</a></span>&#160;GType <a class="code" href="remmina__log_8c.html#a8f8d45cce779ec2a8db7bfdd02097a3e">remmina_log_window_get_type</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;G_GNUC_CONST;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<a class="code" href="rcw_8c.html#a21e0a6e416667f30c2b1599b8b24faec">G_DEFINE_TYPE</a>(<a class="code" href="struct___remmina_log_window.html">RemminaLogWindow</a>, remmina_log_window, GTK_TYPE_WINDOW)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> remmina_log_stats()</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; JsonNode *n;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; n = <a class="code" href="remmina__stats_8c.html#a7398b36347e3621772776c466b565641">remmina_stats_get_all</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span> (n != NULL) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; JsonGenerator *g = json_generator_new();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; json_generator_set_pretty (g, TRUE);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; json_generator_set_root(g, n);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; json_node_unref(n);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; g_autofree gchar *s = json_generator_to_data(g, NULL); <span class="comment">// s=serialized stats</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; REMMINA_DEBUG(<span class="stringliteral">&quot;STATS: JSON data%s\n&quot;</span>, s);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; g_object_unref(g);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a0c3592cad5a8e91cd4d0c3c1b2b1f427"> 89</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a0c3592cad5a8e91cd4d0c3c1b2b1f427">remmina_log_window_class_init</a>(<a class="code" href="struct___remmina_log_window_class.html">RemminaLogWindowClass</a> *klass)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="comment">/* We will always only have one log window per instance */</span></div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a"> 95</a></span>&#160;<span class="keyword">static</span> GtkWidget *<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> = NULL;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keyword">static</span> GtkWidget*</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a070042aa580b708536dc793336722660"> 98</a></span>&#160;<a class="code" href="remmina__log_8c.html#a070042aa580b708536dc793336722660">remmina_log_window_new</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> GTK_WIDGET(g_object_new(REMMINA_TYPE_LOG_WINDOW, NULL));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a355067bd2e33d8942ad9d8af60c19f0c"> 104</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a355067bd2e33d8942ad9d8af60c19f0c">remmina_log_end</a>(GtkWidget *widget, gpointer data)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> = NULL;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a8a5e75012fecec3ede5b29247760d5c3"> 110</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a8a5e75012fecec3ede5b29247760d5c3">remmina_log_start_stop</a> (GtkSwitch *logswitch, gpointer user_data)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a> = !<a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a72cf53183f3ef89c4208fdccb629003d"> 116</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a72cf53183f3ef89c4208fdccb629003d">remmina_log_start</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; gtk_window_present(GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> = <a class="code" href="remmina__log_8c.html#a070042aa580b708536dc793336722660">remmina_log_window_new</a>();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; gtk_window_set_default_size(GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), 640, 480);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; gtk_window_set_resizable (GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), TRUE);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; gtk_window_set_decorated (GTK_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), TRUE);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">/* Header bar */</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GtkWidget *header = gtk_header_bar_new ();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (header), TRUE);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; gtk_header_bar_set_title (GTK_HEADER_BAR (header), _(<span class="stringliteral">&quot;Remmina debugging window&quot;</span>));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; gtk_header_bar_set_has_subtitle (GTK_HEADER_BAR (header), FALSE);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">/* Stats */</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; GtkWidget *getstat = gtk_button_new ();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; gtk_widget_set_tooltip_text (getstat, _(<span class="stringliteral">&quot;Paste system info in the Remmina debugging window&quot;</span>));</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; GIcon *icon = g_themed_icon_new (<span class="stringliteral">&quot;edit-paste-symbolic&quot;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GtkWidget *image = gtk_image_new_from_gicon (icon, GTK_ICON_SIZE_BUTTON);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; g_object_unref (icon);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; gtk_container_add (GTK_CONTAINER (getstat), image);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; gtk_header_bar_pack_start (GTK_HEADER_BAR (header), getstat);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">/* Start logging */</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; GtkWidget *start = gtk_switch_new ();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a> = TRUE;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; gtk_switch_set_active (GTK_SWITCH(start), <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; gtk_widget_set_valign (start, GTK_ALIGN_CENTER);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; gtk_header_bar_pack_start (GTK_HEADER_BAR (header), start);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; gtk_window_set_titlebar (GTK_WINDOW (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), header);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; g_signal_connect(getstat, <span class="stringliteral">&quot;button-press-event&quot;</span>, G_CALLBACK(remmina_log_stats), NULL);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; g_signal_connect(start, <span class="stringliteral">&quot;notify::active&quot;</span>, G_CALLBACK(<a class="code" href="remmina__log_8c.html#a8a5e75012fecec3ede5b29247760d5c3">remmina_log_start_stop</a>), NULL);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; g_signal_connect(G_OBJECT(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>), <span class="stringliteral">&quot;destroy&quot;</span>, G_CALLBACK(<a class="code" href="remmina__log_8c.html#a355067bd2e33d8942ad9d8af60c19f0c">remmina_log_end</a>), NULL);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; gtk_widget_show_all(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(_(<span class="stringliteral">&quot;This window can help you find connection problems.\n&quot;</span></div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="stringliteral">&quot;You can stop and start the logging at any moment using the On/Off switch.\n&quot;</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="stringliteral">&quot;The stats button (Ctrl+T), can be useful to gather system info you may share when reporting a bug.\n&quot;</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="stringliteral">&quot;There is more info about debugging Remmina on https://gitlab.com/Remmina/Remmina/-/wikis/Usage/Remmina-debugging\n&quot;</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; ));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a96f5bb72acbdcbf8793b4a5f4a6132b5"> 162</a></span>&#160;gboolean <a class="code" href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> != NULL);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b"> 168</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b">remmina_log_scroll_to_end</a>(gpointer data)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; GtkTextIter iter;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; gtk_text_buffer_get_end_iter(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>, &amp;iter);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; gtk_text_view_scroll_to_iter(GTK_TEXT_VIEW(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a>), &amp;iter, 0.0, FALSE, 0.0,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; 0.0);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1"> 181</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>(gpointer data)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; GtkTextIter iter;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a> &amp;&amp; <a class="code" href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a>) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; gtk_text_buffer_get_end_iter(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>, &amp;iter);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; gtk_text_buffer_insert(REMMINA_LOG_WINDOW(<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a>, &amp;iter, (<span class="keyword">const</span> gchar*)data, -1);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b">remmina_log_scroll_to_end</a>, NULL);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; g_free(data);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;<span class="comment">// Only prints into Remmina&#39;s own debug window. (Not stdout!)</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="comment">// See _remmina_{debug, info, error, critical, warning}</span></div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#aca8f826a273194e22f4467421af9b3aa"> 197</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(<span class="keyword">const</span> gchar *text)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;{</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, g_strdup(text));</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a49817b70a398a2f21514fb0066c6e04c"> 206</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a>(<span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;{</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; va_list args;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; g_autofree gchar *text;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; va_end(args);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; g_info (<span class="stringliteral">&quot;%s&quot;</span>, text);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(text, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(INFO) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; free(bufn);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#ae439b5fb61045d22c9474b32d0158185"> 230</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>(<span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; va_list args;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; g_autofree gchar *text;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; va_end(args);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; g_message (<span class="stringliteral">&quot;%s&quot;</span>, text);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(text, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(MESSAGE) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;}</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a9234814488626cc2513e9fb255a90f53"> 259</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;{</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; va_list args;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; gchar *text;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; va_end(args);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; g_free(text);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; g_debug (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(DEBUG) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a8a47ecac307ae1787cdad1ccc4b43d13"> 286</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;{</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; va_list args;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; gchar *text;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; va_end(args);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; g_free(text);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; g_warning (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(WARN) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;}</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a19da9a0d0eac2a2b7fcc926dee2eb368"> 313</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;{</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; va_list args;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; gchar *text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; va_end(args);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;<span class="preprocessor">#if GLIB_CHECK_VERSION(2,62,0)</span></div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; GDateTime* tv = g_date_time_new_now_local();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; gchar *isodate = g_date_time_format_iso8601(tv);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; g_date_time_unref(tv);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="preprocessor">#else</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; GTimeVal tv;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; g_get_current_time(&amp;tv);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; gchar *isodate = g_time_val_to_iso8601(&amp;tv);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; g_autofree gchar *buf = g_strdup(<span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span> (isodate) {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; buf = g_strconcat(</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="stringliteral">&quot;[&quot;</span>, isodate, <span class="stringliteral">&quot;] - &quot;</span>,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; g_get_host_name (),</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="stringliteral">&quot; - &quot;</span>,</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; g_get_user_name (),</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="stringliteral">&quot; - &quot;</span>,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; text,</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; NULL);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; g_free(text);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__pref_8c.html#a9a8d02227eb703bccc3f9296a5d89d6f">remmina_pref_get_boolean</a>(<span class="stringliteral">&quot;audit&quot;</span>))</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>(buf);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <a class="code" href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>(fun, buf);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;}</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="comment">// !!! Calling this function will crash Remmina !!!</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="comment">// !!! purposefully and send a trap signal !!!</span></div><div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a984e0494481144aa121893f5d14025f7"> 355</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;{</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; va_list args;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; gchar *text;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; va_end(args);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; g_free(text);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; g_error (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(ERROR) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;}</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#a35109f5950931f79c13dac26143a69d3"> 382</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; va_list args;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; gchar *text;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; va_end(args);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; g_autofree gchar *buf = g_strconcat(<span class="stringliteral">&quot;(&quot;</span>, fun, <span class="stringliteral">&quot;) - &quot;</span>, text, NULL);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; g_free(text);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// always appends newline</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; g_critical (<span class="stringliteral">&quot;%s&quot;</span>, buf);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; g_autofree gchar *buf_tmp = g_strconcat(buf, <span class="stringliteral">&quot;\n&quot;</span>, NULL);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">/* freed in remmina_log_print_real */</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; gchar *bufn = g_strconcat(<span class="stringliteral">&quot;(CRIT) - &quot;</span>, buf_tmp, NULL);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, bufn);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;}</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;<span class="comment">// Only prints into Remmina&#39;s own debug window. (Not stdout!)</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;<span class="comment">// See _remmina_{message, info, debug warning, error, critical}</span></div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="remmina__log_8h.html#ac7848510c1fe1990c992e28cd31af9d8"> 411</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="keyword">const</span> gchar *fmt, ...)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;{</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; va_list args;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; gchar *text;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; text = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; va_end(args);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; IDLE_ADD(<a class="code" href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a>, text);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;}</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1"> 426</a></span>&#160;<span class="keyword">static</span> gboolean <a class="code" href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1">remmina_log_on_keypress</a>(GtkWidget *widget, GdkEvent *event, gpointer user_data)</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;{</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a>)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; GdkEventKey *e = (GdkEventKey *)event;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">if</span> ((e-&gt;state &amp; GDK_CONTROL_MASK) == GDK_CONTROL_MASK) {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span> (e-&gt;keyval == GDK_KEY_t) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; remmina_log_stats();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;}</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="remmina__log_8c.html#a1e5960f194353bd36d82bd9476c309bd"> 445</a></span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="remmina__log_8c.html#a1e5960f194353bd36d82bd9476c309bd">remmina_log_window_init</a>(<a class="code" href="struct___remmina_log_window.html">RemminaLogWindow</a> *logwin)</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;{</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; GtkWidget *scrolledwindow;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; GtkWidget *widget;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; gtk_container_set_border_width(GTK_CONTAINER(logwin), 4);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; scrolledwindow = gtk_scrolled_window_new(NULL, NULL);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; gtk_widget_show(scrolledwindow);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwindow), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; gtk_container_add(GTK_CONTAINER(logwin), scrolledwindow);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; widget = gtk_text_view_new();</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; gtk_widget_show(widget);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(widget), GTK_WRAP_WORD_CHAR);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; gtk_text_view_set_editable(GTK_TEXT_VIEW(widget), FALSE);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; gtk_text_view_set_monospace(GTK_TEXT_VIEW(widget), TRUE);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; gtk_container_add(GTK_CONTAINER(scrolledwindow), widget);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; logwin-&gt;<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a> = widget;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; logwin-&gt;<a class="code" href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">log_buffer</a> = gtk_text_view_get_buffer(GTK_TEXT_VIEW(widget));</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; g_signal_connect(G_OBJECT(logwin-&gt;<a class="code" href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">log_view</a>), <span class="stringliteral">&quot;key-press-event&quot;</span>, G_CALLBACK(<a class="code" href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1">remmina_log_on_keypress</a>), (gpointer)logwin);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;}</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="ttc" id="remmina__log_8c_html_a72cf53183f3ef89c4208fdccb629003d"><div class="ttname"><a href="remmina__log_8c.html#a72cf53183f3ef89c4208fdccb629003d">remmina_log_start</a></div><div class="ttdeci">void remmina_log_start(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00116">remmina_log.c:116</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a973ea192c9eb7562f0590e62d95ba0e0"><div class="ttname"><a href="remmina__log_8c.html#a973ea192c9eb7562f0590e62d95ba0e0">logstart</a></div><div class="ttdeci">gboolean logstart</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00045">remmina_log.c:45</a></div></div>
<div class="ttc" id="struct___remmina_log_window_html_ae287dadd2c2a5bf704d7c494bcc74184"><div class="ttname"><a href="struct___remmina_log_window.html#ae287dadd2c2a5bf704d7c494bcc74184">_RemminaLogWindow::window</a></div><div class="ttdeci">GtkWindow window</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00056">remmina_log.c:56</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00381">remmina_log.c:381</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00382">remmina_log.c:382</a></div></div>
<div class="ttc" id="struct___remmina_log_window_html"><div class="ttname"><a href="struct___remmina_log_window.html">_RemminaLogWindow</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00055">remmina_log.c:55</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a8a5e75012fecec3ede5b29247760d5c3"><div class="ttname"><a href="remmina__log_8c.html#a8a5e75012fecec3ede5b29247760d5c3">remmina_log_start_stop</a></div><div class="ttdeci">static void remmina_log_start_stop(GtkSwitch *logswitch, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00110">remmina_log.c:110</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00285">remmina_log.c:285</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00312">remmina_log.c:312</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a7cbb8cc1b0525ae49248a84fb4b2b1a1"><div class="ttname"><a href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a></div><div class="ttdeci">static gboolean remmina_log_print_real(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00180">remmina_log.c:180</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00286">remmina_log.c:286</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00313">remmina_log.c:313</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a7cbb8cc1b0525ae49248a84fb4b2b1a1"><div class="ttname"><a href="remmina__log_8c.html#a7cbb8cc1b0525ae49248a84fb4b2b1a1">remmina_log_print_real</a></div><div class="ttdeci">static gboolean remmina_log_print_real(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00181">remmina_log.c:181</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a5682db89dd84e1c413326e17a4f79dbe"><div class="ttname"><a href="remmina__log_8c.html#a5682db89dd84e1c413326e17a4f79dbe">RemminaLogWindowClass</a></div><div class="ttdeci">struct _RemminaLogWindowClass RemminaLogWindowClass</div></div>
-<div class="ttc" id="remmina__log_8c_html_a6a5cc60197293b97a0c6fa2a471b221b"><div class="ttname"><a href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b">remmina_log_scroll_to_end</a></div><div class="ttdeci">static gboolean remmina_log_scroll_to_end(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00167">remmina_log.c:167</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00258">remmina_log.c:258</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a6a5cc60197293b97a0c6fa2a471b221b"><div class="ttname"><a href="remmina__log_8c.html#a6a5cc60197293b97a0c6fa2a471b221b">remmina_log_scroll_to_end</a></div><div class="ttdeci">static gboolean remmina_log_scroll_to_end(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00168">remmina_log.c:168</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00259">remmina_log.c:259</a></div></div>
<div class="ttc" id="struct___remmina_log_window_html_a06774ea75d0ea07580555d34abbb8232"><div class="ttname"><a href="struct___remmina_log_window.html#a06774ea75d0ea07580555d34abbb8232">_RemminaLogWindow::log_buffer</a></div><div class="ttdeci">GtkTextBuffer * log_buffer</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00059">remmina_log.c:59</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a96f5bb72acbdcbf8793b4a5f4a6132b5"><div class="ttname"><a href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a></div><div class="ttdeci">gboolean remmina_log_running(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00161">remmina_log.c:161</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a96f5bb72acbdcbf8793b4a5f4a6132b5"><div class="ttname"><a href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a></div><div class="ttdeci">gboolean remmina_log_running(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00162">remmina_log.c:162</a></div></div>
<div class="ttc" id="struct___remmina_log_window_html_abfbb6314130ad100aba258087d9d4087"><div class="ttname"><a href="struct___remmina_log_window.html#abfbb6314130ad100aba258087d9d4087">_RemminaLogWindow::log_view</a></div><div class="ttdeci">GtkWidget * log_view</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00058">remmina_log.c:58</a></div></div>
<div class="ttc" id="rcw_8c_html_a21e0a6e416667f30c2b1599b8b24faec"><div class="ttname"><a href="rcw_8c.html#a21e0a6e416667f30c2b1599b8b24faec">G_DEFINE_TYPE</a></div><div class="ttdeci">G_DEFINE_TYPE(RemminaConnectionWindow, rcw, GTK_TYPE_WINDOW)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l00081">rcw.c:81</a></div></div>
<div class="ttc" id="remmina__public_8h_html"><div class="ttname"><a href="remmina__public_8h.html">remmina_public.h</a></div></div>
<div class="ttc" id="struct___remmina_log_window_class_html"><div class="ttname"><a href="struct___remmina_log_window_class.html">_RemminaLogWindowClass</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00062">remmina_log.c:62</a></div></div>
<div class="ttc" id="remmina__log_8h_html"><div class="ttname"><a href="remmina__log_8h.html">remmina_log.h</a></div></div>
<div class="ttc" id="remmina__pref_8c_html_a9a8d02227eb703bccc3f9296a5d89d6f"><div class="ttname"><a href="remmina__pref_8c.html#a9a8d02227eb703bccc3f9296a5d89d6f">remmina_pref_get_boolean</a></div><div class="ttdeci">gboolean remmina_pref_get_boolean(const gchar *key)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__pref_8c_source.html#l01150">remmina_pref.c:1150</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a1e5960f194353bd36d82bd9476c309bd"><div class="ttname"><a href="remmina__log_8c.html#a1e5960f194353bd36d82bd9476c309bd">remmina_log_window_init</a></div><div class="ttdeci">static void remmina_log_window_init(RemminaLogWindow *logwin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00444">remmina_log.c:444</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00205">remmina_log.c:205</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a43a42f51f64b54924564e166c56b39e1"><div class="ttname"><a href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1">remmina_log_on_keypress</a></div><div class="ttdeci">static gboolean remmina_log_on_keypress(GtkWidget *widget, GdkEvent *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00425">remmina_log.c:425</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a1e5960f194353bd36d82bd9476c309bd"><div class="ttname"><a href="remmina__log_8c.html#a1e5960f194353bd36d82bd9476c309bd">remmina_log_window_init</a></div><div class="ttdeci">static void remmina_log_window_init(RemminaLogWindow *logwin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00445">remmina_log.c:445</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00206">remmina_log.c:206</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a43a42f51f64b54924564e166c56b39e1"><div class="ttname"><a href="remmina__log_8c.html#a43a42f51f64b54924564e166c56b39e1">remmina_log_on_keypress</a></div><div class="ttdeci">static gboolean remmina_log_on_keypress(GtkWidget *widget, GdkEvent *event, gpointer user_data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00426">remmina_log.c:426</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a8f8d45cce779ec2a8db7bfdd02097a3e"><div class="ttname"><a href="remmina__log_8c.html#a8f8d45cce779ec2a8db7bfdd02097a3e">remmina_log_window_get_type</a></div><div class="ttdeci">GType remmina_log_window_get_type(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00066">remmina_log.c:66</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a070042aa580b708536dc793336722660"><div class="ttname"><a href="remmina__log_8c.html#a070042aa580b708536dc793336722660">remmina_log_window_new</a></div><div class="ttdeci">static GtkWidget * remmina_log_window_new(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00098">remmina_log.c:98</a></div></div>
<div class="ttc" id="remmina__stats_8h_html"><div class="ttname"><a href="remmina__stats_8h.html">remmina_stats.h</a></div></div>
@@ -117,12 +117,12 @@ $(document).ready(function(){initNavTree('remmina__log_8c_source.html','');});
<div class="ttc" id="remmina__pref_8h_html"><div class="ttname"><a href="remmina__pref_8h.html">remmina_pref.h</a></div></div>
<div class="ttc" id="remmina__log_8c_html_ad5a920aad512279bb932bcb26a2c3c19"><div class="ttname"><a href="remmina__log_8c.html#ad5a920aad512279bb932bcb26a2c3c19">RemminaLogWindow</a></div><div class="ttdeci">struct _RemminaLogWindow RemminaLogWindow</div></div>
<div class="ttc" id="remmina__log_8c_html_a6c06467e9ec98a4ccc6645291cd5d19a"><div class="ttname"><a href="remmina__log_8c.html#a6c06467e9ec98a4ccc6645291cd5d19a">log_window</a></div><div class="ttdeci">static GtkWidget * log_window</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00095">remmina_log.c:95</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00410">remmina_log.c:410</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00411">remmina_log.c:411</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a0c3592cad5a8e91cd4d0c3c1b2b1f427"><div class="ttname"><a href="remmina__log_8c.html#a0c3592cad5a8e91cd4d0c3c1b2b1f427">remmina_log_window_class_init</a></div><div class="ttdeci">static void remmina_log_window_class_init(RemminaLogWindowClass *klass)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00089">remmina_log.c:89</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00196">remmina_log.c:196</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00229">remmina_log.c:229</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00197">remmina_log.c:197</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00230">remmina_log.c:230</a></div></div>
<div class="ttc" id="remmina__log_8c_html_a355067bd2e33d8942ad9d8af60c19f0c"><div class="ttname"><a href="remmina__log_8c.html#a355067bd2e33d8942ad9d8af60c19f0c">remmina_log_end</a></div><div class="ttdeci">static void remmina_log_end(GtkWidget *widget, gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00104">remmina_log.c:104</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00354">remmina_log.c:354</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00355">remmina_log.c:355</a></div></div>
<div class="ttc" id="struct___remmina_log_window_class_html_af63588f4d71726fcda17ae5c2adcf2af"><div class="ttname"><a href="struct___remmina_log_window_class.html#af63588f4d71726fcda17ae5c2adcf2af">_RemminaLogWindowClass::parent_class</a></div><div class="ttdeci">GtkWindowClass parent_class</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00063">remmina_log.c:63</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/public/remmina__log_8h.html b/public/remmina__log_8h.html
index 78f66ddc9..b336b4262 100644
--- a/public/remmina__log_8h.html
+++ b/public/remmina__log_8h.html
@@ -150,7 +150,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00312">312</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00313">313</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -186,7 +186,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00381">381</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00382">382</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -225,7 +225,7 @@ Functions</h2></td></tr>
<p>Print a string in the Remmina Debug Windows and in the terminal. </p>
<p>The string will be visible in the terminal if G_MESSAGES_DEBUG=all Variadic function of REMMINA_DEBUG </p>
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00258">258</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00259">259</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -261,7 +261,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00354">354</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00355">355</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -291,7 +291,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00205">205</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00206">206</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -321,7 +321,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00229">229</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00230">230</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -357,7 +357,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00285">285</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00286">286</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -377,7 +377,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00196">196</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00197">197</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -407,7 +407,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00410">410</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00411">411</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
@@ -427,7 +427,7 @@ Functions</h2></td></tr>
</table>
</div><div class="memdoc">
-<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00161">161</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
+<p class="definition">Definition at line <a class="el" href="remmina__log_8c_source.html#l00162">162</a> of file <a class="el" href="remmina__log_8c_source.html">remmina_log.c</a>.</p>
</div>
</div>
diff --git a/public/remmina__log_8h_source.html b/public/remmina__log_8h_source.html
index 0e074fcd6..8e9475ed5 100644
--- a/public/remmina__log_8h_source.html
+++ b/public/remmina__log_8h_source.html
@@ -86,17 +86,17 @@ $(document).ready(function(){initNavTree('remmina__log_8h_source.html','');});
<div class="title">remmina_log.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="remmina__log_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2017-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define REMMINA_INFO(fmt, ...) _remmina_info(fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define REMMINA_MESSAGE(fmt, ...) _remmina_message(fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#define REMMINA_DEBUG(fmt, ...) _remmina_debug(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#define REMMINA_WARNING(fmt, ...) _remmina_warning(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define REMMINA_AUDIT(fmt, ...) _remmina_audit(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define REMMINA_ERROR(fmt, ...) _remmina_error(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define REMMINA_CRITICAL(fmt, ...) _remmina_critical(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a72cf53183f3ef89c4208fdccb629003d">remmina_log_start</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;gboolean <a class="code" href="remmina__log_8h.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(<span class="keyword">const</span> gchar *text);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a>(<span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>(<span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;G_END_DECLS</div><div class="ttc" id="remmina__log_8h_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8h.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00354">remmina_log.c:354</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8h.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00285">remmina_log.c:285</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8h.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00312">remmina_log.c:312</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8h.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00229">remmina_log.c:229</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8h.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00258">remmina_log.c:258</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8h.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00205">remmina_log.c:205</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_a96f5bb72acbdcbf8793b4a5f4a6132b5"><div class="ttname"><a href="remmina__log_8h.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a></div><div class="ttdeci">gboolean remmina_log_running(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00161">remmina_log.c:161</a></div></div>
+<a href="remmina__log_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Remmina - The GTK+ Remote Desktop Client</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * Copyright (C) 2010 Vic Lee</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * Copyright (C) 2017-2023 Antenore Gatta, Giovanni Panozzo</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * along with this program; if not, write to the Free Software</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> * Foundation, Inc., 51 Franklin Street, Fifth Floor,</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment"> * Boston, MA 02110-1301, USA.</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment"> * In addition, as a special exception, the copyright holders give</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="comment"> * permission to link the code of portions of this program with the</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment"> * OpenSSL library under certain conditions as described in each</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="comment"> * individual source file, and distribute linked combinations</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="comment"> * including the two.</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment"> * You must obey the GNU General Public License in all respects</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="comment"> * for all of the code used other than OpenSSL. * If you modify</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="comment"> * file(s) with this exception, you may extend this exception to your</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="comment"> * version of the file(s), but you are not obligated to do so. * If you</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="comment"> * do not wish to do so, delete this exception statement from your</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment"> * version. * If you delete this exception statement from all source</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment"> * files in the program, then also delete it here.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#pragma once</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &lt;stdarg.h&gt;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &lt;glib.h&gt;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;G_BEGIN_DECLS</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define REMMINA_INFO(fmt, ...) _remmina_info(fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define REMMINA_MESSAGE(fmt, ...) _remmina_message(fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#define REMMINA_DEBUG(fmt, ...) _remmina_debug(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#define REMMINA_WARNING(fmt, ...) _remmina_warning(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#define REMMINA_AUDIT(fmt, ...) _remmina_audit(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#define REMMINA_ERROR(fmt, ...) _remmina_error(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#define REMMINA_CRITICAL(fmt, ...) _remmina_critical(__func__, fmt, ## __VA_ARGS__)</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a72cf53183f3ef89c4208fdccb629003d">remmina_log_start</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;gboolean <a class="code" href="remmina__log_8h.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a>(<span class="keywordtype">void</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a>(<span class="keyword">const</span> gchar *text);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a>(<span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a>(<span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a>(<span class="keyword">const</span> gchar *fun, <span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> <a class="code" href="remmina__log_8h.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="keyword">const</span> gchar *fmt, ...);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;G_END_DECLS</div><div class="ttc" id="remmina__log_8h_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8h.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00355">remmina_log.c:355</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8h.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00286">remmina_log.c:286</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8h.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00313">remmina_log.c:313</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8h.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00230">remmina_log.c:230</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8h.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00259">remmina_log.c:259</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8h.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00206">remmina_log.c:206</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_a96f5bb72acbdcbf8793b4a5f4a6132b5"><div class="ttname"><a href="remmina__log_8h.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a></div><div class="ttdeci">gboolean remmina_log_running(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00162">remmina_log.c:162</a></div></div>
<div class="ttc" id="remmina__log_8h_html_a72cf53183f3ef89c4208fdccb629003d"><div class="ttname"><a href="remmina__log_8h.html#a72cf53183f3ef89c4208fdccb629003d">remmina_log_start</a></div><div class="ttdeci">void remmina_log_start(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00116">remmina_log.c:116</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8h.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00381">remmina_log.c:381</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8h.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00196">remmina_log.c:196</a></div></div>
-<div class="ttc" id="remmina__log_8h_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8h.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00410">remmina_log.c:410</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8h.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00382">remmina_log.c:382</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8h.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00197">remmina_log.c:197</a></div></div>
+<div class="ttc" id="remmina__log_8h_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8h.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00411">remmina_log.c:411</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/public/remmina__plugin__manager_8c_source.html b/public/remmina__plugin__manager_8c_source.html
index 04b64a5b0..b27e2b1f1 100644
--- a/public/remmina__plugin__manager_8c_source.html
+++ b/public/remmina__plugin__manager_8c_source.html
@@ -129,7 +129,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__protocol__widget_8c_html_a7c15fa81642c52ef382e1dbe34ffb6ac"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a7c15fa81642c52ef382e1dbe34ffb6ac">remmina_protocol_widget_get_domain</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_domain(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01842">remmina_protocol_widget.c:1842</a></div></div>
<div class="ttc" id="rcw_8c_html_ad3c2fe67b137c757bd21b79ad5dcc5ff"><div class="ttname"><a href="rcw_8c.html#ad3c2fe67b137c757bd21b79ad5dcc5ff">rcw_open_from_file_full</a></div><div class="ttdeci">GtkWidget * rcw_open_from_file_full(RemminaFile *remminafile, GCallback disconnect_cb, gpointer data, guint *handler)</div><div class="ttdef"><b>Definition:</b> <a href="rcw_8c_source.html#l04499">rcw.c:4499</a></div></div>
<div class="ttc" id="remmina__widget__pool_8c_html_ae3c9c9853eb5bedbfeadbfac1d495b95"><div class="ttname"><a href="remmina__widget__pool_8c.html#ae3c9c9853eb5bedbfeadbfac1d495b95">remmina_widget_pool_register</a></div><div class="ttdeci">void remmina_widget_pool_register(GtkWidget *widget)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__widget__pool_8c_source.html#l00056">remmina_widget_pool.c:56</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00381">remmina_log.c:381</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a35109f5950931f79c13dac26143a69d3"><div class="ttname"><a href="remmina__log_8c.html#a35109f5950931f79c13dac26143a69d3">_remmina_critical</a></div><div class="ttdeci">void _remmina_critical(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00382">remmina_log.c:382</a></div></div>
<div class="ttc" id="types_8h_html_aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa"><div class="ttname"><a href="types_8h.html#aee1a3e130e6991978acd907b52204350ae76d06b6e313971e5f420dd6e7f4c5aa">REMMINA_PROTOCOL_SETTING_TYPE_PASSWORD</a></div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00101">types.h:101</a></div></div>
<div class="ttc" id="remmina__widget__pool_8h_html"><div class="ttname"><a href="remmina__widget__pool_8h.html">remmina_widget_pool.h</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>
@@ -140,13 +140,13 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__plugin__manager_8c_html_afce14b101da527ada9b44a4503e91e07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#afce14b101da527ada9b44a4503e91e07">remmina_plugin_manager_get_export_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_export_file_handler(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00589">remmina_plugin_manager.c:589</a></div></div>
<div class="ttc" id="remmina__trace__calls_8h_html"><div class="ttname"><a href="remmina__trace__calls_8h.html">remmina_trace_calls.h</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html_a024d3e6d752dd29828b31c60c8c7c201"><div class="ttname"><a href="struct___remmina_plugin.html#a024d3e6d752dd29828b31c60c8c7c201">_RemminaPlugin::domain</a></div><div class="ttdeci">const gchar * domain</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00060">plugin.h:60</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00285">remmina_log.c:285</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a8a47ecac307ae1787cdad1ccc4b43d13"><div class="ttname"><a href="remmina__log_8c.html#a8a47ecac307ae1787cdad1ccc4b43d13">_remmina_warning</a></div><div class="ttdeci">void _remmina_warning(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00286">remmina_log.c:286</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a859348bddc9069f06195915692b65076"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a859348bddc9069f06195915692b65076">remmina_plugin_manager_get_import_file_handler</a></div><div class="ttdeci">RemminaFilePlugin * remmina_plugin_manager_get_import_file_handler(const gchar *file)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00570">remmina_plugin_manager.c:570</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_ad380a98f6624aa8c830015c8b428b7b4"><div class="ttname"><a href="remmina__plugin__manager_8c.html#ad380a98f6624aa8c830015c8b428b7b4">remmina_plugin_manager_get_secret_plugin</a></div><div class="ttdeci">RemminaSecretPlugin * remmina_plugin_manager_get_secret_plugin(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00606">remmina_plugin_manager.c:606</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9473da27fd10eb46ef8360f9ad4be86d"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9473da27fd10eb46ef8360f9ad4be86d">remmina_protocol_widget_get_cacert</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_cacert(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01854">remmina_protocol_widget.c:1854</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a36e01bda95825ee6b5f164f52af7c457"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a36e01bda95825ee6b5f164f52af7c457">remmina_protocol_widget_lock_dynres</a></div><div class="ttdeci">void remmina_protocol_widget_lock_dynres(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00438">remmina_protocol_widget.c:438</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_ae609b351fff17c235251b0ba7c480da5"><div class="ttname"><a href="remmina__protocol__widget_8c.html#ae609b351fff17c235251b0ba7c480da5">remmina_protocol_widget_get_height</a></div><div class="ttdeci">gint remmina_protocol_widget_get_height(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01401">remmina_protocol_widget.c:1401</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00312">remmina_log.c:312</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a19da9a0d0eac2a2b7fcc926dee2eb368"><div class="ttname"><a href="remmina__log_8c.html#a19da9a0d0eac2a2b7fcc926dee2eb368">_remmina_audit</a></div><div class="ttdeci">void _remmina_audit(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00313">remmina_log.c:313</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a5ec62969da54155e24edcb1d998f93f7"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a5ec62969da54155e24edcb1d998f93f7">remmina_protocol_widget_get_current_scale_mode</a></div><div class="ttdeci">RemminaScaleMode remmina_protocol_widget_get_current_scale_mode(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01413">remmina_protocol_widget.c:1413</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aa88afa1e3f04974974a8be324b0a930e"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aa88afa1e3f04974974a8be324b0a930e">remmina_protocol_widget_update_align</a></div><div class="ttdeci">void remmina_protocol_widget_update_align(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l00413">remmina_protocol_widget.c:413</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aa674c14f3a46dd5eb6b53d6f8ce6bd31"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aa674c14f3a46dd5eb6b53d6f8ce6bd31">remmina_protocol_widget_panel_authx509</a></div><div class="ttdeci">gint remmina_protocol_widget_panel_authx509(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01756">remmina_protocol_widget.c:1756</a></div></div>
@@ -156,7 +156,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="struct___remmina_plugin_html_aecdad5d7ff5bdfbf0ce80b4b73f65099"><div class="ttname"><a href="struct___remmina_plugin.html#aecdad5d7ff5bdfbf0ce80b4b73f65099">_RemminaPlugin::version</a></div><div class="ttdeci">const gchar * version</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00061">plugin.h:61</a></div></div>
<div class="ttc" id="struct___remmina_language_wrapper_plugin_html_a1270e29b6e988d6b320ef3f0465b6272"><div class="ttname"><a href="struct___remmina_language_wrapper_plugin.html#a1270e29b6e988d6b320ef3f0465b6272">_RemminaLanguageWrapperPlugin::load</a></div><div class="ttdeci">gboolean(* load)(struct _RemminaLanguageWrapperPlugin *instance, const gchar *plugin_file)</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00159">plugin.h:159</a></div></div>
<div class="ttc" id="remmina__main_8h_html"><div class="ttname"><a href="remmina__main_8h.html">remmina_main.h</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00258">remmina_log.c:258</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a9234814488626cc2513e9fb255a90f53"><div class="ttname"><a href="remmina__log_8c.html#a9234814488626cc2513e9fb255a90f53">_remmina_debug</a></div><div class="ttdeci">void _remmina_debug(const gchar *fun, const gchar *fmt,...)</div><div class="ttdoc">Print a string in the Remmina Debug Windows and in the terminal. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00259">remmina_log.c:259</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a15368afcbeb770f8cf25941bd49e7b54"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a15368afcbeb770f8cf25941bd49e7b54">remmina_protocol_widget_set_display</a></div><div class="ttdeci">void remmina_protocol_widget_set_display(RemminaProtocolWidget *gp, gint display)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01347">remmina_protocol_widget.c:1347</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a41b62f211a8a8e960bc80aa1ba6b0380"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a41b62f211a8a8e960bc80aa1ba6b0380">remmina_protocol_widget_set_width</a></div><div class="ttdeci">void remmina_protocol_widget_set_width(RemminaProtocolWidget *gp, gint width)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01395">remmina_protocol_widget.c:1395</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a634fadd9871f76bc60c3da0aa95e719c"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a634fadd9871f76bc60c3da0aa95e719c">remmina_plugin_manager_show_for_each</a></div><div class="ttdeci">static gboolean remmina_plugin_manager_show_for_each(RemminaPlugin *plugin, GtkListStore *store)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00505">remmina_plugin_manager.c:505</a></div></div>
@@ -194,7 +194,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__file__manager_8c_html_aa65bc30beb59d607ba430d966e7e27f5"><div class="ttname"><a href="remmina__file__manager_8c.html#aa65bc30beb59d607ba430d966e7e27f5">remmina_file_get_datadir</a></div><div class="ttdeci">gchar * remmina_file_get_datadir(void)</div><div class="ttdoc">Return datadir_path from pref or first found data dir as per XDG specs. </div><div class="ttdef"><b>Definition:</b> <a href="remmina__file__manager_8c_source.html#l00059">remmina_file_manager.c:59</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a12eddf3428a53201ee0a2ec422d2fa4a"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a12eddf3428a53201ee0a2ec422d2fa4a">remmina_protocol_widget_ssh_exec</a></div><div class="ttdeci">gboolean remmina_protocol_widget_ssh_exec(RemminaProtocolWidget *gp, gboolean wait, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01195">remmina_protocol_widget.c:1195</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a70aecb9af2ea35527e8d058d1d87a0d3"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a70aecb9af2ea35527e8d058d1d87a0d3">remmina_protocol_widget_get_cacrl</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_cacrl(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01863">remmina_protocol_widget.c:1863</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00205">remmina_log.c:205</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a49817b70a398a2f21514fb0066c6e04c"><div class="ttname"><a href="remmina__log_8c.html#a49817b70a398a2f21514fb0066c6e04c">_remmina_info</a></div><div class="ttdeci">void _remmina_info(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00206">remmina_log.c:206</a></div></div>
<div class="ttc" id="types_8h_html_a77ae46c4fd739dcd8e819fe9cdae27c5"><div class="ttname"><a href="types_8h.html#a77ae46c4fd739dcd8e819fe9cdae27c5">RemminaProtocolFeatureType</a></div><div class="ttdeci">RemminaProtocolFeatureType</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00046">types.h:46</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_aadd106cec729a80405c6097e4c662044"><div class="ttname"><a href="remmina__protocol__widget_8c.html#aadd106cec729a80405c6097e4c662044">remmina_protocol_widget_set_height</a></div><div class="ttdeci">void remmina_protocol_widget_set_height(RemminaProtocolWidget *gp, gint height)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01407">remmina_protocol_widget.c:1407</a></div></div>
<div class="ttc" id="struct___remmina_protocol_setting_html_a6274d44b592a54162ff583135e55ffc9"><div class="ttname"><a href="struct___remmina_protocol_setting.html#a6274d44b592a54162ff583135e55ffc9">_RemminaProtocolSetting::type</a></div><div class="ttdeci">RemminaProtocolSettingType type</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00117">types.h:117</a></div></div>
@@ -224,12 +224,12 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__plugin__manager_8c_html_a150a4a8a8dcd21a51008250bb38bce49"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a150a4a8a8dcd21a51008250bb38bce49">encrypted_settings_cache</a></div><div class="ttdeci">static GHashTable * encrypted_settings_cache</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00067">remmina_plugin_manager.c:67</a></div></div>
<div class="ttc" id="remmina__plugin__native_8h_html"><div class="ttname"><a href="remmina__plugin__native_8h.html">remmina_plugin_native.h</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a0b19dbe685e4465e7f06706270e120fa"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a0b19dbe685e4465e7f06706270e120fa">remmina_protocol_widget_set_expand</a></div><div class="ttdeci">void remmina_protocol_widget_set_expand(RemminaProtocolWidget *gp, gboolean expand)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01431">remmina_protocol_widget.c:1431</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00410">remmina_log.c:410</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_ac7848510c1fe1990c992e28cd31af9d8"><div class="ttname"><a href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a></div><div class="ttdeci">void remmina_log_printf(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00411">remmina_log.c:411</a></div></div>
<div class="ttc" id="remmina__plugin__manager_8c_html_a3fdc160c477f9f5e1d881c0c054d4b07"><div class="ttname"><a href="remmina__plugin__manager_8c.html#a3fdc160c477f9f5e1d881c0c054d4b07">remmina_plugin_manager_show_for_each_stdout</a></div><div class="ttdeci">static gboolean remmina_plugin_manager_show_for_each_stdout(RemminaPlugin *plugin)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__plugin__manager_8c_source.html#l00487">remmina_plugin_manager.c:487</a></div></div>
<div class="ttc" id="remmina__file_8c_html_a85ca1ca2d0bf9ef29e490c6f4527a954"><div class="ttname"><a href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a></div><div class="ttdeci">void remmina_file_set_string(RemminaFile *remminafile, const gchar *setting, const gchar *value)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00469">remmina_file.c:469</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a9bcd0d356c7215dc0f791c9744360705"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a9bcd0d356c7215dc0f791c9744360705">remmina_protocol_widget_send_keys_signals</a></div><div class="ttdeci">void remmina_protocol_widget_send_keys_signals(GtkWidget *widget, const guint *keyvals, int keyvals_length, GdkEventType action)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02102">remmina_protocol_widget.c:2102</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00196">remmina_log.c:196</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00229">remmina_log.c:229</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_aca8f826a273194e22f4467421af9b3aa"><div class="ttname"><a href="remmina__log_8c.html#aca8f826a273194e22f4467421af9b3aa">remmina_log_print</a></div><div class="ttdeci">void remmina_log_print(const gchar *text)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00197">remmina_log.c:197</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_ae439b5fb61045d22c9474b32d0158185"><div class="ttname"><a href="remmina__log_8c.html#ae439b5fb61045d22c9474b32d0158185">_remmina_message</a></div><div class="ttdeci">void _remmina_message(const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00230">remmina_log.c:230</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="remmina__file_8c_html_a503e53fe49430a5ed310c342c946c014"><div class="ttname"><a href="remmina__file_8c.html#a503e53fe49430a5ed310c342c946c014">remmina_file_unsave_passwords</a></div><div class="ttdeci">void remmina_file_unsave_passwords(RemminaFile *remminafile)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00976">remmina_file.c:976</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8h_html"><div class="ttname"><a href="remmina__protocol__widget_8h.html">remmina_protocol_widget.h</a></div></div>
@@ -246,7 +246,7 @@ $(document).ready(function(){initNavTree('remmina__plugin__manager_8c_source.htm
<div class="ttc" id="remmina__protocol__widget_8c_html_a66263e6e7da79357ceb80d32b191d9f2"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a66263e6e7da79357ceb80d32b191d9f2">remmina_protocol_widget_chat_open</a></div><div class="ttdeci">void remmina_protocol_widget_chat_open(RemminaProtocolWidget *gp, const gchar *name, void(*on_send)(RemminaProtocolWidget *gp, const gchar *text), void(*on_destroy)(RemminaProtocolWidget *gp))</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l02013">remmina_protocol_widget.c:2013</a></div></div>
<div class="ttc" id="struct___remmina_plugin_html_a3f09b29bb3b0c044780d56a8b1a51582"><div class="ttname"><a href="struct___remmina_plugin.html#a3f09b29bb3b0c044780d56a8b1a51582">_RemminaPlugin::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="plugin_8h_source.html#l00058">plugin.h:58</a></div></div>
<div class="ttc" id="remmina__protocol__widget_8c_html_a96159bd8e9d70c74967e666e2f188df0"><div class="ttname"><a href="remmina__protocol__widget_8c.html#a96159bd8e9d70c74967e666e2f188df0">remmina_protocol_widget_get_username</a></div><div class="ttdeci">gchar * remmina_protocol_widget_get_username(RemminaProtocolWidget *gp)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__protocol__widget_8c_source.html#l01830">remmina_protocol_widget.c:1830</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00354">remmina_log.c:354</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a984e0494481144aa121893f5d14025f7"><div class="ttname"><a href="remmina__log_8c.html#a984e0494481144aa121893f5d14025f7">_remmina_error</a></div><div class="ttdeci">void _remmina_error(const gchar *fun, const gchar *fmt,...)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00355">remmina_log.c:355</a></div></div>
<div class="ttc" id="struct___remmina_protocol_setting_html_ac4cd339607204c5f478727e2a0c04857"><div class="ttname"><a href="struct___remmina_protocol_setting.html#ac4cd339607204c5f478727e2a0c04857">_RemminaProtocolSetting::name</a></div><div class="ttdeci">const gchar * name</div><div class="ttdef"><b>Definition:</b> <a href="types_8h_source.html#l00118">types.h:118</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/public/remmina__ssh_8c_source.html b/public/remmina__ssh_8c_source.html
index a3e9896f0..283fff7f4 100644
--- a/public/remmina__ssh_8c_source.html
+++ b/public/remmina__ssh_8c_source.html
@@ -156,7 +156,7 @@ $(document).ready(function(){initNavTree('remmina__ssh_8c_source.html','');});
<div class="ttc" id="struct___remmina_s_s_h_tunnel_html_a19fed9a85494d40d3f2ae2ae1d1bc18c"><div class="ttname"><a href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">_RemminaSSHTunnel::disconnect_func</a></div><div class="ttdeci">RemminaSSHTunnelCallback disconnect_func</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00177">remmina_ssh.h:177</a></div></div>
<div class="ttc" id="remmina__ssh_8h_html_a6815a78f65795cbc6795ca1c59e73102"><div class="ttname"><a href="remmina__ssh_8h.html#a6815a78f65795cbc6795ca1c59e73102">remmina_ssh_init_from_file</a></div><div class="ttdeci">gboolean remmina_ssh_init_from_file(RemminaSSH *ssh, RemminaFile *remminafile, gboolean is_tunnel)</div></div>
<div class="ttc" id="remmina__ssh_8h_html_a879c265f2e8050e4e72a061ab3747ee1"><div class="ttname"><a href="remmina__ssh_8h.html#a879c265f2e8050e4e72a061ab3747ee1">remmina_ssh_auth_result</a></div><div class="ttdeci">remmina_ssh_auth_result</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00107">remmina_ssh.h:107</a></div></div>
-<div class="ttc" id="remmina__log_8c_html_a96f5bb72acbdcbf8793b4a5f4a6132b5"><div class="ttname"><a href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a></div><div class="ttdeci">gboolean remmina_log_running(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00161">remmina_log.c:161</a></div></div>
+<div class="ttc" id="remmina__log_8c_html_a96f5bb72acbdcbf8793b4a5f4a6132b5"><div class="ttname"><a href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a></div><div class="ttdeci">gboolean remmina_log_running(void)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__log_8c_source.html#l00162">remmina_log.c:162</a></div></div>
<div class="ttc" id="remmina__file_8c_html_afd8b12f3d84b4e201b9f465d5b8e0d03"><div class="ttname"><a href="remmina__file_8c.html#afd8b12f3d84b4e201b9f465d5b8e0d03">remmina_file_format_properties</a></div><div class="ttdeci">gchar * remmina_file_format_properties(RemminaFile *remminafile, const gchar *setting)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__file_8c_source.html#l00561">remmina_file.c:561</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_a72a58e416c4eeb9d17eaf76360ebee42"><div class="ttname"><a href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh_identity_path</a></div><div class="ttdeci">gchar * remmina_ssh_identity_path(const gchar *id)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l00628">remmina_ssh.c:628</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_html_aa064626a7fd528e7d8c1fc34d1bd8dfc"><div class="ttname"><a href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">_RemminaSSH::port</a></div><div class="ttdeci">gint port</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00065">remmina_ssh.h:65</a></div></div>