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>2020-05-19 10:15:45 +0300
committerAntenore Gatta <antenore@simbiosi.org>2020-05-19 10:15:45 +0300
commit5e618d9fead713ff6b8b44425eb8b74e738782cd (patch)
treea34941187d2357dae6307cd3d0bccf85e19c85fd /docs/remmina__stats_8c.html
parent09795f861be8a5980fe9d9ab0365a32aa06c2862 (diff)
Automatic doc build by remmina-ci
Diffstat (limited to 'docs/remmina__stats_8c.html')
-rw-r--r--docs/remmina__stats_8c.html539
1 files changed, 539 insertions, 0 deletions
diff --git a/docs/remmina__stats_8c.html b/docs/remmina__stats_8c.html
new file mode 100644
index 000000000..8466efa6a
--- /dev/null
+++ b/docs/remmina__stats_8c.html
@@ -0,0 +1,539 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Remmina - The GTK+ Remote Desktop Client: remmina_stats.c File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="org.remmina.Remmina.png"/></td>
+ <td id="projectalign" style="padding-left: 0.5em;">
+ <div id="projectname">Remmina - The GTK+ Remote Desktop Client
+ &#160;<span id="projectnumber">v1.4.2</span>
+ </div>
+ <div id="projectbrief">Remmina is a remote desktop client written in GTK+, aiming to be useful for system administrators and travellers, who need to work with lots of remote computers in front of either large monitors or tiny netbooks. Remmina supports multiple network protocols in an integrated and consistent user interface. Currently RDP, VNC, NX, XDMCP and SSH are supported.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('remmina__stats_8c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">remmina_stats.c File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Remmina usage statistics module.
+<a href="#details">More...</a></p>
+
+<p><a href="remmina__stats_8c_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_profiles_data.html">ProfilesData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ac6adbf6560625e2bf54037fcd039319d"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#ac6adbf6560625e2bf54037fcd039319d">remmina_stats_get_uid</a> ()</td></tr>
+<tr class="separator:ac6adbf6560625e2bf54037fcd039319d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a43133d5e00f481d315ef0d58cb52e70a"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#a43133d5e00f481d315ef0d58cb52e70a">remmina_stats_get_os_info</a> ()</td></tr>
+<tr class="separator:a43133d5e00f481d315ef0d58cb52e70a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a42f0554bf8eacb253a023d601cd59648"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#a42f0554bf8eacb253a023d601cd59648">remmina_stats_get_user_env</a> ()</td></tr>
+<tr class="memdesc:a42f0554bf8eacb253a023d601cd59648"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the following user environment: <a href="#a42f0554bf8eacb253a023d601cd59648">More...</a><br /></td></tr>
+<tr class="separator:a42f0554bf8eacb253a023d601cd59648"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab248458a3face2634bab909ffeb8291e"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#ab248458a3face2634bab909ffeb8291e">remmina_stats_get_version</a> ()</td></tr>
+<tr class="separator:ab248458a3face2634bab909ffeb8291e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aed3a8dd3e01a05d96d6cf3625bb28731"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#aed3a8dd3e01a05d96d6cf3625bb28731">remmina_stats_get_gtk_version</a> ()</td></tr>
+<tr class="separator:aed3a8dd3e01a05d96d6cf3625bb28731"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a73fbf1064af209f1f7272d737168971c"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#a73fbf1064af209f1f7272d737168971c">remmina_stats_get_gtk_backend</a> ()</td></tr>
+<tr class="separator:a73fbf1064af209f1f7272d737168971c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae596da7901fb3b45b7290a1d70b3ea3a"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#ae596da7901fb3b45b7290a1d70b3ea3a">remmina_stats_get_wm_name</a> ()</td></tr>
+<tr class="separator:ae596da7901fb3b45b7290a1d70b3ea3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aee2ea5acceb2fbc3aa4ff21d136c5734"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#aee2ea5acceb2fbc3aa4ff21d136c5734">remmina_stats_get_indicator</a> ()</td></tr>
+<tr class="separator:aee2ea5acceb2fbc3aa4ff21d136c5734"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1dff2b06d5acefc9bd2f25508ab45328"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#a1dff2b06d5acefc9bd2f25508ab45328">remmina_profiles_get_data</a> (<a class="el" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile, gpointer user_data)</td></tr>
+<tr class="memdesc:a1dff2b06d5acefc9bd2f25508ab45328"><td class="mdescLeft">&#160;</td><td class="mdescRight">Given a remmina file, fills a structure containing profiles keys/value tuples. <a href="#a1dff2b06d5acefc9bd2f25508ab45328">More...</a><br /></td></tr>
+<tr class="separator:a1dff2b06d5acefc9bd2f25508ab45328"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a65500d6b5d93cc7e3fc3d72329ff3847"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#a65500d6b5d93cc7e3fc3d72329ff3847">remmina_stats_get_profiles</a> ()</td></tr>
+<tr class="memdesc:a65500d6b5d93cc7e3fc3d72329ff3847"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a json member profile_count with a child for each protocol used by the user. <a href="#a65500d6b5d93cc7e3fc3d72329ff3847">More...</a><br /></td></tr>
+<tr class="separator:a65500d6b5d93cc7e3fc3d72329ff3847"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afe9ad8b63938e3486cf09ebbbe2e549c"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#afe9ad8b63938e3486cf09ebbbe2e549c">remmina_stats_get_secret_plugin</a> ()</td></tr>
+<tr class="memdesc:afe9ad8b63938e3486cf09ebbbe2e549c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a json member ACTIVESECRETPLUGIN which shows the current secret plugin in use by remmina. <a href="#afe9ad8b63938e3486cf09ebbbe2e549c">More...</a><br /></td></tr>
+<tr class="separator:afe9ad8b63938e3486cf09ebbbe2e549c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abc355028bb11bee06b5aab5b5ae16dd3"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#abc355028bb11bee06b5aab5b5ae16dd3">remmina_stats_get_master_password_status</a> ()</td></tr>
+<tr class="memdesc:abc355028bb11bee06b5aab5b5ae16dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a json member HASMASTERPASSWORD which shows the status of the master password. <a href="#abc355028bb11bee06b5aab5b5ae16dd3">More...</a><br /></td></tr>
+<tr class="separator:abc355028bb11bee06b5aab5b5ae16dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a56956b7db0c631121151b19b920176da"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#a56956b7db0c631121151b19b920176da">remmina_stats_get_kiosk_mode</a> ()</td></tr>
+<tr class="memdesc:a56956b7db0c631121151b19b920176da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add a json member KIOSK which shows the status of the kiosk. <a href="#a56956b7db0c631121151b19b920176da">More...</a><br /></td></tr>
+<tr class="separator:a56956b7db0c631121151b19b920176da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7398b36347e3621772776c466b565641"><td class="memItemLeft" align="right" valign="top">JsonNode *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="remmina__stats_8c.html#a7398b36347e3621772776c466b565641">remmina_stats_get_all</a> ()</td></tr>
+<tr class="memdesc:a7398b36347e3621772776c466b565641"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get all statistics in json format to send periodically to the PHP server. <a href="#a7398b36347e3621772776c466b565641">More...</a><br /></td></tr>
+<tr class="separator:a7398b36347e3621772776c466b565641"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Remmina usage statistics module. </p>
+<dl class="section author"><dt>Author</dt><dd>Antenore Gatta and Giovanni Panozzo </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>12 Feb 2018</dd></dl>
+<p>When Remmina starts asks the user if she/he wants to share some usage statistics with the Remmina developers. As per the opt-in model (<a href="https://en.wikipedia.org/wiki/Opt-in_email">https://en.wikipedia.org/wiki/Opt-in_email</a>), without the consent of the user, none of these data will be collected. Additionally a user can asks, at any moment, that any data linked to his/her profiles to be deleted, and he/she can change the Remmina settings to stop collecting and sharing usage statistics.</p>
+<p>All the data are encrypted at client side using RSA, through the OpenSSL libraries, and decrypted offline to maximize security.</p>
+<p>The following example show which kind of data are collected.</p>
+<div class="fragment"><div class="line">{</div><div class="line"></div><div class="line"> <span class="stringliteral">&quot;UID&quot;</span>: <span class="stringliteral">&quot;P0M20TXN03DWF4-9a1e6da2ad&quot;</span></div><div class="line"> <span class="stringliteral">&quot;REMMINAVERSION&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;version&quot;</span>: <span class="stringliteral">&quot;1.2.0-rcgit-26&quot;</span></div><div class="line"> <span class="stringliteral">&quot;git_revision&quot;</span>: <span class="stringliteral">&quot;9c5c4805&quot;</span></div><div class="line"> <span class="stringliteral">&quot;snap_build&quot;</span>: 0</div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;SYSTEM&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;kernel_name&quot;</span>: <span class="stringliteral">&quot;Linux&quot;</span></div><div class="line"> <span class="stringliteral">&quot;kernel_release&quot;</span>: <span class="stringliteral">&quot;4.14.11-200.fc26.x86_64&quot;</span></div><div class="line"> <span class="stringliteral">&quot;kernel_arch&quot;</span>: <span class="stringliteral">&quot;x86_64&quot;</span></div><div class="line"> <span class="stringliteral">&quot;lsb_distributor&quot;</span>: <span class="stringliteral">&quot;Fedora&quot;</span></div><div class="line"> <span class="stringliteral">&quot;lsb_distro_description&quot;</span>: <span class="stringliteral">&quot;Fedora release 26 (Twenty Six)&quot;</span></div><div class="line"> <span class="stringliteral">&quot;lsb_distro_release&quot;</span>: <span class="stringliteral">&quot;26&quot;</span></div><div class="line"> <span class="stringliteral">&quot;lsb_distro_codename&quot;</span>: <span class="stringliteral">&quot;TwentySix&quot;</span></div><div class="line"> <span class="stringliteral">&quot;etc_release&quot;</span>: <span class="stringliteral">&quot;Fedora release 26 (Twenty Six)&quot;</span></div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;GTKVERSION&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;major&quot;</span>: 3</div><div class="line"> <span class="stringliteral">&quot;minor&quot;</span>: 22</div><div class="line"> <span class="stringliteral">&quot;micro&quot;</span>: 21</div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;GTKBACKEND&quot;</span>: <span class="stringliteral">&quot;X11&quot;</span></div><div class="line"> <span class="stringliteral">&quot;WINDOWMANAGER&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;window_manager&quot;</span>: <span class="stringliteral">&quot;GNOME i3-gnome&quot;</span></div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;APPINDICATOR&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;appindicator_supported&quot;</span>: 0</div><div class="line"> <span class="stringliteral">&quot;appindicator_compiled&quot;</span>: 1</div><div class="line"> <span class="stringliteral">&quot;icon_is_active&quot;</span>: 1</div><div class="line"> <span class="stringliteral">&quot;appindicator_type&quot;</span>: <span class="stringliteral">&quot;AppIndicator on GtkStatusIcon/xembed&quot;</span></div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;PROFILES&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;profile_count&quot;</span>: 457</div><div class="line"> <span class="stringliteral">&quot;SSH&quot;</span>: 431</div><div class="line"> <span class="stringliteral">&quot;NX&quot;</span>: 1</div><div class="line"> <span class="stringliteral">&quot;RDP&quot;</span>: 7</div><div class="line"> <span class="stringliteral">&quot;TERMINAL&quot;</span>: 2</div><div class="line"> <span class="stringliteral">&quot;X2GO&quot;</span>: 5</div><div class="line"> <span class="stringliteral">&quot;SFTP&quot;</span>: 4</div><div class="line"> <span class="stringliteral">&quot;PYTHON_SIMPLE&quot;</span>: 4</div><div class="line"> <span class="stringliteral">&quot;SPICE&quot;</span>: 3</div><div class="line"> <span class="stringliteral">&quot;DATE_SSH&quot;</span>: <span class="stringliteral">&quot;20180209&quot;</span></div><div class="line"> <span class="stringliteral">&quot;DATE_NX&quot;</span>: <span class="stringliteral">&quot;&quot;</span></div><div class="line"> <span class="stringliteral">&quot;DATE_RDP&quot;</span>: <span class="stringliteral">&quot;20180208&quot;</span></div><div class="line"> <span class="stringliteral">&quot;DATE_TERMINAL&quot;</span>: <span class="stringliteral">&quot;&quot;</span></div><div class="line"> <span class="stringliteral">&quot;DATE_X2GO&quot;</span>: <span class="stringliteral">&quot;&quot;</span></div><div class="line"> <span class="stringliteral">&quot;DATE_SFTP&quot;</span>: <span class="stringliteral">&quot;&quot;</span></div><div class="line"> <span class="stringliteral">&quot;DATE_PYTHON_SIMPLE&quot;</span>: <span class="stringliteral">&quot;&quot;</span></div><div class="line"> <span class="stringliteral">&quot;DATE_SPICE&quot;</span>: <span class="stringliteral">&quot;&quot;</span></div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;ENVIRONMENT&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;language&quot;</span>: <span class="stringliteral">&quot;en_US.utf8&quot;</span></div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;ACTIVESECRETPLUGIN&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;plugin_name&quot;</span>: <span class="stringliteral">&quot;kwallet&quot;</span></div><div class="line"> }</div><div class="line"> <span class="stringliteral">&quot;HASMASTERPASSWORD&quot;</span>: {</div><div class="line"> <span class="stringliteral">&quot;master_password_status&quot;</span>: <span class="stringliteral">&quot;OFF&quot;</span></div><div class="line"> }</div><div class="line"></div><div class="line">}</div></div><!-- fragment --><p>All of these data are solely transmitted to understand:</p><ul>
+<li>On which type of system Remmina is used</li>
+<li>Operating System</li>
+<li>Architecture (32/64bit)</li>
+<li>Linux distributor or OS vendor</li>
+<li>Desktop Environment type.</li>
+<li>Main library versions installed on the system in use by Remmina.</li>
+<li>Protocols used</li>
+<li>Last time each protocol has been used (globally).</li>
+</ul>
+<dl class="section see"><dt>See also</dt><dd><a href="http://www.remmina.org/wp">http://www.remmina.org/wp</a> for more information. </dd></dl>
+
+<p class="definition">Definition in file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+</div><h2 class="groupheader">Function Documentation</h2>
+<a id="a1dff2b06d5acefc9bd2f25508ab45328"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a1dff2b06d5acefc9bd2f25508ab45328">&#9670;&nbsp;</a></span>remmina_profiles_get_data()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static void remmina_profiles_get_data </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *&#160;</td>
+ <td class="paramname"><em>remminafile</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">gpointer&#160;</td>
+ <td class="paramname"><em>user_data</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Given a remmina file, fills a structure containing profiles keys/value tuples. </p>
+<p>This is used as a callback function with remmina_file_manager_iterate. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000014">Todo:</a></b></dt><dd>Move this in a separate file. </dd></dl>
+<p>Source date -&gt; from profile</p>
+<p>Destination date -&gt; The date in the pdata structure</p>
+<p>When both date in the hash and in the profile are valid we compare the date</p>
+<p>If the date in the hash less than the date in the profile, we take the latter</p>
+<p>If the date in the profile is NOT valid and the date in the hash is valid we keep the latter</p>
+<p>If the date in the hash is NOT valid and the date in the profile is valid we keep the latter</p>
+<p>If both date are NULL, we insert NULL for that protocol</p>
+<p>If there is not the protocol in the hash, we add it</p>
+<p>If the date in the profile is not NULL we use it</p>
+<p>Otherwise we set it to NULL </p>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00551">551</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="a7398b36347e3621772776c466b565641"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7398b36347e3621772776c466b565641">&#9670;&nbsp;</a></span>remmina_stats_get_all()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_all </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Get all statistics in json format to send periodically to the PHP server. </p>
+<p>The caller should free the returned buffer with g_free() </p><dl class="section warning"><dt>Warning</dt><dd>This function is usually executed on a dedicated thread, not on the main thread. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>a pointer to the JSON string. </dd></dl>
+<p>The section ENVIRONMENT collect all the user’s environment related settings.</p>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00848">848</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="a73fbf1064af209f1f7272d737168971c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a73fbf1064af209f1f7272d737168971c">&#9670;&nbsp;</a></span>remmina_stats_get_gtk_backend()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_gtk_backend </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section warning"><dt>Warning</dt><dd>this function is usually executed on a dedicated thread, not on the main thread</dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00421">421</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="aed3a8dd3e01a05d96d6cf3625bb28731"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aed3a8dd3e01a05d96d6cf3625bb28731">&#9670;&nbsp;</a></span>remmina_stats_get_gtk_version()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_gtk_version </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section warning"><dt>Warning</dt><dd>this function is usually executed on a dedicated thread, not on the main thread</dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00396">396</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="aee2ea5acceb2fbc3aa4ff21d136c5734"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aee2ea5acceb2fbc3aa4ff21d136c5734">&#9670;&nbsp;</a></span>remmina_stats_get_indicator()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_indicator </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Support for StatusNotifier or AppIndicator</p>
+<p>StatusNotifier/Appindicator supported by desktop</p>
+<p>libappindicator is compiled in remmina.</p>
+<p>Remmina not compiled with -DWITH_APPINDICATOR=on</p>
+<p>StatusNotifier/Appindicator NOT supported by desktop</p>
+<p>Remmina icon is active</p>
+<p>libappindicator fallback to GtkStatusIcon/xembed");</p>
+<p>Remmina fallback to GtkStatusIcon/xembed</p>
+<p>Remmina icon is NOT active </p>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00497">497</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="a56956b7db0c631121151b19b920176da"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a56956b7db0c631121151b19b920176da">&#9670;&nbsp;</a></span>remmina_stats_get_kiosk_mode()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_kiosk_mode </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a json member KIOSK which shows the status of the kiosk. </p>
+<dl class="section return"><dt>Returns</dt><dd>a Json Node structure containing the status of the master password </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00815">815</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="abc355028bb11bee06b5aab5b5ae16dd3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#abc355028bb11bee06b5aab5b5ae16dd3">&#9670;&nbsp;</a></span>remmina_stats_get_master_password_status()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_master_password_status </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a json member HASMASTERPASSWORD which shows the status of the master password. </p>
+<dl class="section return"><dt>Returns</dt><dd>a Json Node structure containing the status of the master password </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00785">785</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="a43133d5e00f481d315ef0d58cb52e70a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a43133d5e00f481d315ef0d58cb52e70a">&#9670;&nbsp;</a></span>remmina_stats_get_os_info()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_os_info </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section warning"><dt>Warning</dt><dd>this function is usually executed on a dedicated thread, not on the main thread</dd></dl>
+<dl class="todo"><dt><b><a class="el" href="todo.html#_todo000013">Todo:</a></b></dt><dd>Add other means to identify a release name/description to cover as much OS as possible, like /etc/issue </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00213">213</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="a65500d6b5d93cc7e3fc3d72329ff3847"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a65500d6b5d93cc7e3fc3d72329ff3847">&#9670;&nbsp;</a></span>remmina_stats_get_profiles()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_profiles </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a json member profile_count with a child for each protocol used by the user. </p>
+<p>Count how many profiles are in use and for each protocol in use counts of how many profiles that uses such protocol.</p>
+<p>The data can be expressed as follows:</p>
+<table class="doxtable">
+<tr>
+<th align="left">PROTO </th><th align="right">PROF COUNT </th></tr>
+<tr>
+<td align="left">RDP </td><td align="right">2560 </td></tr>
+<tr>
+<td align="left">SPICE </td><td align="right">334 </td></tr>
+<tr>
+<td align="left">SSH </td><td align="right">1540 </td></tr>
+<tr>
+<td align="left">VNC </td><td align="right">2 </td></tr>
+</table>
+<table class="doxtable">
+<tr>
+<th align="left">PROTO </th><th align="right">LAST USED </th></tr>
+<tr>
+<td align="left">RDP </td><td align="right">20180129 </td></tr>
+<tr>
+<td align="left">SPICE </td><td align="right">20171122 </td></tr>
+<tr>
+<td align="left">SSH </td><td align="right">20180111 </td></tr>
+</table>
+<dl class="section return"><dt>Returns</dt><dd>a Json Node structure containing the protocol usage statistics. </dd></dl>
+<dl class="section warning"><dt>Warning</dt><dd>this function is usually executed on a dedicated thread, not on the main thread </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00684">684</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="afe9ad8b63938e3486cf09ebbbe2e549c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afe9ad8b63938e3486cf09ebbbe2e549c">&#9670;&nbsp;</a></span>remmina_stats_get_secret_plugin()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_secret_plugin </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Add a json member ACTIVESECRETPLUGIN which shows the current secret plugin in use by remmina. </p>
+<dl class="section return"><dt>Returns</dt><dd>a Json Node structure containing the secret plugin in use </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00756">756</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="ac6adbf6560625e2bf54037fcd039319d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac6adbf6560625e2bf54037fcd039319d">&#9670;&nbsp;</a></span>remmina_stats_get_uid()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_uid </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section warning"><dt>Warning</dt><dd>this function is usually executed on a dedicated thread, not on the main thread</dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00171">171</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="a42f0554bf8eacb253a023d601cd59648"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a42f0554bf8eacb253a023d601cd59648">&#9670;&nbsp;</a></span>remmina_stats_get_user_env()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_user_env </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Gets the following user environment: </p>
+<ul>
+<li>Gets the user’s locale (or NULL by default) corresponding to LC_ALL.</li>
+</ul>
+<dl class="section return"><dt>Returns</dt><dd>a Json Node structure containing the user’s environment. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00331">331</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="ab248458a3face2634bab909ffeb8291e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab248458a3face2634bab909ffeb8291e">&#9670;&nbsp;</a></span>remmina_stats_get_version()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_version </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section warning"><dt>Warning</dt><dd>this function is usually executed on a dedicated thread, not on the main thread</dd></dl>
+<p>Detect if we are running under Flatpak</p>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00354">354</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+<a id="ae596da7901fb3b45b7290a1d70b3ea3a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae596da7901fb3b45b7290a1d70b3ea3a">&#9670;&nbsp;</a></span>remmina_stats_get_wm_name()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">JsonNode* remmina_stats_get_wm_name </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>We try to get the Gnome SHELL version</p>
+<p>When everything else fails with set the WM name to NULL </p>
+
+<p class="definition">Definition at line <a class="el" href="remmina__stats_8c_source.html#l00453">453</a> of file <a class="el" href="remmina__stats_8c_source.html">remmina_stats.c</a>.</p>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="remmina__stats_8c.html">remmina_stats.c</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>