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
path: root/docs
diff options
context:
space:
mode:
authorAntenore Gatta <antenore@simbiosi.org>2017-12-29 02:25:25 +0300
committerAntenore Gatta <antenore@simbiosi.org>2017-12-29 02:25:25 +0300
commit74b6d4e51e40e0a8fae0342de40d022ec92b1f68 (patch)
tree37081ff231749561faad11aa7a3c47d1e7269569 /docs
parent430c2df0ad1e3de1341dc7e0213cddc9602cc942 (diff)
Automatic doc build from rex
Diffstat (limited to 'docs')
-rw-r--r--docs/_c_h_a_n_g_e_l_o_g_8md_source.html2
-rw-r--r--docs/_r_e_a_d_m_e_8md_source.html2
-rw-r--r--docs/config_8h_source.html2
-rw-r--r--docs/index.html2
-rw-r--r--docs/md__c_h_a_n_g_e_l_o_g.html23
-rw-r--r--docs/remmina__file__manager_8c.html2
-rw-r--r--docs/remmina__sftp__plugin_8c.html2
-rw-r--r--docs/remmina__ssh_8c_source.html2
-rw-r--r--docs/remmina__ssh__plugin_8c.html2
9 files changed, 26 insertions, 13 deletions
diff --git a/docs/_c_h_a_n_g_e_l_o_g_8md_source.html b/docs/_c_h_a_n_g_e_l_o_g_8md_source.html
index 5f220846d..f60297372 100644
--- a/docs/_c_h_a_n_g_e_l_o_g_8md_source.html
+++ b/docs/_c_h_a_n_g_e_l_o_g_8md_source.html
@@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('_c_h_a_n_g_e_l_o_g_8md.html','');});
<div class="title">CHANGELOG.md</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_c_h_a_n_g_e_l_o_g_8md.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;# Change Log</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;## [v1.2.0-rcgit.25](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.25) (2017-12-20)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.24...v1.2.0-rcgit.25)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;- Allow external commands without protocols in create connection dialog [\#1391](https://github.com/FreeRDP/Remmina/issues/1391)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;- Feature request - Option to completely hide the floating toolbar when in fullscreen. [\#1379](https://github.com/FreeRDP/Remmina/issues/1379)</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;- Option to run Pre Command before ANYTHING else [\#1363](https://github.com/FreeRDP/Remmina/issues/1363)</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;- Rename the plugin &#39;remmina-plugins-gnome&#39; in &#39;remmina-plugins-secret&#39; [\#1343](https://github.com/FreeRDP/Remmina/issues/1343)</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;- Enhancement - Variables for pre- and post-commands [\#849](https://github.com/FreeRDP/Remmina/issues/849)</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;- Failed to load plugin: remmina-plugin-telepathy.so - undefined symbol: remmina\_tp\_handler\_new [\#714](https://github.com/FreeRDP/Remmina/issues/714)</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;- Implement an exec protocol plugin [\#1406](https://github.com/FreeRDP/Remmina/pull/1406) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;- Add SPICE Native WebDAV shared folder support [\#1401](https://github.com/FreeRDP/Remmina/pull/1401) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;- Added encryption algorithms options for SSH [\#1397](https://github.com/FreeRDP/Remmina/pull/1397) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;- SSH tunnel and pre/post commands improvements [\#1385](https://github.com/FreeRDP/Remmina/pull/1385) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;- Prior commands improvements [\#1378](https://github.com/FreeRDP/Remmina/pull/1378) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;- flatpak: add manifest for flatpak-builder [\#1368](https://github.com/FreeRDP/Remmina/pull/1368) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;- telepathy: properly setup dbus activation [\#1365](https://github.com/FreeRDP/Remmina/pull/1365) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;- Add avahi host discovery for ssh and sftp plugins [\#1355](https://github.com/FreeRDP/Remmina/pull/1355) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;- Refactoring - Rename remmina-plugins-gnome in remmina-plugin-secret [\#1348](https://github.com/FreeRDP/Remmina/pull/1348) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;- Refactoring - Part 1 [\#1336](https://github.com/FreeRDP/Remmina/pull/1336) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;- Un-check of &quot;Fullscreen on the same monitor as the connection window&quot; won&#39;t save [\#1344](https://github.com/FreeRDP/Remmina/issues/1344)</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;- Remmina resets screen resolution settings in RDP shortcut [\#1323](https://github.com/FreeRDP/Remmina/issues/1323)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;- Failed to load plugin: remmina-plugin-telepathy.so - undefined symbol: remmina\\_tp\\_handler\\_new [\#714](https://github.com/FreeRDP/Remmina/issues/714)</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;- Align SFTP and SSH plugins authentication and tunnel functionalities. [\#1393](https://github.com/FreeRDP/Remmina/pull/1393) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;- Fix Telepathy plugin compilation [\#1356](https://github.com/FreeRDP/Remmina/pull/1356) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;- \_\_func\_\_ keyword must not be quoted [\#1350](https://github.com/FreeRDP/Remmina/pull/1350) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;**Closed issues:**</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;- The password in the connections is not saved after upgrading Remmina [\#1402](https://github.com/FreeRDP/Remmina/issues/1402)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;- remmina fails to open sftp window, connected to ssh2 server with public key auth [\#1392](https://github.com/FreeRDP/Remmina/issues/1392)</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;- Please add hostbased mechanism support for ssh [\#1373](https://github.com/FreeRDP/Remmina/issues/1373)</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;- Remmina tray icon not visible anymore [\#1371](https://github.com/FreeRDP/Remmina/issues/1371)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;- Spacebar button bug with &quot;use client mapping&quot; RDP option enabled [\#1364](https://github.com/FreeRDP/Remmina/issues/1364)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;- Window 0x555b79d3d650 has not been made visible in GdkSeatGrabPrepareFunc [\#1359](https://github.com/FreeRDP/Remmina/issues/1359)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;- WARNING: the &quot;resolution&quot; setting in .pref files is deprecated [\#1358](https://github.com/FreeRDP/Remmina/issues/1358)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;- Wrong keyboard layout in VNC [\#1352](https://github.com/FreeRDP/Remmina/issues/1352)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;- remmina shows pop-up notification only for first screenshot [\#1347](https://github.com/FreeRDP/Remmina/issues/1347)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;- SFTP identity File [\#1301](https://github.com/FreeRDP/Remmina/issues/1301)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;- Password not saved [\#1047](https://github.com/FreeRDP/Remmina/issues/1047)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;- minimize button does not function well [\#921](https://github.com/FreeRDP/Remmina/issues/921)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;**Merged pull requests:**</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;- Updated README.MD with Debian install instructions [\#1399](https://github.com/FreeRDP/Remmina/pull/1399) ([MagicFab](https://github.com/MagicFab))</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;- update simplified Chinese translations. [\#1367](https://github.com/FreeRDP/Remmina/pull/1367) ([sotux](https://github.com/sotux))</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;- Fix &#39;consistant&#39; -&gt; &#39;consistent&#39; typo [\#1362](https://github.com/FreeRDP/Remmina/pull/1362) ([mfvescovi](https://github.com/mfvescovi))</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;- ssh\_userauth\_publickey\_auto: should accept empty passphrase [\#1361](https://github.com/FreeRDP/Remmina/pull/1361) ([rayrapetyan](https://github.com/rayrapetyan))</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;- Remove a couple of legacy &quot;resolution&quot; fields, fixes \#1358 [\#1360](https://github.com/FreeRDP/Remmina/pull/1360) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;- Un-check of &#39;Fullscreen on the same monitor&#39; [\#1349](https://github.com/FreeRDP/Remmina/pull/1349) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;- Create CODE\_OF\_CONDUCT [\#1341](https://github.com/FreeRDP/Remmina/pull/1341) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;## [v1.2.0-rcgit.24](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.24) (2017-10-25)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.23...v1.2.0-rcgit.24)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;**Closed issues:**</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;- vte no longer optional [\#1327](https://github.com/FreeRDP/Remmina/issues/1327)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;- libwinpr.so.2 dependcy missing [\#1312](https://github.com/FreeRDP/Remmina/issues/1312)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;**Merged pull requests:**</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;- Another fix for \#1323 [\#1339](https://github.com/FreeRDP/Remmina/pull/1339) ([giox069](https://github.com/giox069))</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;## [v1.2.0-rcgit.23](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.23) (2017-10-23)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.22...v1.2.0-rcgit.23)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;**Implemented enhancements:**</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;- SSH session log to file [\#1320](https://github.com/FreeRDP/Remmina/issues/1320)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;- Save SSH session to file \#1320 [\#1333](https://github.com/FreeRDP/Remmina/pull/1333) ([antenore](https://github.com/antenore))</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;**Merged pull requests:**</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;- Fixes for issue \#1327, optional VTE an SSH [\#1335](https://github.com/FreeRDP/Remmina/pull/1335) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;- snap: add password-manager-service interface for gnome-keyring [\#1334](https://github.com/FreeRDP/Remmina/pull/1334) ([dfiloni](https://github.com/dfiloni))</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;- Fix window state saving for remmina\_connection\_window and main window [\#1331](https://github.com/FreeRDP/Remmina/pull/1331) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;- Update da.po \(fully translated\) [\#1330](https://github.com/FreeRDP/Remmina/pull/1330) ([scootergrisen](https://github.com/scootergrisen))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;- Fixes for deprecated &quot;resolution&quot; setting, issue \#1323 [\#1329](https://github.com/FreeRDP/Remmina/pull/1329) ([giox069](https://github.com/giox069))</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;## [v1.2.0-rcgit.22](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.22) (2017-10-20)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.21...v1.2.0-rcgit.22)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;- Add support for ayatana-appindicators [\#1309](https://github.com/FreeRDP/Remmina/pull/1309) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;- \[snap\] Use the new desktop, desktop-legacy and wayland interfaces [\#1306](https://github.com/FreeRDP/Remmina/pull/1306) ([kenvandine](https://github.com/kenvandine))</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;**Fixed bugs:**</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;- Crashes when I try opening Preferences [\#1313](https://github.com/FreeRDP/Remmina/issues/1313)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;- Resolution and Passwords Not Saving in Connection Profiles [\#1307](https://github.com/FreeRDP/Remmina/issues/1307)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;- Add background and foreground colors for old versions of VTE [\#1318](https://github.com/FreeRDP/Remmina/pull/1318) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;- Make remmina\_file\_editor\_on\_save behave correcthly [\#1308](https://github.com/FreeRDP/Remmina/pull/1308) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;**Closed issues:**</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;- RDP connection profile settings are not used when opening session [\#1325](https://github.com/FreeRDP/Remmina/issues/1325)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;- Remmina removes the desktop application bar when placed in fullscreen mode \(Linux Mint v18.2\) [\#1317](https://github.com/FreeRDP/Remmina/issues/1317)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;- Remmina only shows black screen without any text after connection to an SSH server [\#1316](https://github.com/FreeRDP/Remmina/issues/1316)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;- Shared file timestamp [\#1310](https://github.com/FreeRDP/Remmina/issues/1310)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;- Tab size - SSH Sessions [\#1305](https://github.com/FreeRDP/Remmina/issues/1305)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;- no rdp in the window option and no remmina command available in terminal [\#1302](https://github.com/FreeRDP/Remmina/issues/1302)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;- Unsolvable dependencies on Debian 9 [\#1298](https://github.com/FreeRDP/Remmina/issues/1298)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;- Remmina doesn&#39;t respect the `SSH Tunnel` `SSH authentication` `User name` setting [\#1278](https://github.com/FreeRDP/Remmina/issues/1278)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;- Debian 9 - Remmina - RDP Plugin [\#1201](https://github.com/FreeRDP/Remmina/issues/1201)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;- Win key stays pressed in remote desktop when remmina loses focus [\#1058](https://github.com/FreeRDP/Remmina/issues/1058)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;- Remmina crashes after reconnection attempt after entering wrong password [\#1054](https://github.com/FreeRDP/Remmina/issues/1054)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;- Remmina is not aware of additional screen added [\#938](https://github.com/FreeRDP/Remmina/issues/938)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;- Focus-out-event should call UNFOCUS plugin feature, fixes \#1058 [\#1315](https://github.com/FreeRDP/Remmina/pull/1315) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;- Fix some memory leaks [\#1314](https://github.com/FreeRDP/Remmina/pull/1314) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;- Dev documentation and Copyright update [\#1311](https://github.com/FreeRDP/Remmina/pull/1311) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;## [v1.2.0-rcgit.21](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.21) (2017-10-08)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.20...v1.2.0-rcgit.21)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;- Feature Request: Create custom Terminal Color Schemes for SSH [\#1235](https://github.com/FreeRDP/Remmina/issues/1235)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;- Enter key doesn&#39;t &quot;Connect&quot; when in Edit menu and password field is in focus [\#1233](https://github.com/FreeRDP/Remmina/issues/1233)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;- Feature request - Option - Floating Desktop Name \[$5\] [\#815](https://github.com/FreeRDP/Remmina/issues/815)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;- Don&#39;t close connection windows when main window is closed [\#785](https://github.com/FreeRDP/Remmina/issues/785)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;- File association for connections [\#485](https://github.com/FreeRDP/Remmina/issues/485)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;- Implementation of dynamic resolution update for RDP [\#1292](https://github.com/FreeRDP/Remmina/pull/1292) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;- Shortcutkey viewonly [\#1289](https://github.com/FreeRDP/Remmina/pull/1289) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;- Simplify pthreads library detection [\#1274](https://github.com/FreeRDP/Remmina/pull/1274) ([jabl](https://github.com/jabl))</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;- Custom Color schemes for SSH [\#1272](https://github.com/FreeRDP/Remmina/pull/1272) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;- RDP client keyboard mapping with GTK3 [\#1265](https://github.com/FreeRDP/Remmina/pull/1265) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;- Make building the VNC plugin optional [\#1263](https://github.com/FreeRDP/Remmina/pull/1263) ([diogocp](https://github.com/diogocp))</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;- copy / paste and charset [\#1300](https://github.com/FreeRDP/Remmina/issues/1300)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;- Changes user name ssh tunnel \(vnc over ssh\) do not save. [\#1255](https://github.com/FreeRDP/Remmina/issues/1255)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;- SSH username ignored for Tunnels for RDP [\#1254](https://github.com/FreeRDP/Remmina/issues/1254)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;- Can&#39;t Specify X :display for XDMCP. [\#1251](https://github.com/FreeRDP/Remmina/issues/1251)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;- &quot;Remember last view mode for each connection&quot; not respected in v1.2.0-rcgit.19 [\#1247](https://github.com/FreeRDP/Remmina/issues/1247)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;- Remmina always remember password [\#1224](https://github.com/FreeRDP/Remmina/issues/1224)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;- Host key not working with SPICE plugin connected to KVM client. [\#1035](https://github.com/FreeRDP/Remmina/issues/1035)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;- Shortcutkey viewonly [\#1289](https://github.com/FreeRDP/Remmina/pull/1289) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;**Closed issues:**</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;- Remmina VNC viewer window become freeze or unresponsive if remote Ubuntu pc connection dropped or shutdown [\#1296](https://github.com/FreeRDP/Remmina/issues/1296)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;- support opensuse [\#1284](https://github.com/FreeRDP/Remmina/issues/1284)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;- Remmina 1.2.0-rcgit.20 fails to build from source on sparc64 box [\#1283](https://github.com/FreeRDP/Remmina/issues/1283)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;- WINPR\_INCLUDE\_DIR Set to not found [\#1281](https://github.com/FreeRDP/Remmina/issues/1281)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;- Problem with latest pthread cmake patch and address sanitizer [\#1276](https://github.com/FreeRDP/Remmina/issues/1276)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;- Remmina on Raspbian 9 Stretch and Remmina RemoteApp support [\#1269](https://github.com/FreeRDP/Remmina/issues/1269)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;- Large file corruption over shared folder on RDP connection. [\#1266](https://github.com/FreeRDP/Remmina/issues/1266)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;- Autoreconnect function with same credentials [\#1264](https://github.com/FreeRDP/Remmina/issues/1264)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;- VNC plugin on Debian 9 \(stretch\) no longer available / working [\#1248](https://github.com/FreeRDP/Remmina/issues/1248)</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;- Graphics Flickering [\#1194](https://github.com/FreeRDP/Remmina/issues/1194)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;- Can&#39;t connect to x509vnc on Fedora 25 [\#1171](https://github.com/FreeRDP/Remmina/issues/1171)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;- RDP remote files are listed with huge wrong size under 32bit client platforms [\#1166](https://github.com/FreeRDP/Remmina/issues/1166)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;- Printing PDF via Remmina and share local Printers on Linux Mint dont work [\#1158](https://github.com/FreeRDP/Remmina/issues/1158)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;- Segfault when mousing out of latest remmina. [\#1152](https://github.com/FreeRDP/Remmina/issues/1152)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;- Build 1.2.0-rcgit.x on Debian Jessie [\#1147](https://github.com/FreeRDP/Remmina/issues/1147)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;- RDP to Windows 10 freezes/hangs [\#1139](https://github.com/FreeRDP/Remmina/issues/1139)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;- FTBFS with both libfreerdp 1.2 and 2.0 installed [\#1137](https://github.com/FreeRDP/Remmina/issues/1137)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;- Share folder date &amp; time [\#934](https://github.com/FreeRDP/Remmina/issues/934)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;- Copy/paste between Windows 10 guest and Remmina 1.2.0-rcgit.14 \(git n/a\) host [\#916](https://github.com/FreeRDP/Remmina/issues/916)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;- Duplicate of issue\#99 on Remina 1.2.0 [\#844](https://github.com/FreeRDP/Remmina/issues/844)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;- Shared clipboard with rdp [\#806](https://github.com/FreeRDP/Remmina/issues/806)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;- Remmina crashes after 1st auth failure [\#798](https://github.com/FreeRDP/Remmina/issues/798)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;- RDP Plugin Not Found [\#751](https://github.com/FreeRDP/Remmina/issues/751)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;- Unable to connect to remote desktop after last update, error \(SIGSEGV\) [\#747](https://github.com/FreeRDP/Remmina/issues/747)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;- Bug: unable to connect through gateway since 1.2.0-rcgit.8 [\#722](https://github.com/FreeRDP/Remmina/issues/722)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;- not printing with remiina client 1.2 [\#707](https://github.com/FreeRDP/Remmina/issues/707)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;- Copy&amp;Paste of formatted text not working. [\#693](https://github.com/FreeRDP/Remmina/issues/693)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;- \\tsclient shares disconnect when accessed by certain programs on server [\#686](https://github.com/FreeRDP/Remmina/issues/686)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;- copy / paste and charset [\#685](https://github.com/FreeRDP/Remmina/issues/685)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;- Cannot compile Remmina 1.0 on Linux mint 17.2 [\#658](https://github.com/FreeRDP/Remmina/issues/658)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;- Minus &quot;-&quot; instead of slash &quot;/&quot; from numpad [\#656](https://github.com/FreeRDP/Remmina/issues/656)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;- version 1.2 RDP/VNC &quot;viewport fullscreen mode&quot; causes problems when scaling is enabled [\#357](https://github.com/FreeRDP/Remmina/issues/357)</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;**Merged pull requests:**</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;- Fix charset conversion in VNC clipboard [\#1303](https://github.com/FreeRDP/Remmina/pull/1303) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;- Add support for application/x-remmina MIME type, fixes \#485 [\#1299](https://github.com/FreeRDP/Remmina/pull/1299) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;- Reverted the notfication for the floating toolbar [\#1297](https://github.com/FreeRDP/Remmina/pull/1297) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;- Fixes for notifications [\#1294](https://github.com/FreeRDP/Remmina/pull/1294) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;- Server name is notified to the user everytime we enter a tab [\#1290](https://github.com/FreeRDP/Remmina/pull/1290) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;- Exit strategy for Gnome Shell 3.26 [\#1287](https://github.com/FreeRDP/Remmina/pull/1287) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;- Fix gtk redrawing in RDP plugin [\#1286](https://github.com/FreeRDP/Remmina/pull/1286) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;- Gtk deprecations [\#1285](https://github.com/FreeRDP/Remmina/pull/1285) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;- Add Keywords entry [\#1277](https://github.com/FreeRDP/Remmina/pull/1277) ([mfvescovi](https://github.com/mfvescovi))</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;- Runtime paths for AppImage [\#1271](https://github.com/FreeRDP/Remmina/pull/1271) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;- Get ssh\_username from remmina profile - fixes \#1255 [\#1267](https://github.com/FreeRDP/Remmina/pull/1267) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;- Better button labelling and new save button [\#1250](https://github.com/FreeRDP/Remmina/pull/1250) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;## [v1.2.0-rcgit.20](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.20) (2017-08-25)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.19...v1.2.0-rcgit.20)</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;**Implemented enhancements:**</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"> 206</span>&#160;- Set Linux as the default terminal color scheme. Fixes \#1238 [\#1243](https://github.com/FreeRDP/Remmina/pull/1243) ([antenore](https://github.com/antenore))</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;**Fixed bugs:**</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;- Remmina crashes each time I use FTP transfer [\#1257](https://github.com/FreeRDP/Remmina/issues/1257)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;- Problems with some color schemes [\#1225](https://github.com/FreeRDP/Remmina/issues/1225)</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;**Closed issues:**</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;- Color on SSH terminal window being applied [\#1238](https://github.com/FreeRDP/Remmina/issues/1238)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;- Tray applet closing when last window gets closed [\#1236](https://github.com/FreeRDP/Remmina/issues/1236)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;- Systray icon closes when closing &#39;Main Window&#39; or RDP connection [\#1229](https://github.com/FreeRDP/Remmina/issues/1229)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;- Missing icons after compiling latest Git release [\#1221](https://github.com/FreeRDP/Remmina/issues/1221)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;- RDP quality settings not saved [\#1216](https://github.com/FreeRDP/Remmina/issues/1216)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;- Cannot connect after upgrading Ubuntu to 16.04 [\#946](https://github.com/FreeRDP/Remmina/issues/946)</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;**Merged pull requests:**</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;- passphrase not yet used in sftp connection - closes \#1257 [\#1259](https://github.com/FreeRDP/Remmina/pull/1259) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;- Added ssh\_agent in the list of authorized method, fixes \#1228 [\#1246](https://github.com/FreeRDP/Remmina/pull/1246) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;- Connect when pressing enter in the password field [\#1242](https://github.com/FreeRDP/Remmina/pull/1242) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;- Fixed terminal color palettes [\#1240](https://github.com/FreeRDP/Remmina/pull/1240) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;- French translation update and other po files update with new strings to be translated [\#1239](https://github.com/FreeRDP/Remmina/pull/1239) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;- SSH Kerberos GSSAPI Auth [\#1237](https://github.com/FreeRDP/Remmina/pull/1237) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;- Enter key doesn&#39;t &quot;Connect&quot; when in Edit menu and password field is in focus - \#1233 [\#1234](https://github.com/FreeRDP/Remmina/pull/1234) ([erichoog](https://github.com/erichoog))</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;- Fix link for issue \#367 [\#1232](https://github.com/FreeRDP/Remmina/pull/1232) ([erichoog](https://github.com/erichoog))</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;- Change Status Icon availability for gnome 3.16 [\#1230](https://github.com/FreeRDP/Remmina/pull/1230) ([giox069](https://github.com/giox069))</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;## [v1.2.0-rcgit.19](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.19) (2017-07-24)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.18...v1.2.0-rcgit.19)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;**Implemented enhancements:**</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;- SSH tunneling does not work with RDP server redirection [\#1175](https://github.com/FreeRDP/Remmina/issues/1175)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;- Enhancement - Another User connected to the server, forcing \[...\] pop-up [\#1141](https://github.com/FreeRDP/Remmina/issues/1141)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;- RD Gateway Doesn&#39;t Support different username/password [\#933](https://github.com/FreeRDP/Remmina/issues/933)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;- the checkbox, &#39;Save SSH Password&#39;, greyed out. [\#708](https://github.com/FreeRDP/Remmina/issues/708)</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;- RD Gateway authentication doesn&#39;t work [\#511](https://github.com/FreeRDP/Remmina/issues/511)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;- Allow the user to hide the toolbar inside a remmina connection window [\#413](https://github.com/FreeRDP/Remmina/issues/413)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;- Support for RDP Gateway [\#347](https://github.com/FreeRDP/Remmina/issues/347)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;- Feature request: Implement &quot;Credential Groups&quot; [\#82](https://github.com/FreeRDP/Remmina/issues/82)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;- Ssh improvements [\#1196](https://github.com/FreeRDP/Remmina/pull/1196) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;- Implementing separate user and password for RD Gateway [\#1193](https://github.com/FreeRDP/Remmina/pull/1193) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;- RDP: remove server hostname DNS check [\#1190](https://github.com/FreeRDP/Remmina/pull/1190) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;- Pressing Enter in the Domain entry of Auth dialog submits [\#1163](https://github.com/FreeRDP/Remmina/pull/1163) ([iivorait](https://github.com/iivorait))</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;- Add server name to popup warning [\#1142](https://github.com/FreeRDP/Remmina/pull/1142) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;- Add an option to completely disable the floating toolbar in fullscreen mode [\#1135](https://github.com/FreeRDP/Remmina/pull/1135) ([transistor1](https://github.com/transistor1))</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;- The host key should not affect subsequent key operations [\#1132](https://github.com/FreeRDP/Remmina/pull/1132) ([nanxiongchao](https://github.com/nanxiongchao))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;- Remmina profile editor scrolling is broken [\#1179](https://github.com/FreeRDP/Remmina/issues/1179)</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;- Graphical issues when using byobu/tmux [\#1151](https://github.com/FreeRDP/Remmina/issues/1151)</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;- I always got an error message &quot;SSH public key has changed!&quot; [\#1129](https://github.com/FreeRDP/Remmina/issues/1129)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;- problem with tui interfaces in remmina [\#1076](https://github.com/FreeRDP/Remmina/issues/1076)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;- test bounty source [\#1048](https://github.com/FreeRDP/Remmina/issues/1048)</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;- Importing rdp file not successful [\#1039](https://github.com/FreeRDP/Remmina/issues/1039)</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;- Implementing separate user and password for RD Gateway [\#1193](https://github.com/FreeRDP/Remmina/pull/1193) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;**Closed issues:**</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;- Invalid \(too large\) file size in rdp shared folder [\#1220](https://github.com/FreeRDP/Remmina/issues/1220)</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;- RDP to Win10 makes ToolBar clear [\#1209](https://github.com/FreeRDP/Remmina/issues/1209)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;- Upgrading to 1.2 failed [\#1202](https://github.com/FreeRDP/Remmina/issues/1202)</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;- Multiple NICs [\#1188](https://github.com/FreeRDP/Remmina/issues/1188)</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;- &quot;Public Key \(Automatic\)&quot; option does not work with ed25519 keys [\#1187](https://github.com/FreeRDP/Remmina/issues/1187)</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;- Cannot connect to Windows 10 after Creators Update \(1703\) [\#1186](https://github.com/FreeRDP/Remmina/issues/1186)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;- Crashing on Load: Segfault [\#1185](https://github.com/FreeRDP/Remmina/issues/1185)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;- Files in mounted sharefolders become terrabytes big. [\#1174](https://github.com/FreeRDP/Remmina/issues/1174)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;- compilation on Debian 9 [\#1165](https://github.com/FreeRDP/Remmina/issues/1165)</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;- Clipboard sync is not working [\#1164](https://github.com/FreeRDP/Remmina/issues/1164)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;- File Transfers to Share Folder Crashing Remmina 1.2.0-rcgit-18 Each Try [\#1159](https://github.com/FreeRDP/Remmina/issues/1159)</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;- Segfault when using the host SMB sharefolder on Windows \(from Linux client\) [\#1157](https://github.com/FreeRDP/Remmina/issues/1157)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;- Custom RDP settings? [\#1146](https://github.com/FreeRDP/Remmina/issues/1146)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;- Missing icons in remote session toolbar [\#1136](https://github.com/FreeRDP/Remmina/issues/1136)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;- Opacity for pop up tool bar is too see-through [\#1131](https://github.com/FreeRDP/Remmina/issues/1131)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;- option to remove fullscreen toolbar completely [\#1128](https://github.com/FreeRDP/Remmina/issues/1128)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;- SSH terminal doesn&#39;t work [\#1125](https://github.com/FreeRDP/Remmina/issues/1125)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;- Start remmina with fixed language [\#1119](https://github.com/FreeRDP/Remmina/issues/1119)</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;- Remmina Next is Corrupting the Unity Desktop [\#1111](https://github.com/FreeRDP/Remmina/issues/1111)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;- Remove systemd dependency [\#1100](https://github.com/FreeRDP/Remmina/issues/1100)</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;- Keyboard Events [\#1096](https://github.com/FreeRDP/Remmina/issues/1096)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;- No move or resize terminal window [\#1087](https://github.com/FreeRDP/Remmina/issues/1087)</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;- Connection Timeout - vfprintf.c no such file or directory - Segfault [\#1080](https://github.com/FreeRDP/Remmina/issues/1080)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;- SSH password can&#39;t save , terminal auto disconnection [\#1078](https://github.com/FreeRDP/Remmina/issues/1078)</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;- Remmina getting down when used ssh &amp; mc [\#1075](https://github.com/FreeRDP/Remmina/issues/1075)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;- Only stored passwords when connecting via RD-Gateway [\#922](https://github.com/FreeRDP/Remmina/issues/922)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;- VNC over SSH tunnel very slow [\#713](https://github.com/FreeRDP/Remmina/issues/713)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;- Domain/Username/Password database [\#711](https://github.com/FreeRDP/Remmina/issues/711)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;- Remmina RDP hangs after second certificate confirmation when using RD gateway [\#706](https://github.com/FreeRDP/Remmina/issues/706)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;- SSH agent forwarding, tunnels and other nice stuff [\#692](https://github.com/FreeRDP/Remmina/issues/692)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;- When I open a RDP connexion on Microsoft Windows PC, SSH Client display is messing [\#663](https://github.com/FreeRDP/Remmina/issues/663)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;- Remmina doesn&#39;t respect ssh config files... [\#235](https://github.com/FreeRDP/Remmina/issues/235)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;- SSH: missed check availability of PubkicKey Auth on remote host before asking passphrase [\#176](https://github.com/FreeRDP/Remmina/issues/176)</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;**Merged pull requests:**</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;- Fixes for the exit strategy [\#1219](https://github.com/FreeRDP/Remmina/pull/1219) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;- Issues 785 966 [\#1214](https://github.com/FreeRDP/Remmina/pull/1214) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;- Ssh protocol plugin implementation [\#1206](https://github.com/FreeRDP/Remmina/pull/1206) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;- The multi password changer [\#1203](https://github.com/FreeRDP/Remmina/pull/1203) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;- Fix snap issues [\#1200](https://github.com/FreeRDP/Remmina/pull/1200) ([dfiloni](https://github.com/dfiloni))</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;- Terminal functionalities to make Remmina behave correctly with ncurses [\#1198](https://github.com/FreeRDP/Remmina/pull/1198) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;- Fix multiple typos of &#39;transfered&#39; word [\#1173](https://github.com/FreeRDP/Remmina/pull/1173) ([mfvescovi](https://github.com/mfvescovi))</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;- RDP plugin: add password expired message and update po files [\#1170](https://github.com/FreeRDP/Remmina/pull/1170) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;- Remmina --full-version command line option [\#1169](https://github.com/FreeRDP/Remmina/pull/1169) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;- snapcraft: use snap-preload to get dynamic access to /snap path [\#1161](https://github.com/FreeRDP/Remmina/pull/1161) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;- Inproved CodeTriage and Bountysource buttons [\#1143](https://github.com/FreeRDP/Remmina/pull/1143) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;- Cmake clean [\#1140](https://github.com/FreeRDP/Remmina/pull/1140) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;- Give precedence to libfreerdp2 and winpr2 libs [\#1138](https://github.com/FreeRDP/Remmina/pull/1138) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;- travis: build the snap for PRs in Debug mode [\#1130](https://github.com/FreeRDP/Remmina/pull/1130) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;- snap: optionally push all the built snaps on PRs to transfer.sh [\#1126](https://github.com/FreeRDP/Remmina/pull/1126) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;- Small English nit \(fullscreen\_on\_auto\) [\#1124](https://github.com/FreeRDP/Remmina/pull/1124) ([lnicola](https://github.com/lnicola))</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;- Fix german translation [\#1120](https://github.com/FreeRDP/Remmina/pull/1120) ([giox069](https://github.com/giox069))</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;## [v1.2.0-rcgit.18](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.18) (2017-02-13)</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.17...v1.2.0-rcgit.18)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;- No prompt information while another login using the same account [\#1114](https://github.com/FreeRDP/Remmina/pull/1114) ([nanxiongchao](https://github.com/nanxiongchao))</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;- snap: add CMake generated snapcraft.yaml and `make snap` [\#1102](https://github.com/FreeRDP/Remmina/pull/1102) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;**Fixed bugs:**</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;- </div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;full screen window placement with multiple monitors [\#124](https://github.com/FreeRDP/Remmina/issues/124)</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;**Closed issues:**</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;- Auto-Reconnect function [\#1099](https://github.com/FreeRDP/Remmina/issues/1099)</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;- RDP Plugin not found after Update [\#1094](https://github.com/FreeRDP/Remmina/issues/1094)</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;- Remmina-1.2.0-rcgit.17 build error [\#1090](https://github.com/FreeRDP/Remmina/issues/1090)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;- Remote Windows program crashes when accessed by Remmina RDP [\#1083](https://github.com/FreeRDP/Remmina/issues/1083)</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;- Crashing since upgraded to 1.2.0-rcgit-17 [\#1077](https://github.com/FreeRDP/Remmina/issues/1077)</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;- Remmina windows unmovable/unresizable [\#1073](https://github.com/FreeRDP/Remmina/issues/1073)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;- Russian translation fixes [\#1071](https://github.com/FreeRDP/Remmina/issues/1071)</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;- English fixes [\#1040](https://github.com/FreeRDP/Remmina/issues/1040)</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;- Compile failed on Archlinux [\#1012](https://github.com/FreeRDP/Remmina/issues/1012)</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;- RDP connections or whole Remmina are crashing regularly [\#778](https://github.com/FreeRDP/Remmina/issues/778)</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;- xfce4 applet gone? [\#609](https://github.com/FreeRDP/Remmina/issues/609)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;- Bad port stored into known\_hosts2 [\#604](https://github.com/FreeRDP/Remmina/issues/604)</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;- no puedo ver la impresora por remmnia [\#578](https://github.com/FreeRDP/Remmina/issues/578)</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;- Uzbek language support [\#560](https://github.com/FreeRDP/Remmina/issues/560)</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;- Getting message that VNC plugin is not installed even though it is [\#559](https://github.com/FreeRDP/Remmina/issues/559)</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;**Merged pull requests:**</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;- snap: use snapcraft 2.26 features [\#1115](https://github.com/FreeRDP/Remmina/pull/1115) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;- Keyboard capture fixes, \#1087 \#1096 \#1111 [\#1113](https://github.com/FreeRDP/Remmina/pull/1113) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;- Keyboard capture changes, \#1087 \#1096 \#1111 [\#1112](https://github.com/FreeRDP/Remmina/pull/1112) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;- travis: add parallel builds to build from debs and generate snap packages [\#1104](https://github.com/FreeRDP/Remmina/pull/1104) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;- GUI enhancements [\#1103](https://github.com/FreeRDP/Remmina/pull/1103) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;- Add descriptions for some freerdp exit status code [\#1101](https://github.com/FreeRDP/Remmina/pull/1101) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;- FindFREERDP.cmake: update library names to match upstream [\#1095](https://github.com/FreeRDP/Remmina/pull/1095) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;- Update fr.po [\#1089](https://github.com/FreeRDP/Remmina/pull/1089) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;- Fix english typos as per \#1040 [\#1088](https://github.com/FreeRDP/Remmina/pull/1088) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;- Make full screen in the same monitor where the connection window reside [\#1084](https://github.com/FreeRDP/Remmina/pull/1084) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;- Fix russian translations as per \#1070 [\#1072](https://github.com/FreeRDP/Remmina/pull/1072) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;## [v1.2.0-rcgit.17](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.17) (2016-12-22)</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.16...v1.2.0-rcgit.17)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;**Implemented enhancements:**</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;- Remove survey as too bloated. [\#1064](https://github.com/FreeRDP/Remmina/issues/1064)</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;- Cannot connect to neoma-bs RDP server [\#1056](https://github.com/FreeRDP/Remmina/issues/1056)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;- Import gateay values from rdp files - \#1056 [\#1068](https://github.com/FreeRDP/Remmina/pull/1068) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;- No debian/ubuntu distributions files included. [\#1062](https://github.com/FreeRDP/Remmina/pull/1062) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;- Fix fullscreen window position \(\#873\) [\#1060](https://github.com/FreeRDP/Remmina/pull/1060) ([spasche](https://github.com/spasche))</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;**Fixed bugs:**</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;- When &quot;Server&quot; GtkComboBox is selected, TAB key doesn&#39;t work [\#1049](https://github.com/FreeRDP/Remmina/issues/1049)</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;**Closed issues:**</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;- Advanced Settings for RDP connections [\#1043](https://github.com/FreeRDP/Remmina/issues/1043)</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;- error: ‘rdpGdi {aka struct rdp\_gdi}’ has no member named ‘bytesPerPixel’ [\#1028](https://github.com/FreeRDP/Remmina/issues/1028)</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;- Remmina crashes attempting VNC connection to Mac OS X Yosemite [\#517](https://github.com/FreeRDP/Remmina/issues/517)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;- Remmina can no longer recognize RDP authentication failure [\#507](https://github.com/FreeRDP/Remmina/issues/507)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;- SSH-Tunneled VNC connection randomly hangs [\#480](https://github.com/FreeRDP/Remmina/issues/480)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;- Long connection times when forwarding RDP connections through SSH [\#452](https://github.com/FreeRDP/Remmina/issues/452)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;- Issue with PPA mentioned in Wiki [\#439](https://github.com/FreeRDP/Remmina/issues/439)</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;- Remmina crashes copying from remoted computer and pasting into remoting one [\#411](https://github.com/FreeRDP/Remmina/issues/411)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;- font smoothing - some fonts are not smoothed [\#382](https://github.com/FreeRDP/Remmina/issues/382)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;- Remmina blocks and I have to disconnect every 20 minutes [\#332](https://github.com/FreeRDP/Remmina/issues/332)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;- Keyboard Mapping [\#261](https://github.com/FreeRDP/Remmina/issues/261)</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;- Remmina crash when running towards server with xrdp 0.7.0 [\#234](https://github.com/FreeRDP/Remmina/issues/234)</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;- Resolution of Client Viewport not functioning correct [\#205](https://github.com/FreeRDP/Remmina/issues/205)</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;**Merged pull requests:**</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;- Updated Russian translations [\#1070](https://github.com/FreeRDP/Remmina/pull/1070) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;- Libfreerdp updates [\#1067](https://github.com/FreeRDP/Remmina/pull/1067) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;- Removed survey to clean up the code - API CHANGE [\#1065](https://github.com/FreeRDP/Remmina/pull/1065) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;- Updated German translation [\#1063](https://github.com/FreeRDP/Remmina/pull/1063) ([theraser](https://github.com/theraser))</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;- When &#39;Server&#39; GtkComboBox is selected, TAB doesn&#39;t work [\#1050](https://github.com/FreeRDP/Remmina/pull/1050) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;- Customizable app name and locations [\#1046](https://github.com/FreeRDP/Remmina/pull/1046) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;- remmina.desktop: add Quit desktop action for Unity [\#1045](https://github.com/FreeRDP/Remmina/pull/1045) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;- Update Spanish Translation [\#1044](https://github.com/FreeRDP/Remmina/pull/1044) ([jgjimenez](https://github.com/jgjimenez))</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;- Update fr.po [\#1038](https://github.com/FreeRDP/Remmina/pull/1038) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;- Uzbek cyrillic: update translations [\#1037](https://github.com/FreeRDP/Remmina/pull/1037) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;## [v1.2.0-rcgit.16](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.16) (2016-10-31)</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.15...v1.2.0-rcgit.16)</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;**Implemented enhancements:**</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;- Add RDP scaling factor as implemented by FreeRDP [\#969](https://github.com/FreeRDP/Remmina/issues/969)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;- Please add man pages for remmina. [\#952](https://github.com/FreeRDP/Remmina/issues/952)</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;- Please support XDG base directory spec [\#818](https://github.com/FreeRDP/Remmina/issues/818)</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;- Auto-Highlight Quick Search Text Upon Each Remote Session Launch [\#544](https://github.com/FreeRDP/Remmina/issues/544)</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;- spice support [\#117](https://github.com/FreeRDP/Remmina/issues/117)</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;- CMAKE: fix GNUInstallDirs usage [\#1004](https://github.com/FreeRDP/Remmina/pull/1004) ([hasufell](https://github.com/hasufell))</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;- XDG base directory spec [\#1003](https://github.com/FreeRDP/Remmina/pull/1003) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;- When focus-in inside the quick search, select the whole text as per \#544 [\#1001](https://github.com/FreeRDP/Remmina/pull/1001) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;- spice: send a notification at the end of file transfers [\#994](https://github.com/FreeRDP/Remmina/pull/994) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;- spice: show progress of drag &amp; drop file transfers [\#993](https://github.com/FreeRDP/Remmina/pull/993) ([larchunix](https://github.com/larchunix))</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"> 426</span>&#160;**Fixed bugs:**</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;- SSH - Secure Shell Issue [\#936](https://github.com/FreeRDP/Remmina/issues/936)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;- Auto-highlighted &quot;Quick Connect&quot; connection name within new connection dialog copies the words &quot;Quick Connect&quot; into PRIMARY selection [\#263](https://github.com/FreeRDP/Remmina/issues/263)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;- can&#39;t connect to 2008r2 when set &quot;negotiation&quot; security mode [\#202](https://github.com/FreeRDP/Remmina/issues/202)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;- crash of remmina when terminal bell rings [\#163](https://github.com/FreeRDP/Remmina/issues/163)</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160;- Support for left-handed mouse [\#136](https://github.com/FreeRDP/Remmina/issues/136)</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;**Closed issues:**</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;- Segmentation error on Gnome Desktop with Wayland [\#1034](https://github.com/FreeRDP/Remmina/issues/1034)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;- untranslated lines missed [\#1029](https://github.com/FreeRDP/Remmina/issues/1029)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;- Security Issue? [\#1027](https://github.com/FreeRDP/Remmina/issues/1027)</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;- remmina fails to compile against freerdp [\#1015](https://github.com/FreeRDP/Remmina/issues/1015)</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;- VNC connection doesn&#39;t work if color is set to 256 colors \(8 bpp\) [\#989](https://github.com/FreeRDP/Remmina/issues/989)</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;- remmina.org down [\#988](https://github.com/FreeRDP/Remmina/issues/988)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;- Random remmina exits \(no crash, just plain close\) [\#978](https://github.com/FreeRDP/Remmina/issues/978)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;- spice plugin missing on Ubuntu PPA [\#958](https://github.com/FreeRDP/Remmina/issues/958)</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;- Arch Linux: Unable to load RDP plugin [\#931](https://github.com/FreeRDP/Remmina/issues/931)</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;- Not work Copy&amp;paste between Keepass2 and Remmina [\#900](https://github.com/FreeRDP/Remmina/issues/900)</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;- Can&#39;t connect to certain hosts after update [\#855](https://github.com/FreeRDP/Remmina/issues/855)</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;- Huge icons in toolbar in some desktop environments [\#826](https://github.com/FreeRDP/Remmina/issues/826)</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;- Regression in RDP plugin - no ipv6 support [\#528](https://github.com/FreeRDP/Remmina/issues/528)</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;- RDP on Custom Port [\#237](https://github.com/FreeRDP/Remmina/issues/237)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;- Provide a different icon for the tray icon [\#225](https://github.com/FreeRDP/Remmina/issues/225)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;- Segfault after login by rdp [\#200](https://github.com/FreeRDP/Remmina/issues/200)</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;- Remmina in Fullscreen does hide Panels on other unused monitors in gnome [\#188](https://github.com/FreeRDP/Remmina/issues/188)</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;- Regression: Connections scrolling dissapeared [\#185](https://github.com/FreeRDP/Remmina/issues/185)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;- Remmina Hangs/Stucks at second login to RD Server [\#179](https://github.com/FreeRDP/Remmina/issues/179)</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;- Cant see the Windows login screen while RDPing to a machine [\#174](https://github.com/FreeRDP/Remmina/issues/174)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;- LIBVNCSERVER\_WITH\_CLIENT\_TLS is never defined [\#173](https://github.com/FreeRDP/Remmina/issues/173)</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;- Cannot connect to VNC servers using IPv6 [\#170](https://github.com/FreeRDP/Remmina/issues/170)</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;- Connection window disappears when minimized [\#155](https://github.com/FreeRDP/Remmina/issues/155)</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;- build fails with -DWITH\_GETTEXT=OFF [\#142](https://github.com/FreeRDP/Remmina/issues/142)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;- remmina rdp session freeze or hide [\#137](https://github.com/FreeRDP/Remmina/issues/137)</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;- Cut &amp; Paste [\#106](https://github.com/FreeRDP/Remmina/issues/106)</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;- Vertical resolution of RDP host not being determined correctly [\#81](https://github.com/FreeRDP/Remmina/issues/81)</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;- Regression: In remmina 1.0 tray menu right click editing broken [\#61](https://github.com/FreeRDP/Remmina/issues/61)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;- do ssh server host key check with the NX plugin [\#18](https://github.com/FreeRDP/Remmina/issues/18)</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;**Merged pull requests:**</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;- Fixes workspace detection outside X11 backend. [\#1036](https://github.com/FreeRDP/Remmina/pull/1036) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;- Man Pages as per \#952 request [\#1033](https://github.com/FreeRDP/Remmina/pull/1033) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;- Updated Hungarian translation [\#1032](https://github.com/FreeRDP/Remmina/pull/1032) ([meskobalazs](https://github.com/meskobalazs))</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;- updated german translation [\#1031](https://github.com/FreeRDP/Remmina/pull/1031) ([morph027](https://github.com/morph027))</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;- New gettext strings, closes \#1029 [\#1030](https://github.com/FreeRDP/Remmina/pull/1030) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;- Improves focus in/out detection when keyboard is captured [\#1025](https://github.com/FreeRDP/Remmina/pull/1025) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;- Show information on upgrade libssh to 0.7.X [\#1017](https://github.com/FreeRDP/Remmina/pull/1017) ([e-alfred](https://github.com/e-alfred))</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;- Update French translation [\#1014](https://github.com/FreeRDP/Remmina/pull/1014) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;- Implementing RDP remote scaling and orientation [\#979](https://github.com/FreeRDP/Remmina/pull/979) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;- Grab focus without selecting text in the remmina file editor [\#976](https://github.com/FreeRDP/Remmina/pull/976) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;- make gettext \*really\* behave correctly [\#972](https://github.com/FreeRDP/Remmina/pull/972) ([diogocp](https://github.com/diogocp))</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;- Update name [\#971](https://github.com/FreeRDP/Remmina/pull/971) ([qwertos](https://github.com/qwertos))</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;## [v1.2.0-rcgit.15](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.15) (2016-08-17)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.14...v1.2.0-rcgit.15)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;- No dark tray icon [\#905](https://github.com/FreeRDP/Remmina/issues/905)</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;- Systray does not show the remmina applet icon in Plasma 5.7 - therefore no connect menu [\#944](https://github.com/FreeRDP/Remmina/issues/944)</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;**Closed issues:**</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;- Unicode copy leads to crash [\#967](https://github.com/FreeRDP/Remmina/issues/967)</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;- Remmina can no longer detect bad RDP credentials [\#960](https://github.com/FreeRDP/Remmina/issues/960)</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;- Import Plugin Dialog [\#954](https://github.com/FreeRDP/Remmina/issues/954)</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;- SSH does not try IPv4 after IPv6 fails \(when DNS has addresses for both\) [\#953](https://github.com/FreeRDP/Remmina/issues/953)</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;- RDP reconnect extra warning at the end [\#929](https://github.com/FreeRDP/Remmina/issues/929)</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;- Invisible Add-Button due to color [\#924](https://github.com/FreeRDP/Remmina/issues/924)</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;- View bug [\#920](https://github.com/FreeRDP/Remmina/issues/920)</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;- SSH - Blank Window After Upgrading Fedora 23 to 24 [\#913](https://github.com/FreeRDP/Remmina/issues/913)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;- Don&#39;t compile on FreeBSD [\#911](https://github.com/FreeRDP/Remmina/issues/911)</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;- missing remmina settings icon ubuntu 14.04 [\#906](https://github.com/FreeRDP/Remmina/issues/906)</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;- apt-get fresh install error on Ubuntu MATE 15.10 [\#903](https://github.com/FreeRDP/Remmina/issues/903)</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;- remmina-1.2 SSH support in Fedora-24beta totally broken [\#899](https://github.com/FreeRDP/Remmina/issues/899)</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;- Segmentation Fault on FreeBSD using SPICE [\#876](https://github.com/FreeRDP/Remmina/issues/876)</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;- Error when using clipboard sync wiht windows 2012R2 [\#821](https://github.com/FreeRDP/Remmina/issues/821)</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;- RDP Clipboard issue with 1.2.0-rcgit.10 [\#809](https://github.com/FreeRDP/Remmina/issues/809)</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;- FreeBSD - error: no member named &#39;sftp\_client\_confirm\_res ume&#39; in &#39;union remmina\_masterthread\_exec\_data [\#431](https://github.com/FreeRDP/Remmina/issues/431)</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;- Spice package and integrated debian packaging. [\#964](https://github.com/FreeRDP/Remmina/pull/964) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;- .travis.yml: Add a missing dependency [\#963](https://github.com/FreeRDP/Remmina/pull/963) ([dshcherb](https://github.com/dshcherb))</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;- spice: add support for tls encrypted connections [\#962](https://github.com/FreeRDP/Remmina/pull/962) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;- Update AUTHORS [\#959](https://github.com/FreeRDP/Remmina/pull/959) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;- Fix import label [\#957](https://github.com/FreeRDP/Remmina/pull/957) ([Justinzobel](https://github.com/Justinzobel))</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;- Updated Hungarian translation [\#949](https://github.com/FreeRDP/Remmina/pull/949) ([meskobalazs](https://github.com/meskobalazs))</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;- Add missing ClientFormatListResponse\(\) call in RDP plugin clipboard, … [\#948](https://github.com/FreeRDP/Remmina/pull/948) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;- RDP: allow disabling auto reconnection in .remmina file [\#947](https://github.com/FreeRDP/Remmina/pull/947) ([xhaakon](https://github.com/xhaakon))</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;- Embed docs [\#945](https://github.com/FreeRDP/Remmina/pull/945) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;- Allow disabling libsecret dependency [\#942](https://github.com/FreeRDP/Remmina/pull/942) ([diogocp](https://github.com/diogocp))</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;- add shortcuts to show remote desktop edges [\#940](https://github.com/FreeRDP/Remmina/pull/940) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;- Fix a possible crash when changing gtk\_tree\_model [\#928](https://github.com/FreeRDP/Remmina/pull/928) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;- Inverted tray icon for light theme [\#907](https://github.com/FreeRDP/Remmina/pull/907) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;## [v1.2.0-rcgit.14](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.14) (2016-06-15)</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.13...v1.2.0-rcgit.14)</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;- No more keyboard shortcuts for quick search [\#887](https://github.com/FreeRDP/Remmina/issues/887)</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;- Support opening rdp files [\#47](https://github.com/FreeRDP/Remmina/issues/47)</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;- Remmina closes even if I press &quot;No&quot; when it asks if I&#39;m sure [\#888](https://github.com/FreeRDP/Remmina/issues/888)</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;**Closed issues:**</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;- RemoteApp support [\#898](https://github.com/FreeRDP/Remmina/issues/898)</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;- I do not see the button &quot;Creane a new connection profile&quot; [\#897](https://github.com/FreeRDP/Remmina/issues/897)</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;- Error when compiling Remmina [\#848](https://github.com/FreeRDP/Remmina/issues/848)</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;- Adds monochrome tray icons [\#901](https://github.com/FreeRDP/Remmina/pull/901) ([wa4557](https://github.com/wa4557))</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;- Don&#39;t quit Remmina if the user denies closing the connection window [\#895](https://github.com/FreeRDP/Remmina/pull/895) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;- Adds support for themable panel icons [\#894](https://github.com/FreeRDP/Remmina/pull/894) ([wa4557](https://github.com/wa4557))</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;- added \n in the credits [\#893](https://github.com/FreeRDP/Remmina/pull/893) ([jgjimenez](https://github.com/jgjimenez))</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;## [1.2.0.rcgit.13](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.13) (2016-06-02)</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.12...1.2.0.rcgit.13)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;- RDP: Fix extended mouse event to register the click for forward/back buttons [\#638](https://github.com/FreeRDP/Remmina/issues/638)</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;- Remmina main fixes [\#891](https://github.com/FreeRDP/Remmina/pull/891) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;- Remmina Main Window Refactoring [\#875](https://github.com/FreeRDP/Remmina/pull/875) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;- \[remmina\_main\] Quick connect bar not visible [\#878](https://github.com/FreeRDP/Remmina/issues/878)</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;- Remmina doesn&#39;t support ssh-rsa hostkeys [\#647](https://github.com/FreeRDP/Remmina/issues/647)</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;- Toolbar buttons initially enabled in the main window [\#467](https://github.com/FreeRDP/Remmina/issues/467)</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;**Closed issues:**</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;- Remmina SPICE doesn&#39;t show the connections anymore [\#885](https://github.com/FreeRDP/Remmina/issues/885)</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;- Only access via Administrator account \(Raspbian -&gt; Windows 10\) [\#880](https://github.com/FreeRDP/Remmina/issues/880)</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;- rdp attempt from ubuntu xenial to win 10 [\#868](https://github.com/FreeRDP/Remmina/issues/868)</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;- Location of saved connections is wrong in Wiki [\#866](https://github.com/FreeRDP/Remmina/issues/866)</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;- compile remmina not working [\#771](https://github.com/FreeRDP/Remmina/issues/771)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;- Grayed buttons if no entry or if none selected [\#488](https://github.com/FreeRDP/Remmina/issues/488)</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;- Hide quick connect bar by default [\#421](https://github.com/FreeRDP/Remmina/issues/421)</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;- Can&#39;t execute the last GIT with GTK2 \(undefined symbol: gdk\_pixbuf\_get\_from\_surface\) [\#220](https://github.com/FreeRDP/Remmina/issues/220)</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;- Fix some memory leaks [\#890](https://github.com/FreeRDP/Remmina/pull/890) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;- Translations ready [\#889](https://github.com/FreeRDP/Remmina/pull/889) ([jgjimenez](https://github.com/jgjimenez))</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;- Translations [\#884](https://github.com/FreeRDP/Remmina/pull/884) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;- Spice plugin: smartcard redirection support [\#882](https://github.com/FreeRDP/Remmina/pull/882) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;- SPICE plugin: USB redirection support + minor fixes [\#881](https://github.com/FreeRDP/Remmina/pull/881) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;- Spice plugin: scaling support [\#879](https://github.com/FreeRDP/Remmina/pull/879) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;- SPICE plugin improvements \(again\) [\#877](https://github.com/FreeRDP/Remmina/pull/877) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;- More SPICE plugin improvements [\#874](https://github.com/FreeRDP/Remmina/pull/874) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;- SPICE plugin improvements [\#872](https://github.com/FreeRDP/Remmina/pull/872) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;- Initial support for Wayland and Mir [\#871](https://github.com/FreeRDP/Remmina/pull/871) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;- New plugin with basic support for the SPICE protocol [\#870](https://github.com/FreeRDP/Remmina/pull/870) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;## [1.2.0.rcgit.12](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.12) (2016-05-17)</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.11...1.2.0.rcgit.12)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;- \[Feature Request\] Focus on &#39;server&#39; box during &#39;New Connection&#39; [\#838](https://github.com/FreeRDP/Remmina/issues/838)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;- GTK 3.20 VTE3 Remmina shows blank terminal [\#835](https://github.com/FreeRDP/Remmina/issues/835)</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;- How do I select all text in SSH terminal session ? [\#833](https://github.com/FreeRDP/Remmina/issues/833)</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;- Add a issues-templates to the project [\#822](https://github.com/FreeRDP/Remmina/issues/822)</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;- Quick Find cleanups [\#791](https://github.com/FreeRDP/Remmina/issues/791)</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;- Remmina crashed when Windows Server TS Session is Remote Controlled [\#621](https://github.com/FreeRDP/Remmina/issues/621)</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;- Quickfind fixes - Close \#791 [\#811](https://github.com/FreeRDP/Remmina/pull/811) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;- 100% CPU Usage [\#842](https://github.com/FreeRDP/Remmina/issues/842)</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;- Screenshot crash under Ubuntu 16.04 [\#836](https://github.com/FreeRDP/Remmina/issues/836)</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;- Remmina main connection window loose it&#39;s minimum height when the toolbar is hidden [\#829](https://github.com/FreeRDP/Remmina/issues/829)</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;- Unable to connect to Win7 PCs via RDESKTOP with Remmina 1.2.0-rcgit.11 [\#823](https://github.com/FreeRDP/Remmina/issues/823)</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;- Problem with changing key assignment in the &quot;Keyboard&quot; tab \(rcgit.11\) [\#819](https://github.com/FreeRDP/Remmina/issues/819)</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;- Remmina forces its windows to appear at the center of the screen [\#817](https://github.com/FreeRDP/Remmina/issues/817)</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;- Quick Find cleanups [\#791](https://github.com/FreeRDP/Remmina/issues/791)</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;- Quickfind fixes - Close \\#791 [\#811](https://github.com/FreeRDP/Remmina/pull/811) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;**Closed issues:**</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;- Can&#39;t move tabs between windows [\#861](https://github.com/FreeRDP/Remmina/issues/861)</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;- Ctrl + c will not stop processes anymore \(SSH\) [\#858](https://github.com/FreeRDP/Remmina/issues/858)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;- Continual flicker due to redraw \(VNC from Windows to Ubuntu\) [\#857](https://github.com/FreeRDP/Remmina/issues/857)</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;- vim doesn&#39;t look well in fullscreen mode [\#856](https://github.com/FreeRDP/Remmina/issues/856)</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;- Quick find is slow with a lot of profiles [\#852](https://github.com/FreeRDP/Remmina/issues/852)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;- Cannot break from a command using CTRL + C since enhancement 833 was implemented [\#847](https://github.com/FreeRDP/Remmina/issues/847)</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;- Cannot redirect microphone to VDI- Win10 HyperV- Raspberry Pi3- Rasbian Jessie [\#846](https://github.com/FreeRDP/Remmina/issues/846)</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;- Drop libvte-2.90 support? [\#843](https://github.com/FreeRDP/Remmina/issues/843)</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;- Crashing after update [\#840](https://github.com/FreeRDP/Remmina/issues/840)</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;- Please make survey &amp; webkit-gtk dependency optional [\#812](https://github.com/FreeRDP/Remmina/issues/812)</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;- Japanese keyboard mapping [\#805](https://github.com/FreeRDP/Remmina/issues/805)</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;- Remmina crashes taking a screenshot [\#803](https://github.com/FreeRDP/Remmina/issues/803)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;- Remmina crash on start [\#800](https://github.com/FreeRDP/Remmina/issues/800)</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;- \\tsclient shares list blank files and folders [\#799](https://github.com/FreeRDP/Remmina/issues/799)</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;- Remmina Crashes [\#797](https://github.com/FreeRDP/Remmina/issues/797)</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;- Can&#39;t hear remote audio \(local\) [\#790](https://github.com/FreeRDP/Remmina/issues/790)</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;- RDP Connection fails, but only the first time [\#789](https://github.com/FreeRDP/Remmina/issues/789)</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;- Interface bug: edit window [\#491](https://github.com/FreeRDP/Remmina/issues/491)</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;- Fix a few typos in README.md [\#851](https://github.com/FreeRDP/Remmina/pull/851) ([ivuk](https://github.com/ivuk))</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;- Focus server box [\#845](https://github.com/FreeRDP/Remmina/pull/845) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;- Screenshot segfault [\#841](https://github.com/FreeRDP/Remmina/pull/841) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;- Vte improvements - popup menu and terminal selection [\#834](https://github.com/FreeRDP/Remmina/pull/834) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;- fix loadbalanceinfo in import [\#828](https://github.com/FreeRDP/Remmina/pull/828) ([koter84](https://github.com/koter84))</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;- WM hints and Window positioning [\#827](https://github.com/FreeRDP/Remmina/pull/827) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;- Added issue-template [\#825](https://github.com/FreeRDP/Remmina/pull/825) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;- Update Uzbek translation [\#824](https://github.com/FreeRDP/Remmina/pull/824) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;- Make survey &amp; webkit-gtk dependency optional [\#813](https://github.com/FreeRDP/Remmina/pull/813) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;- VNC - HandleRFBServerMessage return status [\#804](https://github.com/FreeRDP/Remmina/pull/804) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;## [1.2.0.rcgit.11](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.11) (2016-03-17)</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.10...1.2.0.rcgit.11)</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;- Scrollable profile editor [\#801](https://github.com/FreeRDP/Remmina/issues/801)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;- Screenshot of remote machine \[feature request\] [\#644](https://github.com/FreeRDP/Remmina/issues/644)</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;**Closed issues:**</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;- Remmina is unable to access saved passwords immediately after local PC logon [\#795](https://github.com/FreeRDP/Remmina/issues/795)</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;- 1.2.0-rcgit.10 \(git n/a\) vnc connector not installed [\#794](https://github.com/FreeRDP/Remmina/issues/794)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;- \[1.2.0-rcgit.9\] Unable to Compile in Centos 7 [\#793](https://github.com/FreeRDP/Remmina/issues/793)</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;- Remmina crash on having files or images in clipboard [\#792](https://github.com/FreeRDP/Remmina/issues/792)</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;- Connection search doesn&#39;t work [\#773](https://github.com/FreeRDP/Remmina/issues/773)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;- Remote machine screenshot \[feature request\] \#644 [\#802](https://github.com/FreeRDP/Remmina/pull/802) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;- Don&#39;t unlock keyring when libsecret is &lt; 0.18 [\#796](https://github.com/FreeRDP/Remmina/pull/796) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;## [1.2.0.rcgit.10](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.10) (2016-03-08)</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.9...1.2.0.rcgit.10)</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;- Selected item in the remmina\_main window is lost after editing a profile [\#786](https://github.com/FreeRDP/Remmina/issues/786)</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;- Clipboard + Windows 2008 Server R2 SP1 + Google Chrome [\#583](https://github.com/FreeRDP/Remmina/issues/583)</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;**Closed issues:**</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;- Is remmina between Ubuntu and Windows 10 secure? [\#782](https://github.com/FreeRDP/Remmina/issues/782)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;- Latest version of remmina segfaults when closing remmina&#39;s main windows while having an open connection [\#744](https://github.com/FreeRDP/Remmina/issues/744)</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;- Clipboard doesn&#39;t work [\#730](https://github.com/FreeRDP/Remmina/issues/730)</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;- Added ctrl+f to Quick Search to supersed the standard GTK accelerator [\#788](https://github.com/FreeRDP/Remmina/pull/788) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;- Selected item is lost after editing a profile. Closes \#786 [\#787](https://github.com/FreeRDP/Remmina/pull/787) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;- formats is not nulled upon failure [\#781](https://github.com/FreeRDP/Remmina/pull/781) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;- pos\_cache not nulled upon realloc failure [\#780](https://github.com/FreeRDP/Remmina/pull/780) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;- Freebsd support [\#779](https://github.com/FreeRDP/Remmina/pull/779) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;## [1.2.0-rcgit.9](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.9) (2016-02-28)</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.8...1.2.0-rcgit.9)</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;- Num lock off [\#389](https://github.com/FreeRDP/Remmina/issues/389)</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;**Closed issues:**</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;- Share some usage statistics dialog cannot be disabled!!! [\#772](https://github.com/FreeRDP/Remmina/issues/772)</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;- vnc plugin not found [\#768](https://github.com/FreeRDP/Remmina/issues/768)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;- Selected file after editing is wrong [\#761](https://github.com/FreeRDP/Remmina/issues/761)</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;- SSH cursor and scrolling / display issues [\#760](https://github.com/FreeRDP/Remmina/issues/760)</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;- NumLock in RDP sessions [\#758](https://github.com/FreeRDP/Remmina/issues/758)</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;- Buttons not shown inside RDP Advanced tab on smal screens [\#757](https://github.com/FreeRDP/Remmina/issues/757)</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;- Can&#39;t SSH tunnel over Remmina \(RDP\) [\#756](https://github.com/FreeRDP/Remmina/issues/756)</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;- Remmina closes unexpectedly [\#753](https://github.com/FreeRDP/Remmina/issues/753)</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;- Feature Request: After Command \(opposite to precommand\) [\#746](https://github.com/FreeRDP/Remmina/issues/746)</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;- mistake. [\#739](https://github.com/FreeRDP/Remmina/issues/739)</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;- Currently rdp\_event.c.o can not be built [\#732](https://github.com/FreeRDP/Remmina/issues/732)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;- Scrolled fullscreen mode does not work [\#729](https://github.com/FreeRDP/Remmina/issues/729)</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;- RDP session is dropped from time to time, reproducible situation. [\#723](https://github.com/FreeRDP/Remmina/issues/723)</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;- RDP plugin fails to load [\#721](https://github.com/FreeRDP/Remmina/issues/721)</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;- \[Info Req\] RDP v7 [\#719](https://github.com/FreeRDP/Remmina/issues/719)</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;- Suddenly fails to RDP to any server [\#717](https://github.com/FreeRDP/Remmina/issues/717)</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;- Constantly and often breaks the connection. It started about 1-2 months ago. [\#710](https://github.com/FreeRDP/Remmina/issues/710)</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;- No RDP connection after latest update Ubuntu [\#657](https://github.com/FreeRDP/Remmina/issues/657)</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;- Fullscreen windows open on the monitor next to them [\#580](https://github.com/FreeRDP/Remmina/issues/580)</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;- fullscreen multiple screens [\#577](https://github.com/FreeRDP/Remmina/issues/577)</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;- Missing controls tab from top/center of window in Gnome [\#481](https://github.com/FreeRDP/Remmina/issues/481)</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;- ALT + F4 closes Remina remote Window [\#125](https://github.com/FreeRDP/Remmina/issues/125)</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;- Autoreconnect [\#776](https://github.com/FreeRDP/Remmina/pull/776) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;- Fix for a black border \(GTK undershoot\) appering from GTK 3.18 [\#767](https://github.com/FreeRDP/Remmina/pull/767) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;- Using compact settings for RDP plugin closes Issue 757 [\#759](https://github.com/FreeRDP/Remmina/pull/759) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;- Fixes for issue \#744 [\#752](https://github.com/FreeRDP/Remmina/pull/752) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;- adjust lenght of strings [\#749](https://github.com/FreeRDP/Remmina/pull/749) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;- Feature Request: After Command \#746 [\#748](https://github.com/FreeRDP/Remmina/pull/748) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;- Fix compiler warnings [\#743](https://github.com/FreeRDP/Remmina/pull/743) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;- rdp-plugin requires x11 libraries [\#742](https://github.com/FreeRDP/Remmina/pull/742) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;- Match remmina\_survey\_start declarations [\#741](https://github.com/FreeRDP/Remmina/pull/741) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;- Exec if only when &quot;name&quot; has been initialized [\#740](https://github.com/FreeRDP/Remmina/pull/740) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;- XDG - make remmina user data dir global [\#738](https://github.com/FreeRDP/Remmina/pull/738) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;- Fixes for Ubuntu 14.04 compatibility [\#737](https://github.com/FreeRDP/Remmina/pull/737) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;- Make tool\_hello\_world compliant with our plugins model [\#735](https://github.com/FreeRDP/Remmina/pull/735) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;- Added user survey, community links and fixed all deprecations warnings [\#734](https://github.com/FreeRDP/Remmina/pull/734) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;- Align library name with latest freerdp master [\#731](https://github.com/FreeRDP/Remmina/pull/731) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;- Added microphone redirection [\#727](https://github.com/FreeRDP/Remmina/pull/727) ([akallabeth](https://github.com/akallabeth))</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;- RDP plugin update client main loop to new API [\#726](https://github.com/FreeRDP/Remmina/pull/726) ([akallabeth](https://github.com/akallabeth))</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;- Make Remmina really exit when you choose Exit or Quit [\#720](https://github.com/FreeRDP/Remmina/pull/720) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;- Remove some compiler warnings [\#716](https://github.com/FreeRDP/Remmina/pull/716) ([jviksell](https://github.com/jviksell))</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;## [1.2.0-rcgit.8](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.8) (2016-01-04)</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.7...1.2.0-rcgit.8)</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;**Closed issues:**</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;- tot remmina crashes when marking text in the client iff clipboard sync is disabled [\#695](https://github.com/FreeRDP/Remmina/issues/695)</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;- Fix a bunch of memleaks [\#712](https://github.com/FreeRDP/Remmina/pull/712) ([jviksell](https://github.com/jviksell))</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;## [1.2.0-rcgit.7](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.7) (2015-12-17)</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.6...1.2.0-rcgit.7)</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;- Icons not shown at the correct size in the main window&#39;s listview/treeview [\#701](https://github.com/FreeRDP/Remmina/issues/701)</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;- Reduce main window icons size fixes \#701 [\#702](https://github.com/FreeRDP/Remmina/pull/702) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;**Closed issues:**</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;- VNC window immediately closes after connection attempt [\#699](https://github.com/FreeRDP/Remmina/issues/699)</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;- Moved to markdown and updated text. [\#705](https://github.com/FreeRDP/Remmina/pull/705) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;- Vnc exit with 8bpp issue699 [\#704](https://github.com/FreeRDP/Remmina/pull/704) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;- Temporay fixes \#699 - Set default color depth to 15 \(high colors\) [\#703](https://github.com/FreeRDP/Remmina/pull/703) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;## [1.2.0-rcgit.6](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.6) (2015-12-10)</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.5...1.2.0-rcgit.6)</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;- Migrate from libgnome-keyring to libsecret [\#652](https://github.com/FreeRDP/Remmina/issues/652)</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;- Move ~/.remmina to a proper place \(follow XDG standards\) [\#197](https://github.com/FreeRDP/Remmina/issues/197)</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;- X2goplugin refactoring closes \#603 [\#655](https://github.com/FreeRDP/Remmina/pull/655) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;**Closed issues:**</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;- Remmina windows open behind other desktop windows [\#691](https://github.com/FreeRDP/Remmina/issues/691)</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;- Indicator menu gone? [\#688](https://github.com/FreeRDP/Remmina/issues/688)</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;- fatal error: gst/gstconfig.h: No such file or directory [\#678](https://github.com/FreeRDP/Remmina/issues/678)</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;- remmina in gnome wayland \_XInternAtom\(\): remmina killed by SIGSEGV [\#677](https://github.com/FreeRDP/Remmina/issues/677)</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;- remmina\_rdp\_cliprdr\_monitor\_ready\(\): remmina killed by SIGSEGV [\#676](https://github.com/FreeRDP/Remmina/issues/676)</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;- remmina\_rdp\_event\_release\_key\(\): remmina killed by SIGSEGV [\#675](https://github.com/FreeRDP/Remmina/issues/675)</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;- remmina: remmina\_rdp\_event\_update\_scale\_factor\(\): remmina killed by SIGSEGV [\#674](https://github.com/FreeRDP/Remmina/issues/674)</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;- remmina: ringbuffer\_destroy\(\): remmina killed by SIGSEGV [\#673](https://github.com/FreeRDP/Remmina/issues/673)</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;- remmina: remmina\_connection\_holder\_toolbar\_preferences\_popdown\(\): remmina killed by SIGSEGV [\#672](https://github.com/FreeRDP/Remmina/issues/672)</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;- remmina: \_g\_log\_abort\(\): remmina killed by SIGTRAP [\#671](https://github.com/FreeRDP/Remmina/issues/671)</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;- Concurrent remote desktop sessions on Win XP Pro [\#670](https://github.com/FreeRDP/Remmina/issues/670)</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;- Optimize screen space usage [\#661](https://github.com/FreeRDP/Remmina/issues/661)</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;- clipboard not synchonizing between RDP sessions and host [\#556](https://github.com/FreeRDP/Remmina/issues/556)</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;- FTBS 1.0.0 : ld - undefined reference to symbol &#39;g\_module\_symbol&#39; -- links.txt missing necessary libraries [\#182](https://github.com/FreeRDP/Remmina/issues/182)</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;- Avoiding conditional directives that break statements [\#698](https://github.com/FreeRDP/Remmina/pull/698) ([RomeroMalaquias](https://github.com/RomeroMalaquias))</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;- Fix memory leaks in RDP plugin, fix window width in remmina\_connection\_window [\#690](https://github.com/FreeRDP/Remmina/pull/690) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;- Disable wayland backend [\#680](https://github.com/FreeRDP/Remmina/pull/680) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;- Migrate from libgnome-keyring to libsecret \#652 - Inital import [\#653](https://github.com/FreeRDP/Remmina/pull/653) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;## [1.2.0-rcgit.5](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.5) (2015-11-02)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.4...1.2.0-rcgit.5)</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;- Feature request: Provide a way to disable parsing of .ssh/config [\#648](https://github.com/FreeRDP/Remmina/issues/648)</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;- Toolbar drag and drop, for issue \#661 [\#668](https://github.com/FreeRDP/Remmina/pull/668) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;**Closed issues:**</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;- rdp plugin does not load [\#667](https://github.com/FreeRDP/Remmina/issues/667)</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;- Remmina crashed with core dump while sharing RDP folder [\#659](https://github.com/FreeRDP/Remmina/issues/659)</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;- High DPI display scaling [\#654](https://github.com/FreeRDP/Remmina/issues/654)</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;- RDP Plugin Issue on Raspberry PI \(ARMv7\) [\#651](https://github.com/FreeRDP/Remmina/issues/651)</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;- Moving to an embedded version of FreeRDP [\#599](https://github.com/FreeRDP/Remmina/issues/599)</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;- please add support multi-hop ssh tunnels / read .ssh/config [\#302](https://github.com/FreeRDP/Remmina/issues/302)</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;- SSH Tunneling [\#96](https://github.com/FreeRDP/Remmina/issues/96)</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;- Feature Request: SSH Tunnel with no authentication [\#83](https://github.com/FreeRDP/Remmina/issues/83)</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;- Makes parsing of ~/.ssh/config optional closes \#648 [\#650](https://github.com/FreeRDP/Remmina/pull/650) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;## [v1.2.0-rcgit.4](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.4) (2015-09-23)</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.3...v1.2.0-rcgit.4)</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;- Remmina crashes using the Mir GTK backend [\#554](https://github.com/FreeRDP/Remmina/issues/554)</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;- Prior connections commands are executed in background [\#553](https://github.com/FreeRDP/Remmina/issues/553)</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;- Quick Search Textbox is Only 8 Characters Wide [\#547](https://github.com/FreeRDP/Remmina/issues/547)</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;- \[feature request\] agent forwarding with ssh! [\#395](https://github.com/FreeRDP/Remmina/issues/395)</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;- How about support XDG dir structure [\#129](https://github.com/FreeRDP/Remmina/issues/129)</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;- SSH and VTE imporvements [\#642](https://github.com/FreeRDP/Remmina/pull/642) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;- Gtk3 - Deprecation fixes [\#637](https://github.com/FreeRDP/Remmina/pull/637) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;- Prior connections commands are executed in background [\#553](https://github.com/FreeRDP/Remmina/issues/553)</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;- Remmina fullscreen is wrongly placed - not real fullscreen [\#525](https://github.com/FreeRDP/Remmina/issues/525)</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;- SSH not passing locale info [\#331](https://github.com/FreeRDP/Remmina/issues/331)</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;**Closed issues:**</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;- Remmina VS freerdp on 1.2.0 version [\#639](https://github.com/FreeRDP/Remmina/issues/639)</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;- Remmina does not connect to remote host by FQDN [\#632](https://github.com/FreeRDP/Remmina/issues/632)</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;- freeze when kvm setup finish [\#630](https://github.com/FreeRDP/Remmina/issues/630)</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;- Dependency problem on Ubuntu PPA remmina-next [\#629](https://github.com/FreeRDP/Remmina/issues/629)</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;- Remmina preferences are not being saved [\#627](https://github.com/FreeRDP/Remmina/issues/627)</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;- Redirection of audio to local fails [\#626](https://github.com/FreeRDP/Remmina/issues/626)</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;- RDP component not installed [\#620](https://github.com/FreeRDP/Remmina/issues/620)</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;- Wrong path in /usr/share/applications/remmina.desktop since version 1.1.1-1+766+next+201507170316~ubuntu14.04.1 [\#616](https://github.com/FreeRDP/Remmina/issues/616)</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;- Reverse layout switching doesn&#39;t work [\#605](https://github.com/FreeRDP/Remmina/issues/605)</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;- Cursor disappear and doesn&#39;t refresh in RDP [\#598](https://github.com/FreeRDP/Remmina/issues/598)</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;- support VNC on UNIX sockets [\#596](https://github.com/FreeRDP/Remmina/issues/596)</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;- Problem with RDP graphics [\#591](https://github.com/FreeRDP/Remmina/issues/591)</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;- Crash when using TortoiseGit over a remote Windows through Remmina [\#582](https://github.com/FreeRDP/Remmina/issues/582)</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;- Remmina 1.1.2 does not compile against FreeRDP 1.0.2 [\#579](https://github.com/FreeRDP/Remmina/issues/579)</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;- Sorting of hosts in notification pop-up area should not be case sensitive [\#574](https://github.com/FreeRDP/Remmina/issues/574)</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;- How to add custom keyboard layouts to RDP? [\#573](https://github.com/FreeRDP/Remmina/issues/573)</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;- provide Gnome 3 indicator [\#570](https://github.com/FreeRDP/Remmina/issues/570)</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;- New grouping mode: All-In-One [\#569](https://github.com/FreeRDP/Remmina/issues/569)</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;- Remmina nx won&#39;t connect with Ubuntu 15.04 [\#567](https://github.com/FreeRDP/Remmina/issues/567)</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;- Missing connection icons in tray menu [\#563](https://github.com/FreeRDP/Remmina/issues/563)</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;- undefined symbol: freerdp\_channels\_pop\_event in remmina-plugin-rdp.so [\#558](https://github.com/FreeRDP/Remmina/issues/558)</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;- Can&#39;t Sustain &quot;Scale and Fill client window&quot; Preference [\#557](https://github.com/FreeRDP/Remmina/issues/557)</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;- webbrowser support [\#551](https://github.com/FreeRDP/Remmina/issues/551)</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;- VNC connection crashes Remmina [\#546](https://github.com/FreeRDP/Remmina/issues/546)</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;- Remmina doesn&#39;t copy cells from libreoffice to WS2003R2 [\#541](https://github.com/FreeRDP/Remmina/issues/541)</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;- =net-misc/remmina-1.1.2 ssh quick connect always ask password, even if server don&#39;t support it [\#539](https://github.com/FreeRDP/Remmina/issues/539)</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;- Bring back Scaling WITHOUT respecting the remote destkop aspect ratio [\#537](https://github.com/FreeRDP/Remmina/issues/537)</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;- Remmina consistently crashes when I log out of an RDP Gateway session. [\#530](https://github.com/FreeRDP/Remmina/issues/530)</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;- remmina: gtk\_drag\_source\_info\_destroy\(\): remmina killed by SIGABRT [\#529](https://github.com/FreeRDP/Remmina/issues/529)</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;- Add ability to run an arbitrary command prior to connection. [\#520](https://github.com/FreeRDP/Remmina/issues/520)</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;- ssh key selection overwritten on edit [\#271](https://github.com/FreeRDP/Remmina/issues/271)</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;- VNC over SSH - Support for multiple keys for SSH authentication [\#256](https://github.com/FreeRDP/Remmina/issues/256)</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;- RDP: No caret on explorer address bar and white squares instead of small icons [\#251](https://github.com/FreeRDP/Remmina/issues/251)</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;- It does not move the text to scroll [\#208](https://github.com/FreeRDP/Remmina/issues/208)</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;- Crash in BitBlt\_SRCAND\_32bpp, BitBlt\_32bpp [\#186](https://github.com/FreeRDP/Remmina/issues/186)</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;- Can&#39;t attach to Windows console [\#177](https://github.com/FreeRDP/Remmina/issues/177)</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;- RDP disconnect from within Windows doesn&#39;t close session for 15-20 seconds [\#167](https://github.com/FreeRDP/Remmina/issues/167)</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;- No shared folder when connecting to console [\#161](https://github.com/FreeRDP/Remmina/issues/161)</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;- drive-client not copied/loaded properly [\#147](https://github.com/FreeRDP/Remmina/issues/147)</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;- Smartcard &amp; sound redirection error [\#121](https://github.com/FreeRDP/Remmina/issues/121)</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;- Possibility to enter a remote command in SSH when I use it for VNC [\#94](https://github.com/FreeRDP/Remmina/issues/94)</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;- openpty\(3\) support for Remmina [\#73](https://github.com/FreeRDP/Remmina/issues/73)</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;- libssh fixes - SSH\_OPTIONS\_LOG\_VERBOSITY [\#640](https://github.com/FreeRDP/Remmina/pull/640) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;- Updated AUTHORS list [\#636](https://github.com/FreeRDP/Remmina/pull/636) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;- Improve vnc rendering speed by using cairo surface directly [\#635](https://github.com/FreeRDP/Remmina/pull/635) ([mar-kolya](https://github.com/mar-kolya))</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;- CMake rules adjustments when compiling under linux [\#634](https://github.com/FreeRDP/Remmina/pull/634) ([fundawang](https://github.com/fundawang))</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;- Remove some legacy Xorg code, fixes \#554 [\#622](https://github.com/FreeRDP/Remmina/pull/622) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;- fix regression introduced by 190ea2f98ab0443b8a05f70c79e2af037f9fca94 [\#617](https://github.com/FreeRDP/Remmina/pull/617) ([zfil](https://github.com/zfil))</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;- remmina.desktop: Use full path to execute remmina [\#612](https://github.com/FreeRDP/Remmina/pull/612) ([lanoxx](https://github.com/lanoxx))</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;- remmina.desktop: Use full path to execute remmina [\#607](https://github.com/FreeRDP/Remmina/pull/607) ([lanoxx](https://github.com/lanoxx))</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;- Filling out LoadBalanceInfo in the RDP settings struct [\#593](https://github.com/FreeRDP/Remmina/pull/593) ([qwertos](https://github.com/qwertos))</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;- Exception when precommad in NULL. Reference \#591 [\#592](https://github.com/FreeRDP/Remmina/pull/592) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;- Xdg folders fixes \#129 \#197 [\#590](https://github.com/FreeRDP/Remmina/pull/590) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;- coredump when precommand is not quoted. Resolve \#520 [\#589](https://github.com/FreeRDP/Remmina/pull/589) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;- Support for ~/.ssh/config closes \#235 , libssh does not support most of the ssh options [\#588](https://github.com/FreeRDP/Remmina/pull/588) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;- Revert &quot;License update&quot; [\#587](https://github.com/FreeRDP/Remmina/pull/587) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;- Revert &quot;License update&quot; [\#586](https://github.com/FreeRDP/Remmina/pull/586) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;- Remmina freerdp subtree + fixes for FreeBSD [\#585](https://github.com/FreeRDP/Remmina/pull/585) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;- License update [\#581](https://github.com/FreeRDP/Remmina/pull/581) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;- Fix GTK+2 build failure [\#565](https://github.com/FreeRDP/Remmina/pull/565) ([heptalium](https://github.com/heptalium))</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;- Prior Connection Command [\#562](https://github.com/FreeRDP/Remmina/pull/562) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;- Update Uzbek translation [\#561](https://github.com/FreeRDP/Remmina/pull/561) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;- Update for GTK+2 port [\#555](https://github.com/FreeRDP/Remmina/pull/555) ([repzilon](https://github.com/repzilon))</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;## [v1.2.0-rcgit.3](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.3) (2015-04-14)</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.2...v1.2.0-rcgit.3)</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;- Show or hide the icons near the menu [\#504](https://github.com/FreeRDP/Remmina/issues/504)</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;- Show or hide the icons near the buttons [\#503](https://github.com/FreeRDP/Remmina/issues/503)</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;- Show or hide the icons near the buttons and the menus [\#505](https://github.com/FreeRDP/Remmina/pull/505) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;- Fixes FreeRDP/Remmina\#473 - Customize button in the connection editor should show the resolutions dialog [\#501](https://github.com/FreeRDP/Remmina/pull/501) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;- The quick search doesn&#39;t list the folders [\#497](https://github.com/FreeRDP/Remmina/pull/497) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;- Enable and disable buttons in the string list dialog [\#496](https://github.com/FreeRDP/Remmina/pull/496) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;- Added Ctrl+F accelerator for quick search entry [\#494](https://github.com/FreeRDP/Remmina/pull/494) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;- Removed the RemminaMain GType and used a static RemminaMain struct instead [\#461](https://github.com/FreeRDP/Remmina/pull/461) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;- Tab all connections [\#548](https://github.com/FreeRDP/Remmina/issues/548)</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;- Problem with shared folder on Windows Server 2012 [\#523](https://github.com/FreeRDP/Remmina/issues/523)</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;- Can&#39;t share a folder in KDE, due to Gtk issue [\#518](https://github.com/FreeRDP/Remmina/issues/518)</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;- Connection to all servers stopped working with last update of remmina-next PPA [\#506](https://github.com/FreeRDP/Remmina/issues/506)</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;- Unsupported properties on GTK 3.10 [\#486](https://github.com/FreeRDP/Remmina/issues/486)</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;- Buttons in the string list dialog [\#474](https://github.com/FreeRDP/Remmina/issues/474)</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;- Customize button in the connection editor should show the resolutions dialog [\#473](https://github.com/FreeRDP/Remmina/issues/473)</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;- The search shouldn&#39;t show every group in the list [\#471](https://github.com/FreeRDP/Remmina/issues/471)</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;- Enable the use of the menu key [\#470](https://github.com/FreeRDP/Remmina/issues/470)</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;- Connections list is not refreshed upon update or copy \(duplicate an existing connection\) [\#460](https://github.com/FreeRDP/Remmina/issues/460)</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;- Double-clicking a column header to sort list of saved connections actually attempts connection [\#250](https://github.com/FreeRDP/Remmina/issues/250)</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;- Fix small memory leaks and a NULL ptr dereference. [\#500](https://github.com/FreeRDP/Remmina/pull/500) ([KyleSanderson](https://github.com/KyleSanderson))</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;- Show the popup menu by pressing the menu key [\#495](https://github.com/FreeRDP/Remmina/pull/495) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;- Use the correct label for the font section [\#466](https://github.com/FreeRDP/Remmina/pull/466) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;**Closed issues:**</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;- Remmina main window can be opened multiple times [\#543](https://github.com/FreeRDP/Remmina/issues/543)</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;- =net-misc/remmina-1.1.2 Quick Connect should filter supported protocols similiarly with profile manager [\#540](https://github.com/FreeRDP/Remmina/issues/540)</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;- Remmina not showing entire desktop, Windows Remote Desktop Connection does. [\#534](https://github.com/FreeRDP/Remmina/issues/534)</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;- Copy and Paste between local and remote desktops failing in Ubuntu 15.04 [\#533](https://github.com/FreeRDP/Remmina/issues/533)</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;- Remmina does not report Host key Changed. [\#532](https://github.com/FreeRDP/Remmina/issues/532)</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;- compile with FreeRDP support failed on Funtoo Linux [\#526](https://github.com/FreeRDP/Remmina/issues/526)</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;- Exit VMWare Console via Remmina in 1.2.0 [\#522](https://github.com/FreeRDP/Remmina/issues/522)</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;- RDP Quality is not being stored [\#521](https://github.com/FreeRDP/Remmina/issues/521)</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;- Add the ability to place the floating toolbar on other sides of the screen [\#493](https://github.com/FreeRDP/Remmina/issues/493)</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;- Invisible toolbar in fullscreen mode grayed out [\#492](https://github.com/FreeRDP/Remmina/issues/492)</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;- Remarks to some setting&#39;s labels [\#489](https://github.com/FreeRDP/Remmina/issues/489)</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;- Open resolution list from connection editor [\#487](https://github.com/FreeRDP/Remmina/issues/487)</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;- Missing accelerators for search and quick connect entries [\#475](https://github.com/FreeRDP/Remmina/issues/475)</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;- Only one host key per domain name is allowed [\#465](https://github.com/FreeRDP/Remmina/issues/465)</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;- Latest changes causes compilation errors [\#464](https://github.com/FreeRDP/Remmina/issues/464)</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;- Host Name checking is erroneously case sensitive for RDP fingerprint [\#462](https://github.com/FreeRDP/Remmina/issues/462)</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;- Unable to connect &quot;protocol security negotiation failure&quot; [\#453](https://github.com/FreeRDP/Remmina/issues/453)</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;- Remmina crashes when using multiple RDP connections and closing one or more. [\#449](https://github.com/FreeRDP/Remmina/issues/449)</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;- Provide a way to send keys to the server connections [\#445](https://github.com/FreeRDP/Remmina/issues/445)</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;- Does \(or will\) Remmina support multi monitor RDP? [\#442](https://github.com/FreeRDP/Remmina/issues/442)</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;- xfreerdrp Crashes with segfault in find\_keyboard\_layout\_in\_xorg\_rules [\#441](https://github.com/FreeRDP/Remmina/issues/441)</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;- NX connection to freenx-client with custom key [\#436](https://github.com/FreeRDP/Remmina/issues/436)</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;- Unable to connect using \\server-name [\#435](https://github.com/FreeRDP/Remmina/issues/435)</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;- Regression: &quot;Unknown authentication scheme from VNC server: 18&quot; [\#433](https://github.com/FreeRDP/Remmina/issues/433)</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;- Copy file rdp [\#430](https://github.com/FreeRDP/Remmina/issues/430)</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;- Connection closes right away when trying to connect to Mac [\#427](https://github.com/FreeRDP/Remmina/issues/427)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;- RDP clipboard and shared folder issue [\#406](https://github.com/FreeRDP/Remmina/issues/406)</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;- Crush RDP connect when copy file into clipboard on RDP server and clipboard sync ON [\#401](https://github.com/FreeRDP/Remmina/issues/401)</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;- Compilation failed on ubuntu 14.04 and 14.10 [\#381](https://github.com/FreeRDP/Remmina/issues/381)</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;- vertical text issue with excel [\#345](https://github.com/FreeRDP/Remmina/issues/345)</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;- Failure refresh image [\#341](https://github.com/FreeRDP/Remmina/issues/341)</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;- Segfault in rf\_Pointer\_Free of rdp plugin [\#269](https://github.com/FreeRDP/Remmina/issues/269)</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;- Auto-fit stucks the window [\#257](https://github.com/FreeRDP/Remmina/issues/257)</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;- Remmina-plugins-rdp fails to compile correctly with the latest version of gcc &amp; freerdp [\#244](https://github.com/FreeRDP/Remmina/issues/244)</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;- Remmina has stopped showing shared folders [\#243](https://github.com/FreeRDP/Remmina/issues/243)</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;- Lost toolbar in keyboard captured mode [\#242](https://github.com/FreeRDP/Remmina/issues/242)</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;- Better user credentials management [\#229](https://github.com/FreeRDP/Remmina/issues/229)</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;- Command Line Arguments [\#227](https://github.com/FreeRDP/Remmina/issues/227)</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;- Copy paste clipboard does not work [\#207](https://github.com/FreeRDP/Remmina/issues/207)</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;- remmina not compiling on cent os 6.4 x64 [\#201](https://github.com/FreeRDP/Remmina/issues/201)</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;- sometimes gives black screen [\#198](https://github.com/FreeRDP/Remmina/issues/198)</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;- remmina remote desktop -- erratic partial display issue [\#181](https://github.com/FreeRDP/Remmina/issues/181)</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;- remmina incorrectly handles saved terminal size for ssh-connection [\#169](https://github.com/FreeRDP/Remmina/issues/169)</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;- net-misc/remmina-1.0.0\_p20121004 fails rsa-key auth on X11Forwarding-enabled OpenSSH server [\#168](https://github.com/FreeRDP/Remmina/issues/168)</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;- Remmina will not load RDP plugins [\#165](https://github.com/FreeRDP/Remmina/issues/165)</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;- cmake install prefix bug [\#160](https://github.com/FreeRDP/Remmina/issues/160)</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;- Graphical glitch with Total Commander and Remmina [\#157](https://github.com/FreeRDP/Remmina/issues/157)</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;- An Archer&#39;s tale - Unable to compile, compilation, followed by inability to path plugins. [\#152](https://github.com/FreeRDP/Remmina/issues/152)</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;- display off-center upon connection to RDP hosts [\#143](https://github.com/FreeRDP/Remmina/issues/143)</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;- RDP refresh/redraw problem [\#138](https://github.com/FreeRDP/Remmina/issues/138)</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;- Blank/black window contents when opening a new connection [\#127](https://github.com/FreeRDP/Remmina/issues/127)</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;- patch for launching external tools [\#126](https://github.com/FreeRDP/Remmina/issues/126)</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;- New connection type: VNC Reverse Connection [\#108](https://github.com/FreeRDP/Remmina/issues/108)</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;- Remote screen has wrong offset when using hide-toolbar [\#103](https://github.com/FreeRDP/Remmina/issues/103)</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;- Remmina Won&#39;t Maintain Multiple RDP Sessions at the Same Time [\#99](https://github.com/FreeRDP/Remmina/issues/99)</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;- Screen capture software crashes remmina client [\#98](https://github.com/FreeRDP/Remmina/issues/98)</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;- SSH terminal color customization [\#91](https://github.com/FreeRDP/Remmina/issues/91)</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;- \[Enhancement\] Start in background [\#85](https://github.com/FreeRDP/Remmina/issues/85)</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;- SSH Freeze [\#84](https://github.com/FreeRDP/Remmina/issues/84)</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;- Initial screen wonky opening VNC client [\#69](https://github.com/FreeRDP/Remmina/issues/69)</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;- Issues with viewport fullscreen [\#44](https://github.com/FreeRDP/Remmina/issues/44)</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;- make sessions in the NX session dialog double-clickable [\#16](https://github.com/FreeRDP/Remmina/issues/16)</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;- Added an option to execute commands just before to connect to a remote server closes \#520 [\#552](https://github.com/FreeRDP/Remmina/pull/552) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;- Uzbek Cyrillic: use proper naming convention for filename [\#549](https://github.com/FreeRDP/Remmina/pull/549) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;- Uzbek Cyrillic: Add configure keystrokes and XDMCP feature text [\#538](https://github.com/FreeRDP/Remmina/pull/538) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;- Remmina 1.2.0-rcgit.3: new floating toolbar for GTK&gt;=3.10 and many other fixes [\#536](https://github.com/FreeRDP/Remmina/pull/536) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;- Fix for notebook tab drag and drop, fixes issues \#529 \#478 [\#531](https://github.com/FreeRDP/Remmina/pull/531) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;- Fix race condition in VNC event queue [\#519](https://github.com/FreeRDP/Remmina/pull/519) ([mar-kolya](https://github.com/mar-kolya))</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;- Uzbek Cyrillic: apply latest additions [\#509](https://github.com/FreeRDP/Remmina/pull/509) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;- Implemented custom keystrokes for plugins [\#508](https://github.com/FreeRDP/Remmina/pull/508) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;- Add translations for Uzbek Cyrillic [\#502](https://github.com/FreeRDP/Remmina/pull/502) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;- Update Spanish translation [\#490](https://github.com/FreeRDP/Remmina/pull/490) ([fitojb](https://github.com/fitojb))</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;- Fixes FreeRDP/Remmina\#460 [\#463](https://github.com/FreeRDP/Remmina/pull/463) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;- Updated German translation [\#458](https://github.com/FreeRDP/Remmina/pull/458) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;- Update es.po [\#455](https://github.com/FreeRDP/Remmina/pull/455) ([agdg](https://github.com/agdg))</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;- Update es.po [\#454](https://github.com/FreeRDP/Remmina/pull/454) ([agdg](https://github.com/agdg))</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;- Updated FSF address [\#451](https://github.com/FreeRDP/Remmina/pull/451) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;- Rework of scaler code [\#447](https://github.com/FreeRDP/Remmina/pull/447) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;- Added feature to send Ctrl+Alt+Del keys [\#446](https://github.com/FreeRDP/Remmina/pull/446) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;- Moved the double click event and the enter buttons press in the row-activated signal handler [\#438](https://github.com/FreeRDP/Remmina/pull/438) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;- Handle double click on the NX session rows to activate the default response [\#437](https://github.com/FreeRDP/Remmina/pull/437) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;- SSH terminal color customization [\#432](https://github.com/FreeRDP/Remmina/pull/432) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;- remmina: Actually install its headers. [\#428](https://github.com/FreeRDP/Remmina/pull/428) ([rakuco](https://github.com/rakuco))</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;## [v1.2.0-rcgit.2](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.2) (2014-12-30)</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.2...v1.2.0-rcgit.2)</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;- Position of popup menu is wrong [\#423](https://github.com/FreeRDP/Remmina/issues/423)</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;- Remmina crashes exporting a remote desktop file [\#412](https://github.com/FreeRDP/Remmina/issues/412)</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;- \[BUG\] RDP Preferences don&#39;t saving [\#391](https://github.com/FreeRDP/Remmina/issues/391)</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;- Command line help not showing all the options [\#327](https://github.com/FreeRDP/Remmina/issues/327)</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;**Closed issues:**</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;- Remmina crashes after Ctrl+X in a RDP session [\#422](https://github.com/FreeRDP/Remmina/issues/422)</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;- Remmina Crashes During RDP Session when Context Menu Item Clicked [\#418](https://github.com/FreeRDP/Remmina/issues/418)</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;- Host key change not indicated in Remmina GUI [\#407](https://github.com/FreeRDP/Remmina/issues/407)</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;- Copy/paste inop Windows to Mint 17 [\#404](https://github.com/FreeRDP/Remmina/issues/404)</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;- remmina/src/remmina\_ssh\_plugin.h should also check for HAVE\_LIBVTE [\#394](https://github.com/FreeRDP/Remmina/issues/394)</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;- I have to click on &quot;Resize the window to fit remote resolution&quot; to see my RDP session. [\#387](https://github.com/FreeRDP/Remmina/issues/387)</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;- Please create an AppData file for Remmina [\#272](https://github.com/FreeRDP/Remmina/issues/272)</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;- &quot;Protocol plugin RDP is not installed.&quot;/The Application Not Recognizing the RDP Plugin [\#249](https://github.com/FreeRDP/Remmina/issues/249)</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;- &quot;Overwrite all&quot; button [\#238](https://github.com/FreeRDP/Remmina/issues/238)</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;- .po files cleanup and updates [\#425](https://github.com/FreeRDP/Remmina/pull/425) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;- Fixes the position of popup menu [\#424](https://github.com/FreeRDP/Remmina/pull/424) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;- Add a &quot;Overwrite all&quot; button [\#420](https://github.com/FreeRDP/Remmina/pull/420) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;- New AppData specification file [\#419](https://github.com/FreeRDP/Remmina/pull/419) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;- Expose the arguments in the help text and parse --help and -h arguments locally [\#417](https://github.com/FreeRDP/Remmina/pull/417) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;- Clipboard: improved handling of time consuming clipboard transfer [\#416](https://github.com/FreeRDP/Remmina/pull/416) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;- Clipboard fixes [\#415](https://github.com/FreeRDP/Remmina/pull/415) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;- Next [\#414](https://github.com/FreeRDP/Remmina/pull/414) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;- GTK3 fixes [\#409](https://github.com/FreeRDP/Remmina/pull/409) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;- GTK3 migration of remmina\_ftp\_client, fixes \#365 [\#408](https://github.com/FreeRDP/Remmina/pull/408) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;- Update Remmina GTK+2 branch to 1.1.2 [\#405](https://github.com/FreeRDP/Remmina/pull/405) ([repzilon](https://github.com/repzilon))</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;## [v1.1.2](https://github.com/FreeRDP/Remmina/tree/v1.1.2) (2014-12-08)</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.1-gtk2...v1.1.2)</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;- NX plugin broken [\#369](https://github.com/FreeRDP/Remmina/issues/369)</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;- XDMCP plugin broken [\#366](https://github.com/FreeRDP/Remmina/issues/366)</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;**Closed issues:**</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;- resize remote to fit window option [\#398](https://github.com/FreeRDP/Remmina/issues/398)</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;- Rename README to README.md [\#304](https://github.com/FreeRDP/Remmina/issues/304)</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;- Fix RDP race condifion, fixes \#394 \(missing HAVE\_LIBVTE\), removed unused function [\#399](https://github.com/FreeRDP/Remmina/pull/399) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;- Merge pull request \#396 from FreeRDP/issue366 [\#397](https://github.com/FreeRDP/Remmina/pull/397) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;- Issue \#366 [\#396](https://github.com/FreeRDP/Remmina/pull/396) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;## [v1.1.1-gtk2](https://github.com/FreeRDP/Remmina/tree/v1.1.1-gtk2) (2014-12-07)</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.1...v1.1.1-gtk2)</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;**Closed issues:**</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;- Password isn&#39;t saved [\#388](https://github.com/FreeRDP/Remmina/issues/388)</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;- undefined symbol: freerdp\_event\_new [\#379](https://github.com/FreeRDP/Remmina/issues/379)</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;- Compile failed [\#378](https://github.com/FreeRDP/Remmina/issues/378)</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;- Copy/Paste not working in 0.9.99.1 on Ubuntu 14.10 [\#377](https://github.com/FreeRDP/Remmina/issues/377)</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;- Crash when not accepting certificate for RDP server [\#375](https://github.com/FreeRDP/Remmina/issues/375)</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;- Can&#39;t get RDP to work in Remmina recently [\#374](https://github.com/FreeRDP/Remmina/issues/374)</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;- One IP, more RDP ports [\#373](https://github.com/FreeRDP/Remmina/issues/373)</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;- about box reports 1.1.0 rather than 1.1.1 [\#370](https://github.com/FreeRDP/Remmina/issues/370)</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;- Complete GTK3 migration [\#365](https://github.com/FreeRDP/Remmina/issues/365)</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;- Build failure with remmina-rdp\_cliprdr\_\* [\#363](https://github.com/FreeRDP/Remmina/issues/363)</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;- Key with code 95 si incorrectly mapped [\#361](https://github.com/FreeRDP/Remmina/issues/361)</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;- SSH connection not working: &quot;ssh\_userauth\_password: Wrong state during pending SSH call&quot; [\#305](https://github.com/FreeRDP/Remmina/issues/305)</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;- Remmina 1.1.2 [\#402](https://github.com/FreeRDP/Remmina/pull/402) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;- Varoius fixes [\#393](https://github.com/FreeRDP/Remmina/pull/393) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;- install external tools to datadir, not user&#39;s home dir [\#385](https://github.com/FreeRDP/Remmina/pull/385) ([eworm-de](https://github.com/eworm-de))</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;- Fix rdp\_cliprd for freerdp 1.2. Fixes \#378 \#379 [\#384](https://github.com/FreeRDP/Remmina/pull/384) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;- Update to work with vte 2.91 as well as 2.90 [\#372](https://github.com/FreeRDP/Remmina/pull/372) ([iainlane](https://github.com/iainlane))</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;- Update to work with vte 2.91 as well as 2.90 [\#371](https://github.com/FreeRDP/Remmina/pull/371) ([iainlane](https://github.com/iainlane))</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;- Added a Show quick connect menu item to show/hide the fast connection box [\#368](https://github.com/FreeRDP/Remmina/pull/368) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;- Fixed GTK3 issue [\#367](https://github.com/FreeRDP/Remmina/pull/367) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;- Rename relevant CB\_FORMAT to CF [\#364](https://github.com/FreeRDP/Remmina/pull/364) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;- Add printer and smartcard redirection, fix freerdp connection closing [\#359](https://github.com/FreeRDP/Remmina/pull/359) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;- Add printer and smartcard redirection, fix freerdp connection closing [\#358](https://github.com/FreeRDP/Remmina/pull/358) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;- Screenshots page with real screenshots! [\#355](https://github.com/FreeRDP/Remmina/pull/355) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;- Good News! [\#354](https://github.com/FreeRDP/Remmina/pull/354) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;## [v1.1.1](https://github.com/FreeRDP/Remmina/tree/v1.1.1) (2014-10-10)</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.1...v1.1.1)</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;- Share local printer doesn&#39;t work [\#324](https://github.com/FreeRDP/Remmina/issues/324)</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;- VNC plugin settings - scaler too small [\#316](https://github.com/FreeRDP/Remmina/issues/316)</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;- Protocol settings compact flag don&#39;t seem to be honored in the gtk3 branch [\#314](https://github.com/FreeRDP/Remmina/issues/314)</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;- gtk\_widget\_set\_opacity not supported by GTK 3.4.2 \(for Debian 7.0\) [\#299](https://github.com/FreeRDP/Remmina/issues/299)</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;- Clipboard Sync with RDP [\#280](https://github.com/FreeRDP/Remmina/issues/280)</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;- Terminal windows disappearing [\#274](https://github.com/FreeRDP/Remmina/issues/274)</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;- Remmina crash when trying to connect to remote VNC [\#252](https://github.com/FreeRDP/Remmina/issues/252)</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;- Fix segfault reported by issue \#1 \#280 \#131 \#135 \#199 \#270 [\#282](https://github.com/FreeRDP/Remmina/pull/282) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;**Closed issues:**</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;- Stucked shift key [\#90](https://github.com/FreeRDP/Remmina/issues/90)</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;- New branch &#39;next&#39; [\#313](https://github.com/FreeRDP/Remmina/issues/313)</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;- Laggy graphics with remmina [\#308](https://github.com/FreeRDP/Remmina/issues/308)</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;- does sound work for remmina RDP? [\#296](https://github.com/FreeRDP/Remmina/issues/296)</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;- Remmina install /usr/include/remmina/ empty [\#292](https://github.com/FreeRDP/Remmina/issues/292)</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;- Remmina freeze after system boots from suspend [\#284](https://github.com/FreeRDP/Remmina/issues/284)</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;- Sound connection not possible via RDP [\#281](https://github.com/FreeRDP/Remmina/issues/281)</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;- Blank window on connect - found whats causign it [\#273](https://github.com/FreeRDP/Remmina/issues/273)</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;- Shared folder on RDP does not work [\#270](https://github.com/FreeRDP/Remmina/issues/270)</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;- RDP connection cannot be established [\#248](https://github.com/FreeRDP/Remmina/issues/248)</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;- Fix debian bug 764142 [\#353](https://github.com/FreeRDP/Remmina/pull/353) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;- Internationalization fixes [\#320](https://github.com/FreeRDP/Remmina/pull/320) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;- Merge antenore:master with FreeRDP:gtk3 - GTK3 migration - File editor [\#311](https://github.com/FreeRDP/Remmina/pull/311) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;- Help GNOME SHELL to not hide the floating toolbar [\#309](https://github.com/FreeRDP/Remmina/pull/309) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;- Enabled sound \(fixes \#296 \#281\) and improved disconnection detection. [\#297](https://github.com/FreeRDP/Remmina/pull/297) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;- Corrections to keyboard grab/ungrab. Fixes \#245 [\#295](https://github.com/FreeRDP/Remmina/pull/295) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;- Fixes for clipboard issues [\#294](https://github.com/FreeRDP/Remmina/pull/294) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;- Fix GTK2 compatibility [\#293](https://github.com/FreeRDP/Remmina/pull/293) ([amon-sha](https://github.com/amon-sha))</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;- Indentation fix [\#290](https://github.com/FreeRDP/Remmina/pull/290) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;- Fix \#288 \#143 and deprecated gtk\_widget\_reparent\(\) [\#289](https://github.com/FreeRDP/Remmina/pull/289) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;- Issue \#286 - License OpenSSL linking exception [\#287](https://github.com/FreeRDP/Remmina/pull/287) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;- GTK+ 2 compatibility [\#276](https://github.com/FreeRDP/Remmina/pull/276) ([repzilon](https://github.com/repzilon))</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;- Fix issue with invisible toolbar in fullscreen. [\#275](https://github.com/FreeRDP/Remmina/pull/275) ([jeebsorg](https://github.com/jeebsorg))</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;- Fix for issue \#251 [\#253](https://github.com/FreeRDP/Remmina/pull/253) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;## [v1.2.0-rcgit.1](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.1) (2014-10-08)</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.0...v1.2.0-rcgit.1)</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;**Closed issues:**</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;- undefined symbol: freerdp\_channels\_global\_init in remmina-plugin-rdp.so [\#278](https://github.com/FreeRDP/Remmina/issues/278)</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;- Fix issue \#90 and website URL [\#352](https://github.com/FreeRDP/Remmina/pull/352) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;- Fix issue \#90 and various updates [\#351](https://github.com/FreeRDP/Remmina/pull/351) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;- Updated menu links [\#350](https://github.com/FreeRDP/Remmina/pull/350) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;- Update links [\#349](https://github.com/FreeRDP/Remmina/pull/349) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;- Changed links [\#348](https://github.com/FreeRDP/Remmina/pull/348) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;- Remove call to freerdp\_get\_last\_error [\#346](https://github.com/FreeRDP/Remmina/pull/346) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;## [v1.1.0](https://github.com/FreeRDP/Remmina/tree/v1.1.0) (2014-10-03)</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.0.0...v1.1.0)</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;- Black or white window when RDP connects at 32bpp [\#329](https://github.com/FreeRDP/Remmina/issues/329)</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;- Remmina RDP does not disconnect when closing the client window or tab [\#288](https://github.com/FreeRDP/Remmina/issues/288)</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;- Super/windows keypresses always present [\#7](https://github.com/FreeRDP/Remmina/issues/7)</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;**Closed issues:**</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;- Protocol plug-in RDP is not installed. [\#337](https://github.com/FreeRDP/Remmina/issues/337)</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;- FreeRDP / Remmina - is this a fork? [\#325](https://github.com/FreeRDP/Remmina/issues/325)</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;- RDP configuration tab garbled in GTK3 branch. [\#319](https://github.com/FreeRDP/Remmina/issues/319)</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;- Remmina hangs and doesn&#39;t let to switch to another program [\#310](https://github.com/FreeRDP/Remmina/issues/310)</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;- VNC plugin not available in Remmnia [\#307](https://github.com/FreeRDP/Remmina/issues/307)</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;- Identityfile not loaded properly [\#306](https://github.com/FreeRDP/Remmina/issues/306)</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;- Second Monitor in Portrait mode breaks dropdown. [\#298](https://github.com/FreeRDP/Remmina/issues/298)</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;- OpenSSL linking exception? [\#286](https://github.com/FreeRDP/Remmina/issues/286)</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;- Please tag 1.2.0-beta1 [\#285](https://github.com/FreeRDP/Remmina/issues/285)</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;- Remmina Remote Desktop Client doesn&#39;t save Quality option changes [\#283](https://github.com/FreeRDP/Remmina/issues/283)</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;- Cannot compile on Fedora 20 [\#277](https://github.com/FreeRDP/Remmina/issues/277)</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;- Cannot install Remmina [\#266](https://github.com/FreeRDP/Remmina/issues/266)</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;- Crash while trying to connect using iFreeRDP for iPad App. [\#264](https://github.com/FreeRDP/Remmina/issues/264)</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;- Public key should not be separately required for SSH PK authentication [\#262](https://github.com/FreeRDP/Remmina/issues/262)</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;- NX Session: Unresponsive to mouse input, window does not focus. [\#258](https://github.com/FreeRDP/Remmina/issues/258)</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;- GUI omits basic error information [\#247](https://github.com/FreeRDP/Remmina/issues/247)</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;- Super/ Windows key not grabbed [\#245](https://github.com/FreeRDP/Remmina/issues/245)</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;- Remmina fails to compile against latest freerdp on github [\#228](https://github.com/FreeRDP/Remmina/issues/228)</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;- Cannot connect to RDP over SSH to multiple hosts [\#223](https://github.com/FreeRDP/Remmina/issues/223)</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;- Bring Japanese translation from Ubuntu [\#216](https://github.com/FreeRDP/Remmina/issues/216)</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;- Bad colors on Ubuntu 13.04 [\#212](https://github.com/FreeRDP/Remmina/issues/212)</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;- Crash redirected folder / printer. [\#199](https://github.com/FreeRDP/Remmina/issues/199)</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;- FREERDP\_CLIENT\_LIBRARY, FREERDP\_LOCALE\_LIBRARY is not found [\#193](https://github.com/FreeRDP/Remmina/issues/193)</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;- Compile error building remmina-plugin-rdp [\#189](https://github.com/FreeRDP/Remmina/issues/189)</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;- error: unknown type name &#39;RDP\_EVENT&#39; when compiled against current freerdp [\#187](https://github.com/FreeRDP/Remmina/issues/187)</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;- Warinig unimplemented brush style:2 and Beyond Compare in Win7 x64 [\#184](https://github.com/FreeRDP/Remmina/issues/184)</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;- Remmina crashes \(BSOD\) Windows NT 4 Terminal Server [\#183](https://github.com/FreeRDP/Remmina/issues/183)</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;- problems compiling [\#180](https://github.com/FreeRDP/Remmina/issues/180)</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;- SSH Problem to older linux servers. [\#175](https://github.com/FreeRDP/Remmina/issues/175)</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;- external\_tools directory should not be installed [\#171](https://github.com/FreeRDP/Remmina/issues/171)</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;- Unable to compile against current freerdp [\#159](https://github.com/FreeRDP/Remmina/issues/159)</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;- d5yt6guyhukijlkolpk;\[&#39;g [\#156](https://github.com/FreeRDP/Remmina/issues/156)</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;- Remmina full screen closes unexpectedly in a dual monitor setup [\#154](https://github.com/FreeRDP/Remmina/issues/154)</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;- Numeric keyboard doesn&#39;t sync [\#153](https://github.com/FreeRDP/Remmina/issues/153)</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;- ERRINFO\_DECRYPT\_FAILED and Invalid pointer gdi\_get\_bitmap\_pointer [\#151](https://github.com/FreeRDP/Remmina/issues/151)</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;- Segmentation fault when using Sessionbrooker and DNS round robin [\#150](https://github.com/FreeRDP/Remmina/issues/150)</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;- Failed to compile 2 [\#144](https://github.com/FreeRDP/Remmina/issues/144)</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;- Fails to compile [\#141](https://github.com/FreeRDP/Remmina/issues/141)</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;- Segfault connecting RDP [\#135](https://github.com/FreeRDP/Remmina/issues/135)</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;- RDP Plugin Not Found Linux Mint 14 [\#134](https://github.com/FreeRDP/Remmina/issues/134)</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;- icon fail to compile [\#133](https://github.com/FreeRDP/Remmina/issues/133)</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;- segfault on ubuntu 12.04 [\#131](https://github.com/FreeRDP/Remmina/issues/131)</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;- Segfault connecting RDP via SSH: invalid glyph / invalid brush \(0 bpp\) [\#130](https://github.com/FreeRDP/Remmina/issues/130)</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;- Saved Passwords Fail to Authenticate when .remmina Config is Symlinked [\#128](https://github.com/FreeRDP/Remmina/issues/128)</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;- can&#39;t compile, FREERDP\_CHANNELS\_LIBRARY not found [\#123](https://github.com/FreeRDP/Remmina/issues/123)</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;- The latest checkout fails to cmake --build=build . on ubuntu 12.10 [\#122](https://github.com/FreeRDP/Remmina/issues/122)</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;- avahi underlinking [\#120](https://github.com/FreeRDP/Remmina/issues/120)</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;- Compatibility with newest FreeRDP [\#119](https://github.com/FreeRDP/Remmina/issues/119)</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;- No visual indication of active tab [\#118](https://github.com/FreeRDP/Remmina/issues/118)</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;- Black Blocks and blocks misplaced [\#116](https://github.com/FreeRDP/Remmina/issues/116)</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;- avahi support not actually compiled in [\#113](https://github.com/FreeRDP/Remmina/issues/113)</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;- RDP session shows only white colors [\#111](https://github.com/FreeRDP/Remmina/issues/111)</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;- problems typing @ via RDP using pt-latin keyboard [\#110](https://github.com/FreeRDP/Remmina/issues/110)</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;- &quot;Main Window&quot; interface unusable \(odd toolbar, connection rendering\) [\#109](https://github.com/FreeRDP/Remmina/issues/109)</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;- remmina crash after rdp connection [\#107](https://github.com/FreeRDP/Remmina/issues/107)</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;- Wrong colours when connecting to a sunray terminal [\#102](https://github.com/FreeRDP/Remmina/issues/102)</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;- Add Chinese \(Taiwan\) translation [\#101](https://github.com/FreeRDP/Remmina/issues/101)</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;- Uses host cursors [\#100](https://github.com/FreeRDP/Remmina/issues/100)</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;- remmina new feature info [\#97](https://github.com/FreeRDP/Remmina/issues/97)</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;- Clipboard Sync from Mac OS X to Ubuntu over VNC Not Working [\#93](https://github.com/FreeRDP/Remmina/issues/93)</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;- SSH public key authentication failed: Public key file doesn&#39;t exist [\#92](https://github.com/FreeRDP/Remmina/issues/92)</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;- Remmina and numeric pad status [\#89](https://github.com/FreeRDP/Remmina/issues/89)</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;- Remmina disappears after minimizing, going fullscreen, or opening a 2nd window [\#87](https://github.com/FreeRDP/Remmina/issues/87)</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;- Timezone redirection not properly supported [\#80](https://github.com/FreeRDP/Remmina/issues/80)</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;- Wonky RDP display [\#79](https://github.com/FreeRDP/Remmina/issues/79)</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;- Unable to connect to RDP server XXX.XXX.XXX.XXX [\#78](https://github.com/FreeRDP/Remmina/issues/78)</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;- Remmina freezes when disconnecting vnc session with ssh tunnel [\#77](https://github.com/FreeRDP/Remmina/issues/77)</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;- Tray icon autostart option disappeared in 1.0 [\#76](https://github.com/FreeRDP/Remmina/issues/76)</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;- Unknown authentication scheme from VNC server: 5 [\#75](https://github.com/FreeRDP/Remmina/issues/75)</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;- Error Building Latest on Fedora 16 [\#74](https://github.com/FreeRDP/Remmina/issues/74)</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;- wake on lan [\#72](https://github.com/FreeRDP/Remmina/issues/72)</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;- Add &quot;Download for Ubuntu button&quot; on the website [\#71](https://github.com/FreeRDP/Remmina/issues/71)</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;- Specify GLIB requirements [\#70](https://github.com/FreeRDP/Remmina/issues/70)</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;- Can not RDP connect if host key has changed [\#68](https://github.com/FreeRDP/Remmina/issues/68)</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;- remmina/xfreerdp crashes while trying to use &#39;remote control&#39; [\#66](https://github.com/FreeRDP/Remmina/issues/66)</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;- Resize Window to Fit in Remote Resolution Broken [\#63](https://github.com/FreeRDP/Remmina/issues/63)</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;- OpenBSD OpenSSH &amp; SSH\_AUTH\_METHOD\_INTERACTIVE [\#59](https://github.com/FreeRDP/Remmina/issues/59)</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;- Crashes on launch on 12.04 [\#57](https://github.com/FreeRDP/Remmina/issues/57)</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;- CMake Error at CMakeLists.txt:96 \(find\_suggested\_package\): Unknown CMake command &quot;find\_suggested\_package&quot;. [\#55](https://github.com/FreeRDP/Remmina/issues/55)</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;- Remmina/FreeRDP \(both v1.x\) - protocol security negotiation failure \(to any Windows host\) [\#54](https://github.com/FreeRDP/Remmina/issues/54)</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;- patch for support building with gtk-2.22 [\#46](https://github.com/FreeRDP/Remmina/issues/46)</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;- numlock setting is not exported [\#45](https://github.com/FreeRDP/Remmina/issues/45)</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;- use Enter key to open connection, not only Doubleclick [\#43](https://github.com/FreeRDP/Remmina/issues/43)</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;- FindGnuTLS.cmake with cmake 2.6 [\#42](https://github.com/FreeRDP/Remmina/issues/42)</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;- SSH connection with transparent background support [\#41](https://github.com/FreeRDP/Remmina/issues/41)</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;- Help&gt;About version is out of date [\#35](https://github.com/FreeRDP/Remmina/issues/35)</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;- Build error with -DWITH\_GETTEXT=OFF option [\#23](https://github.com/FreeRDP/Remmina/issues/23)</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;- .desktop.in file is no longer handled [\#21](https://github.com/FreeRDP/Remmina/issues/21)</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;- don&#39;t forget about the old bugs at SF.net [\#19](https://github.com/FreeRDP/Remmina/issues/19)</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;- Don&#39;t use convenience copy of libvncserver [\#15](https://github.com/FreeRDP/Remmina/issues/15)</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;- Start minimized to systray [\#14](https://github.com/FreeRDP/Remmina/issues/14)</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;- Clipboard redirect is not working. [\#13](https://github.com/FreeRDP/Remmina/issues/13)</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;- Accelerator is the same for &quot;Cancel&quot; and &quot;Connect&quot; [\#12](https://github.com/FreeRDP/Remmina/issues/12)</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;- linker problem [\#9](https://github.com/FreeRDP/Remmina/issues/9)</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;- rdp plugin crashes [\#1](https://github.com/FreeRDP/Remmina/issues/1)</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;- Frdp 1.1 [\#344](https://github.com/FreeRDP/Remmina/pull/344) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;- Fixes for latest FreeRDP [\#343](https://github.com/FreeRDP/Remmina/pull/343) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;- GTK3 migration - about [\#339](https://github.com/FreeRDP/Remmina/pull/339) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;- GTK3 migration + gix069 fixes [\#338](https://github.com/FreeRDP/Remmina/pull/338) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;- Added more translations from launchpad, fixes \#216 [\#336](https://github.com/FreeRDP/Remmina/pull/336) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;- Make 8bpp and 32bpp working again. Fixes \#329 [\#334](https://github.com/FreeRDP/Remmina/pull/334) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;- Fix compilation issues with latest FreeRDP [\#333](https://github.com/FreeRDP/Remmina/pull/333) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;- Various SSH fixes, fixes \#262 and \#223 [\#330](https://github.com/FreeRDP/Remmina/pull/330) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;- Fix missing extended keycode and &#39;up&#39; action when releasing all keys [\#328](https://github.com/FreeRDP/Remmina/pull/328) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;- Fix compilation problems with latest version of FreeRDP/FreeRDP master [\#326](https://github.com/FreeRDP/Remmina/pull/326) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;- GTK3 migration - preferences dialog upggraded to Grid Layout [\#322](https://github.com/FreeRDP/Remmina/pull/322) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;- GTK3 Migration - Move from GtkTable to GtkGrid - Chat window and auth dialogs [\#321](https://github.com/FreeRDP/Remmina/pull/321) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;- gtk\_widget\_set\_margin\_end too new as reported in \#commitcomment-7689638 [\#318](https://github.com/FreeRDP/Remmina/pull/318) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;- Scaler layout improvement - gtk\_widget\_set\_margin\_end [\#317](https://github.com/FreeRDP/Remmina/pull/317) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;- Should fix issue \#314 and other related problems [\#315](https://github.com/FreeRDP/Remmina/pull/315) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;- Fixes for ssh, floating toolbar and version number change [\#312](https://github.com/FreeRDP/Remmina/pull/312) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;- ssh, minimize to tray and file sharing fixes [\#303](https://github.com/FreeRDP/Remmina/pull/303) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;- Minor fixes to floating toolbar [\#301](https://github.com/FreeRDP/Remmina/pull/301) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;- GTK+ &lt; 3.8 compatibility, fixes \#299 [\#300](https://github.com/FreeRDP/Remmina/pull/300) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;- Added one-liner apt-get to install all dependencies, for the lazy people [\#240](https://github.com/FreeRDP/Remmina/pull/240) ([Photonios](https://github.com/Photonios))</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;- Typo in preference name broke key mapping in VNC [\#236](https://github.com/FreeRDP/Remmina/pull/236) ([nopdotcom](https://github.com/nopdotcom))</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;- fixes \#193: Instructions for compiling against master FreeRDP [\#231](https://github.com/FreeRDP/Remmina/pull/231) ([krlmlr](https://github.com/krlmlr))</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;- rename context\_size to ContextSize to match changes in FreeRDP [\#215](https://github.com/FreeRDP/Remmina/pull/215) ([benkohler](https://github.com/benkohler))</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;- Finish replacing the old stream macros [\#206](https://github.com/FreeRDP/Remmina/pull/206) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;- Fix compilation against freerdp master [\#191](https://github.com/FreeRDP/Remmina/pull/191) ([darklajid](https://github.com/darklajid))</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;- Remove call to rfx\_context\_set\_cpu\_opt, which was removed from FreeRDP [\#172](https://github.com/FreeRDP/Remmina/pull/172) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;- DWORD is the replacement for RDP\_SCANCODE [\#166](https://github.com/FreeRDP/Remmina/pull/166) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;- Do not define any SONAME for the plugins [\#149](https://github.com/FreeRDP/Remmina/pull/149) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;- external tools [\#132](https://github.com/FreeRDP/Remmina/pull/132) ([loki36](https://github.com/loki36))</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;- Couple of packaging fixes [\#114](https://github.com/FreeRDP/Remmina/pull/114) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;- Some improvements [\#105](https://github.com/FreeRDP/Remmina/pull/105) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;- Multiple fixes + Quickconnect [\#95](https://github.com/FreeRDP/Remmina/pull/95) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;- Porting to Cairo and some bugfixes/new features [\#67](https://github.com/FreeRDP/Remmina/pull/67) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;- GTK2 compatibility [\#65](https://github.com/FreeRDP/Remmina/pull/65) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;- A couple of build fixes [\#64](https://github.com/FreeRDP/Remmina/pull/64) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;- last clipboard commits [\#62](https://github.com/FreeRDP/Remmina/pull/62) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;- Some more clipboard fixes [\#60](https://github.com/FreeRDP/Remmina/pull/60) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;- Patches [\#58](https://github.com/FreeRDP/Remmina/pull/58) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;- Clipboard support [\#56](https://github.com/FreeRDP/Remmina/pull/56) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;- Some fixes [\#53](https://github.com/FreeRDP/Remmina/pull/53) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;- Fix all deprecated function calls [\#52](https://github.com/FreeRDP/Remmina/pull/52) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;- Fixes compiling on ubuntu [\#51](https://github.com/FreeRDP/Remmina/pull/51) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;- Fix for scrolling in Remmina [\#50](https://github.com/FreeRDP/Remmina/pull/50) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;- Fix app indicator when using custom install prefix [\#48](https://github.com/FreeRDP/Remmina/pull/48) ([rawlinc](https://github.com/rawlinc))</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;- Issue \#9 [\#39](https://github.com/FreeRDP/Remmina/pull/39) ([Gankov](https://github.com/Gankov))</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;- bump version to 1.0.0. fixed \#35 [\#38](https://github.com/FreeRDP/Remmina/pull/38) ([chihchun](https://github.com/chihchun))</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;- Fixed missing system pointer update skeletons. [\#37](https://github.com/FreeRDP/Remmina/pull/37) ([chihchun](https://github.com/chihchun))</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;- Add an option to remmina to redirect smartcard over rdp [\#36](https://github.com/FreeRDP/Remmina/pull/36) ([absmall](https://github.com/absmall))</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;- Corrected mistake in desktop file [\#34](https://github.com/FreeRDP/Remmina/pull/34) ([krnekhelesh](https://github.com/krnekhelesh))</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;- Updated Quicklists [\#33](https://github.com/FreeRDP/Remmina/pull/33) ([krnekhelesh](https://github.com/krnekhelesh))</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;- update french translation [\#32](https://github.com/FreeRDP/Remmina/pull/32) ([emmanuelgrognet](https://github.com/emmanuelgrognet))</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;- Fixes for recent git FreeRDP headers [\#31](https://github.com/FreeRDP/Remmina/pull/31) ([maelnor](https://github.com/maelnor))</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;- GTK cleanup in remmina\_main.c [\#30](https://github.com/FreeRDP/Remmina/pull/30) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;- Install plugins under CMAKE\_INSTALL\_LIBDIR. [\#29](https://github.com/FreeRDP/Remmina/pull/29) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;- Implementing X-GNOME-FullName [\#28](https://github.com/FreeRDP/Remmina/pull/28) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;- Make Gnome Keyring an optional dependency. [\#27](https://github.com/FreeRDP/Remmina/pull/27) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;- Fix installation of desktop file and related icons. [\#26](https://github.com/FreeRDP/Remmina/pull/26) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;- Mark &#39;Connect&#39; and &#39;New&#39; as important tool items so they always have labels [\#25](https://github.com/FreeRDP/Remmina/pull/25) ([robert-ancell](https://github.com/robert-ancell))</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;- Mark main toolbar as a primary toolbar \(so is correctly themed\) [\#24](https://github.com/FreeRDP/Remmina/pull/24) ([robert-ancell](https://github.com/robert-ancell))</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;- Do not use convenience copy of libvncserver [\#22](https://github.com/FreeRDP/Remmina/pull/22) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;- remmina: install .desktop file [\#20](https://github.com/FreeRDP/Remmina/pull/20) ([jbicha](https://github.com/jbicha))</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;## [1.0.0](https://github.com/FreeRDP/Remmina/tree/1.0.0) (2012-02-10)</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;**Closed issues:**</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;- Can&#39;t compile with GTK+ [\#3](https://github.com/FreeRDP/Remmina/issues/3)</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;- A few minor issues [\#11](https://github.com/FreeRDP/Remmina/pull/11) ([doctaweeks](https://github.com/doctaweeks))</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;- remmina: menu separator fix if avahi is disabled [\#10](https://github.com/FreeRDP/Remmina/pull/10) ([doctaweeks](https://github.com/doctaweeks))</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;- GTK2/3 issue + re-enable ssh [\#8](https://github.com/FreeRDP/Remmina/pull/8) ([doctaweeks](https://github.com/doctaweeks))</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;- Fix missed header path, closes \#4 [\#5](https://github.com/FreeRDP/Remmina/pull/5) ([chihchun](https://github.com/chihchun))</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;- CMake Migration [\#2](https://github.com/FreeRDP/Remmina/pull/2) ([awakecoding](https://github.com/awakecoding))</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*</div></div><!-- fragment --></div><!-- contents -->
+<a href="_c_h_a_n_g_e_l_o_g_8md.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;# Change Log</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;## [v1.2.0-rcgit.26](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.26) (2017-12-28)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.25...v1.2.0-rcgit.26)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;- SSH not working [\#1418](https://github.com/FreeRDP/Remmina/issues/1418)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;**Closed issues:**</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;- &quot;Segmentation fault&quot; during start at Xubuntu 17.10 [\#1419](https://github.com/FreeRDP/Remmina/issues/1419)</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;## [v1.2.0-rcgit.25](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.25) (2017-12-27)</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.24...v1.2.0-rcgit.25)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;- Allow external commands without protocols in create connection dialog [\#1391](https://github.com/FreeRDP/Remmina/issues/1391)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;- Feature request - Option to completely hide the floating toolbar when in fullscreen. [\#1379](https://github.com/FreeRDP/Remmina/issues/1379)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;- Option to run Pre Command before ANYTHING else [\#1363](https://github.com/FreeRDP/Remmina/issues/1363)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;- Rename the plugin &#39;remmina-plugins-gnome&#39; in &#39;remmina-plugins-secret&#39; [\#1343](https://github.com/FreeRDP/Remmina/issues/1343)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;- Enhancement - Variables for pre- and post-commands [\#849](https://github.com/FreeRDP/Remmina/issues/849)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;- Failed to load plugin: remmina-plugin-telepathy.so - undefined symbol: remmina\_tp\_handler\_new [\#714](https://github.com/FreeRDP/Remmina/issues/714)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;- Implement an exec protocol plugin [\#1406](https://github.com/FreeRDP/Remmina/pull/1406) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;- Add SPICE Native WebDAV shared folder support [\#1401](https://github.com/FreeRDP/Remmina/pull/1401) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;- Added encryption algorithms options for SSH [\#1397](https://github.com/FreeRDP/Remmina/pull/1397) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;- SSH tunnel and pre/post commands improvements [\#1385](https://github.com/FreeRDP/Remmina/pull/1385) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;- Prior commands improvements [\#1378](https://github.com/FreeRDP/Remmina/pull/1378) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;- flatpak: add manifest for flatpak-builder [\#1368](https://github.com/FreeRDP/Remmina/pull/1368) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;- telepathy: properly setup dbus activation [\#1365](https://github.com/FreeRDP/Remmina/pull/1365) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;- Add avahi host discovery for ssh and sftp plugins [\#1355](https://github.com/FreeRDP/Remmina/pull/1355) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;- Refactoring - Rename remmina-plugins-gnome in remmina-plugin-secret [\#1348](https://github.com/FreeRDP/Remmina/pull/1348) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;- Refactoring - Part 1 [\#1336](https://github.com/FreeRDP/Remmina/pull/1336) ([antenore](https://github.com/antenore))</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;**Fixed bugs:**</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;- Un-check of &quot;Fullscreen on the same monitor as the connection window&quot; won&#39;t save [\#1344](https://github.com/FreeRDP/Remmina/issues/1344)</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;- Remmina resets screen resolution settings in RDP shortcut [\#1323](https://github.com/FreeRDP/Remmina/issues/1323)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;- SSH Tunneling is broken with SSH Agent with public key [\#1228](https://github.com/FreeRDP/Remmina/issues/1228)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;- Failed to load plugin: remmina-plugin-telepathy.so - undefined symbol: remmina\\_tp\\_handler\\_new [\#714](https://github.com/FreeRDP/Remmina/issues/714)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;- Align SFTP and SSH plugins authentication and tunnel functionalities. [\#1393](https://github.com/FreeRDP/Remmina/pull/1393) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;- Fix Telepathy plugin compilation [\#1356](https://github.com/FreeRDP/Remmina/pull/1356) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;- \_\_func\_\_ keyword must not be quoted [\#1350](https://github.com/FreeRDP/Remmina/pull/1350) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;**Closed issues:**</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;- Unable to reject new or changed RDP certificate [\#1413](https://github.com/FreeRDP/Remmina/issues/1413)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;- Trying to open an aplication but it fails all the time [\#1412](https://github.com/FreeRDP/Remmina/issues/1412)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;- The password in the connections is not saved after upgrading Remmina [\#1402](https://github.com/FreeRDP/Remmina/issues/1402)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;- remmina fails to open sftp window, connected to ssh2 server with public key auth [\#1392](https://github.com/FreeRDP/Remmina/issues/1392)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;- Please add hostbased mechanism support for ssh [\#1373](https://github.com/FreeRDP/Remmina/issues/1373)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;- Remmina tray icon not visible anymore [\#1371](https://github.com/FreeRDP/Remmina/issues/1371)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;- Spacebar button bug with &quot;use client mapping&quot; RDP option enabled [\#1364](https://github.com/FreeRDP/Remmina/issues/1364)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;- Window 0x555b79d3d650 has not been made visible in GdkSeatGrabPrepareFunc [\#1359](https://github.com/FreeRDP/Remmina/issues/1359)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;- WARNING: the &quot;resolution&quot; setting in .pref files is deprecated [\#1358](https://github.com/FreeRDP/Remmina/issues/1358)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;- Wrong keyboard layout in VNC [\#1352](https://github.com/FreeRDP/Remmina/issues/1352)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;- remmina shows pop-up notification only for first screenshot [\#1347](https://github.com/FreeRDP/Remmina/issues/1347)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;- SFTP identity File [\#1301](https://github.com/FreeRDP/Remmina/issues/1301)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;- Password not saved [\#1047](https://github.com/FreeRDP/Remmina/issues/1047)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;- Starting the Remmina connection from commandline in full screen [\#941](https://github.com/FreeRDP/Remmina/issues/941)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;- minimize button does not function well [\#921](https://github.com/FreeRDP/Remmina/issues/921)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;- Ssh tunnel fixes for \#1228 [\#1417](https://github.com/FreeRDP/Remmina/pull/1417) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;- Fixes 2017 christmas [\#1416](https://github.com/FreeRDP/Remmina/pull/1416) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;- New Spanish file venezuela [\#1415](https://github.com/FreeRDP/Remmina/pull/1415) ([jgjimenez](https://github.com/jgjimenez))</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;- Update da.po [\#1411](https://github.com/FreeRDP/Remmina/pull/1411) ([scootergrisen](https://github.com/scootergrisen))</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;- Update Spanish translation [\#1410](https://github.com/FreeRDP/Remmina/pull/1410) ([fitojb](https://github.com/fitojb))</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;- Updated French po file [\#1409](https://github.com/FreeRDP/Remmina/pull/1409) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;- Updated README.MD with Debian install instructions [\#1399](https://github.com/FreeRDP/Remmina/pull/1399) ([MagicFab](https://github.com/MagicFab))</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;- update simplified Chinese translations. [\#1367](https://github.com/FreeRDP/Remmina/pull/1367) ([sotux](https://github.com/sotux))</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;- Fix &#39;consistant&#39; -&gt; &#39;consistent&#39; typo [\#1362](https://github.com/FreeRDP/Remmina/pull/1362) ([mfvescovi](https://github.com/mfvescovi))</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;- ssh\_userauth\_publickey\_auto: should accept empty passphrase [\#1361](https://github.com/FreeRDP/Remmina/pull/1361) ([rayrapetyan](https://github.com/rayrapetyan))</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;- Remove a couple of legacy &quot;resolution&quot; fields, fixes \#1358 [\#1360](https://github.com/FreeRDP/Remmina/pull/1360) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;- Un-check of &#39;Fullscreen on the same monitor&#39; [\#1349](https://github.com/FreeRDP/Remmina/pull/1349) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;- Create CODE\_OF\_CONDUCT [\#1341](https://github.com/FreeRDP/Remmina/pull/1341) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;## [v1.2.0-rcgit.24](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.24) (2017-10-25)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.23...v1.2.0-rcgit.24)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;**Closed issues:**</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;- vte no longer optional [\#1327](https://github.com/FreeRDP/Remmina/issues/1327)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;- libwinpr.so.2 dependcy missing [\#1312](https://github.com/FreeRDP/Remmina/issues/1312)</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;**Merged pull requests:**</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;- Another fix for \#1323 [\#1339](https://github.com/FreeRDP/Remmina/pull/1339) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;## [v1.2.0-rcgit.23](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.23) (2017-10-23)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.22...v1.2.0-rcgit.23)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;**Implemented enhancements:**</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;- SSH session log to file [\#1320](https://github.com/FreeRDP/Remmina/issues/1320)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;- Save SSH session to file \#1320 [\#1333](https://github.com/FreeRDP/Remmina/pull/1333) ([antenore](https://github.com/antenore))</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;**Merged pull requests:**</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;- Fixes for issue \#1327, optional VTE an SSH [\#1335](https://github.com/FreeRDP/Remmina/pull/1335) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;- snap: add password-manager-service interface for gnome-keyring [\#1334](https://github.com/FreeRDP/Remmina/pull/1334) ([dfiloni](https://github.com/dfiloni))</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;- Fix window state saving for remmina\_connection\_window and main window [\#1331](https://github.com/FreeRDP/Remmina/pull/1331) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;- Update da.po \(fully translated\) [\#1330](https://github.com/FreeRDP/Remmina/pull/1330) ([scootergrisen](https://github.com/scootergrisen))</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;- Fixes for deprecated &quot;resolution&quot; setting, issue \#1323 [\#1329](https://github.com/FreeRDP/Remmina/pull/1329) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;## [v1.2.0-rcgit.22](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.22) (2017-10-20)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.21...v1.2.0-rcgit.22)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;- Add support for ayatana-appindicators [\#1309](https://github.com/FreeRDP/Remmina/pull/1309) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;- \[snap\] Use the new desktop, desktop-legacy and wayland interfaces [\#1306](https://github.com/FreeRDP/Remmina/pull/1306) ([kenvandine](https://github.com/kenvandine))</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;**Fixed bugs:**</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;- Crashes when I try opening Preferences [\#1313](https://github.com/FreeRDP/Remmina/issues/1313)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;- Resolution and Passwords Not Saving in Connection Profiles [\#1307](https://github.com/FreeRDP/Remmina/issues/1307)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;- Add background and foreground colors for old versions of VTE [\#1318](https://github.com/FreeRDP/Remmina/pull/1318) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;- Make remmina\_file\_editor\_on\_save behave correcthly [\#1308](https://github.com/FreeRDP/Remmina/pull/1308) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;**Closed issues:**</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;- RDP connection profile settings are not used when opening session [\#1325](https://github.com/FreeRDP/Remmina/issues/1325)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;- Remmina removes the desktop application bar when placed in fullscreen mode \(Linux Mint v18.2\) [\#1317](https://github.com/FreeRDP/Remmina/issues/1317)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;- Remmina only shows black screen without any text after connection to an SSH server [\#1316](https://github.com/FreeRDP/Remmina/issues/1316)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;- Shared file timestamp [\#1310](https://github.com/FreeRDP/Remmina/issues/1310)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;- Tab size - SSH Sessions [\#1305](https://github.com/FreeRDP/Remmina/issues/1305)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;- no rdp in the window option and no remmina command available in terminal [\#1302](https://github.com/FreeRDP/Remmina/issues/1302)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;- Unsolvable dependencies on Debian 9 [\#1298](https://github.com/FreeRDP/Remmina/issues/1298)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;- Remmina doesn&#39;t respect the `SSH Tunnel` `SSH authentication` `User name` setting [\#1278](https://github.com/FreeRDP/Remmina/issues/1278)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;- Debian 9 - Remmina - RDP Plugin [\#1201](https://github.com/FreeRDP/Remmina/issues/1201)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;- Win key stays pressed in remote desktop when remmina loses focus [\#1058](https://github.com/FreeRDP/Remmina/issues/1058)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;- Remmina crashes after reconnection attempt after entering wrong password [\#1054](https://github.com/FreeRDP/Remmina/issues/1054)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;- Remmina is not aware of additional screen added [\#938](https://github.com/FreeRDP/Remmina/issues/938)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;- Focus-out-event should call UNFOCUS plugin feature, fixes \#1058 [\#1315](https://github.com/FreeRDP/Remmina/pull/1315) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;- Fix some memory leaks [\#1314](https://github.com/FreeRDP/Remmina/pull/1314) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;- Dev documentation and Copyright update [\#1311](https://github.com/FreeRDP/Remmina/pull/1311) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;## [v1.2.0-rcgit.21](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.21) (2017-10-08)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.20...v1.2.0-rcgit.21)</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;**Implemented enhancements:**</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;- Feature Request: Create custom Terminal Color Schemes for SSH [\#1235](https://github.com/FreeRDP/Remmina/issues/1235)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;- Enter key doesn&#39;t &quot;Connect&quot; when in Edit menu and password field is in focus [\#1233](https://github.com/FreeRDP/Remmina/issues/1233)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;- Feature request - Option - Floating Desktop Name \[$5\] [\#815](https://github.com/FreeRDP/Remmina/issues/815)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;- Don&#39;t close connection windows when main window is closed [\#785](https://github.com/FreeRDP/Remmina/issues/785)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;- File association for connections [\#485](https://github.com/FreeRDP/Remmina/issues/485)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;- Implementation of dynamic resolution update for RDP [\#1292](https://github.com/FreeRDP/Remmina/pull/1292) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;- Shortcutkey viewonly [\#1289](https://github.com/FreeRDP/Remmina/pull/1289) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;- Simplify pthreads library detection [\#1274](https://github.com/FreeRDP/Remmina/pull/1274) ([jabl](https://github.com/jabl))</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;- Custom Color schemes for SSH [\#1272](https://github.com/FreeRDP/Remmina/pull/1272) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;- RDP client keyboard mapping with GTK3 [\#1265](https://github.com/FreeRDP/Remmina/pull/1265) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;- Make building the VNC plugin optional [\#1263](https://github.com/FreeRDP/Remmina/pull/1263) ([diogocp](https://github.com/diogocp))</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;**Fixed bugs:**</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;- copy / paste and charset [\#1300](https://github.com/FreeRDP/Remmina/issues/1300)</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;- Changes user name ssh tunnel \(vnc over ssh\) do not save. [\#1255](https://github.com/FreeRDP/Remmina/issues/1255)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;- SSH username ignored for Tunnels for RDP [\#1254](https://github.com/FreeRDP/Remmina/issues/1254)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;- Can&#39;t Specify X :display for XDMCP. [\#1251](https://github.com/FreeRDP/Remmina/issues/1251)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;- &quot;Remember last view mode for each connection&quot; not respected in v1.2.0-rcgit.19 [\#1247](https://github.com/FreeRDP/Remmina/issues/1247)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;- Remmina always remember password [\#1224](https://github.com/FreeRDP/Remmina/issues/1224)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;- Host key not working with SPICE plugin connected to KVM client. [\#1035](https://github.com/FreeRDP/Remmina/issues/1035)</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;- Shortcutkey viewonly [\#1289](https://github.com/FreeRDP/Remmina/pull/1289) ([antenore](https://github.com/antenore))</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;**Closed issues:**</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;- Remmina VNC viewer window become freeze or unresponsive if remote Ubuntu pc connection dropped or shutdown [\#1296](https://github.com/FreeRDP/Remmina/issues/1296)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;- support opensuse [\#1284](https://github.com/FreeRDP/Remmina/issues/1284)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;- Remmina 1.2.0-rcgit.20 fails to build from source on sparc64 box [\#1283](https://github.com/FreeRDP/Remmina/issues/1283)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;- WINPR\_INCLUDE\_DIR Set to not found [\#1281](https://github.com/FreeRDP/Remmina/issues/1281)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;- Problem with latest pthread cmake patch and address sanitizer [\#1276](https://github.com/FreeRDP/Remmina/issues/1276)</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;- Remmina on Raspbian 9 Stretch and Remmina RemoteApp support [\#1269](https://github.com/FreeRDP/Remmina/issues/1269)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;- Large file corruption over shared folder on RDP connection. [\#1266](https://github.com/FreeRDP/Remmina/issues/1266)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;- Autoreconnect function with same credentials [\#1264](https://github.com/FreeRDP/Remmina/issues/1264)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;- VNC plugin on Debian 9 \(stretch\) no longer available / working [\#1248](https://github.com/FreeRDP/Remmina/issues/1248)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;- Graphics Flickering [\#1194](https://github.com/FreeRDP/Remmina/issues/1194)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;- Can&#39;t connect to x509vnc on Fedora 25 [\#1171](https://github.com/FreeRDP/Remmina/issues/1171)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;- RDP remote files are listed with huge wrong size under 32bit client platforms [\#1166](https://github.com/FreeRDP/Remmina/issues/1166)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;- Printing PDF via Remmina and share local Printers on Linux Mint dont work [\#1158](https://github.com/FreeRDP/Remmina/issues/1158)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;- Segfault when mousing out of latest remmina. [\#1152](https://github.com/FreeRDP/Remmina/issues/1152)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;- Build 1.2.0-rcgit.x on Debian Jessie [\#1147](https://github.com/FreeRDP/Remmina/issues/1147)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;- RDP to Windows 10 freezes/hangs [\#1139](https://github.com/FreeRDP/Remmina/issues/1139)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;- FTBFS with both libfreerdp 1.2 and 2.0 installed [\#1137](https://github.com/FreeRDP/Remmina/issues/1137)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;- Share folder date &amp; time [\#934](https://github.com/FreeRDP/Remmina/issues/934)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;- Copy/paste between Windows 10 guest and Remmina 1.2.0-rcgit.14 \(git n/a\) host [\#916](https://github.com/FreeRDP/Remmina/issues/916)</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;- Duplicate of issue\#99 on Remina 1.2.0 [\#844](https://github.com/FreeRDP/Remmina/issues/844)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;- Shared clipboard with rdp [\#806](https://github.com/FreeRDP/Remmina/issues/806)</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;- Remmina crashes after 1st auth failure [\#798](https://github.com/FreeRDP/Remmina/issues/798)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;- RDP Plugin Not Found [\#751](https://github.com/FreeRDP/Remmina/issues/751)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;- Unable to connect to remote desktop after last update, error \(SIGSEGV\) [\#747](https://github.com/FreeRDP/Remmina/issues/747)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;- Bug: unable to connect through gateway since 1.2.0-rcgit.8 [\#722](https://github.com/FreeRDP/Remmina/issues/722)</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;- not printing with remiina client 1.2 [\#707](https://github.com/FreeRDP/Remmina/issues/707)</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;- Copy&amp;Paste of formatted text not working. [\#693](https://github.com/FreeRDP/Remmina/issues/693)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;- \\tsclient shares disconnect when accessed by certain programs on server [\#686](https://github.com/FreeRDP/Remmina/issues/686)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;- copy / paste and charset [\#685](https://github.com/FreeRDP/Remmina/issues/685)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;- Cannot compile Remmina 1.0 on Linux mint 17.2 [\#658](https://github.com/FreeRDP/Remmina/issues/658)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;- Minus &quot;-&quot; instead of slash &quot;/&quot; from numpad [\#656](https://github.com/FreeRDP/Remmina/issues/656)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;- version 1.2 RDP/VNC &quot;viewport fullscreen mode&quot; causes problems when scaling is enabled [\#357](https://github.com/FreeRDP/Remmina/issues/357)</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;**Merged pull requests:**</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;- Fix charset conversion in VNC clipboard [\#1303](https://github.com/FreeRDP/Remmina/pull/1303) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;- Add support for application/x-remmina MIME type, fixes \#485 [\#1299](https://github.com/FreeRDP/Remmina/pull/1299) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;- Reverted the notfication for the floating toolbar [\#1297](https://github.com/FreeRDP/Remmina/pull/1297) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;- Fixes for notifications [\#1294](https://github.com/FreeRDP/Remmina/pull/1294) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;- Server name is notified to the user everytime we enter a tab [\#1290](https://github.com/FreeRDP/Remmina/pull/1290) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;- Exit strategy for Gnome Shell 3.26 [\#1287](https://github.com/FreeRDP/Remmina/pull/1287) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;- Fix gtk redrawing in RDP plugin [\#1286](https://github.com/FreeRDP/Remmina/pull/1286) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;- Gtk deprecations [\#1285](https://github.com/FreeRDP/Remmina/pull/1285) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;- Add Keywords entry [\#1277](https://github.com/FreeRDP/Remmina/pull/1277) ([mfvescovi](https://github.com/mfvescovi))</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;- Runtime paths for AppImage [\#1271](https://github.com/FreeRDP/Remmina/pull/1271) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;- Get ssh\_username from remmina profile - fixes \#1255 [\#1267](https://github.com/FreeRDP/Remmina/pull/1267) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;- Better button labelling and new save button [\#1250](https://github.com/FreeRDP/Remmina/pull/1250) ([antenore](https://github.com/antenore))</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;## [v1.2.0-rcgit.20](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.20) (2017-08-25)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.19...v1.2.0-rcgit.20)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;**Implemented enhancements:**</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;- Set Linux as the default terminal color scheme. Fixes \#1238 [\#1243](https://github.com/FreeRDP/Remmina/pull/1243) ([antenore](https://github.com/antenore))</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;**Fixed bugs:**</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;- Remmina crashes each time I use FTP transfer [\#1257](https://github.com/FreeRDP/Remmina/issues/1257)</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;- Problems with some color schemes [\#1225](https://github.com/FreeRDP/Remmina/issues/1225)</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;**Closed issues:**</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;- Color on SSH terminal window being applied [\#1238](https://github.com/FreeRDP/Remmina/issues/1238)</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;- Tray applet closing when last window gets closed [\#1236](https://github.com/FreeRDP/Remmina/issues/1236)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;- Systray icon closes when closing &#39;Main Window&#39; or RDP connection [\#1229](https://github.com/FreeRDP/Remmina/issues/1229)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;- Missing icons after compiling latest Git release [\#1221](https://github.com/FreeRDP/Remmina/issues/1221)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;- RDP quality settings not saved [\#1216](https://github.com/FreeRDP/Remmina/issues/1216)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;- Cannot connect after upgrading Ubuntu to 16.04 [\#946](https://github.com/FreeRDP/Remmina/issues/946)</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;**Merged pull requests:**</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;- passphrase not yet used in sftp connection - closes \#1257 [\#1259](https://github.com/FreeRDP/Remmina/pull/1259) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;- Added ssh\_agent in the list of authorized method, fixes \#1228 [\#1246](https://github.com/FreeRDP/Remmina/pull/1246) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;- Connect when pressing enter in the password field [\#1242](https://github.com/FreeRDP/Remmina/pull/1242) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;- Fixed terminal color palettes [\#1240](https://github.com/FreeRDP/Remmina/pull/1240) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;- French translation update and other po files update with new strings to be translated [\#1239](https://github.com/FreeRDP/Remmina/pull/1239) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;- SSH Kerberos GSSAPI Auth [\#1237](https://github.com/FreeRDP/Remmina/pull/1237) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;- Enter key doesn&#39;t &quot;Connect&quot; when in Edit menu and password field is in focus - \#1233 [\#1234](https://github.com/FreeRDP/Remmina/pull/1234) ([erichoog](https://github.com/erichoog))</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;- Fix link for issue \#367 [\#1232](https://github.com/FreeRDP/Remmina/pull/1232) ([erichoog](https://github.com/erichoog))</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;- Change Status Icon availability for gnome 3.16 [\#1230](https://github.com/FreeRDP/Remmina/pull/1230) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;## [v1.2.0-rcgit.19](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.19) (2017-07-24)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.18...v1.2.0-rcgit.19)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;**Implemented enhancements:**</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;- SSH tunneling does not work with RDP server redirection [\#1175](https://github.com/FreeRDP/Remmina/issues/1175)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;- Enhancement - Another User connected to the server, forcing \[...\] pop-up [\#1141](https://github.com/FreeRDP/Remmina/issues/1141)</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;- RD Gateway Doesn&#39;t Support different username/password [\#933](https://github.com/FreeRDP/Remmina/issues/933)</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;- the checkbox, &#39;Save SSH Password&#39;, greyed out. [\#708](https://github.com/FreeRDP/Remmina/issues/708)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;- RD Gateway authentication doesn&#39;t work [\#511](https://github.com/FreeRDP/Remmina/issues/511)</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;- Allow the user to hide the toolbar inside a remmina connection window [\#413](https://github.com/FreeRDP/Remmina/issues/413)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;- Support for RDP Gateway [\#347](https://github.com/FreeRDP/Remmina/issues/347)</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;- Feature request: Implement &quot;Credential Groups&quot; [\#82](https://github.com/FreeRDP/Remmina/issues/82)</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;- Ssh improvements [\#1196](https://github.com/FreeRDP/Remmina/pull/1196) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;- Implementing separate user and password for RD Gateway [\#1193](https://github.com/FreeRDP/Remmina/pull/1193) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;- RDP: remove server hostname DNS check [\#1190](https://github.com/FreeRDP/Remmina/pull/1190) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;- Pressing Enter in the Domain entry of Auth dialog submits [\#1163](https://github.com/FreeRDP/Remmina/pull/1163) ([iivorait](https://github.com/iivorait))</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;- Add server name to popup warning [\#1142](https://github.com/FreeRDP/Remmina/pull/1142) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;- Add an option to completely disable the floating toolbar in fullscreen mode [\#1135](https://github.com/FreeRDP/Remmina/pull/1135) ([transistor1](https://github.com/transistor1))</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;- The host key should not affect subsequent key operations [\#1132](https://github.com/FreeRDP/Remmina/pull/1132) ([nanxiongchao](https://github.com/nanxiongchao))</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;**Fixed bugs:**</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;- Remmina profile editor scrolling is broken [\#1179](https://github.com/FreeRDP/Remmina/issues/1179)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;- Graphical issues when using byobu/tmux [\#1151](https://github.com/FreeRDP/Remmina/issues/1151)</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;- I always got an error message &quot;SSH public key has changed!&quot; [\#1129](https://github.com/FreeRDP/Remmina/issues/1129)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;- problem with tui interfaces in remmina [\#1076](https://github.com/FreeRDP/Remmina/issues/1076)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;- test bounty source [\#1048](https://github.com/FreeRDP/Remmina/issues/1048)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;- Importing rdp file not successful [\#1039](https://github.com/FreeRDP/Remmina/issues/1039)</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;- Implementing separate user and password for RD Gateway [\#1193](https://github.com/FreeRDP/Remmina/pull/1193) ([antenore](https://github.com/antenore))</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"> 286</span>&#160;**Closed issues:**</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;- Invalid \(too large\) file size in rdp shared folder [\#1220](https://github.com/FreeRDP/Remmina/issues/1220)</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;- RDP to Win10 makes ToolBar clear [\#1209](https://github.com/FreeRDP/Remmina/issues/1209)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;- Upgrading to 1.2 failed [\#1202](https://github.com/FreeRDP/Remmina/issues/1202)</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;- Multiple NICs [\#1188](https://github.com/FreeRDP/Remmina/issues/1188)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;- &quot;Public Key \(Automatic\)&quot; option does not work with ed25519 keys [\#1187](https://github.com/FreeRDP/Remmina/issues/1187)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;- Cannot connect to Windows 10 after Creators Update \(1703\) [\#1186](https://github.com/FreeRDP/Remmina/issues/1186)</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;- Crashing on Load: Segfault [\#1185](https://github.com/FreeRDP/Remmina/issues/1185)</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;- Files in mounted sharefolders become terrabytes big. [\#1174](https://github.com/FreeRDP/Remmina/issues/1174)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;- compilation on Debian 9 [\#1165](https://github.com/FreeRDP/Remmina/issues/1165)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;- Clipboard sync is not working [\#1164](https://github.com/FreeRDP/Remmina/issues/1164)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;- File Transfers to Share Folder Crashing Remmina 1.2.0-rcgit-18 Each Try [\#1159](https://github.com/FreeRDP/Remmina/issues/1159)</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;- Segfault when using the host SMB sharefolder on Windows \(from Linux client\) [\#1157](https://github.com/FreeRDP/Remmina/issues/1157)</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;- Custom RDP settings? [\#1146](https://github.com/FreeRDP/Remmina/issues/1146)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;- Missing icons in remote session toolbar [\#1136](https://github.com/FreeRDP/Remmina/issues/1136)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;- Opacity for pop up tool bar is too see-through [\#1131](https://github.com/FreeRDP/Remmina/issues/1131)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;- option to remove fullscreen toolbar completely [\#1128](https://github.com/FreeRDP/Remmina/issues/1128)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;- SSH terminal doesn&#39;t work [\#1125](https://github.com/FreeRDP/Remmina/issues/1125)</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;- Start remmina with fixed language [\#1119](https://github.com/FreeRDP/Remmina/issues/1119)</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;- Remmina Next is Corrupting the Unity Desktop [\#1111](https://github.com/FreeRDP/Remmina/issues/1111)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;- Remove systemd dependency [\#1100](https://github.com/FreeRDP/Remmina/issues/1100)</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;- Keyboard Events [\#1096](https://github.com/FreeRDP/Remmina/issues/1096)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;- No move or resize terminal window [\#1087](https://github.com/FreeRDP/Remmina/issues/1087)</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;- Connection Timeout - vfprintf.c no such file or directory - Segfault [\#1080](https://github.com/FreeRDP/Remmina/issues/1080)</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;- SSH password can&#39;t save , terminal auto disconnection [\#1078](https://github.com/FreeRDP/Remmina/issues/1078)</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;- Remmina getting down when used ssh &amp; mc [\#1075](https://github.com/FreeRDP/Remmina/issues/1075)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;- VNC over SSH tunnel very slow [\#713](https://github.com/FreeRDP/Remmina/issues/713)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;- Domain/Username/Password database [\#711](https://github.com/FreeRDP/Remmina/issues/711)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;- Remmina RDP hangs after second certificate confirmation when using RD gateway [\#706](https://github.com/FreeRDP/Remmina/issues/706)</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;- SSH agent forwarding, tunnels and other nice stuff [\#692](https://github.com/FreeRDP/Remmina/issues/692)</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;- When I open a RDP connexion on Microsoft Windows PC, SSH Client display is messing [\#663](https://github.com/FreeRDP/Remmina/issues/663)</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;- Remmina doesn&#39;t respect ssh config files... [\#235](https://github.com/FreeRDP/Remmina/issues/235)</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;- SSH: missed check availability of PubkicKey Auth on remote host before asking passphrase [\#176](https://github.com/FreeRDP/Remmina/issues/176)</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;**Merged pull requests:**</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;- Fixes for the exit strategy [\#1219](https://github.com/FreeRDP/Remmina/pull/1219) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;- Issues 785 966 [\#1214](https://github.com/FreeRDP/Remmina/pull/1214) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;- Ssh protocol plugin implementation [\#1206](https://github.com/FreeRDP/Remmina/pull/1206) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;- The multi password changer [\#1203](https://github.com/FreeRDP/Remmina/pull/1203) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;- Fix snap issues [\#1200](https://github.com/FreeRDP/Remmina/pull/1200) ([dfiloni](https://github.com/dfiloni))</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;- Terminal functionalities to make Remmina behave correctly with ncurses [\#1198](https://github.com/FreeRDP/Remmina/pull/1198) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;- Fix multiple typos of &#39;transfered&#39; word [\#1173](https://github.com/FreeRDP/Remmina/pull/1173) ([mfvescovi](https://github.com/mfvescovi))</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;- RDP plugin: add password expired message and update po files [\#1170](https://github.com/FreeRDP/Remmina/pull/1170) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;- Remmina --full-version command line option [\#1169](https://github.com/FreeRDP/Remmina/pull/1169) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;- snapcraft: use snap-preload to get dynamic access to /snap path [\#1161](https://github.com/FreeRDP/Remmina/pull/1161) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;- Inproved CodeTriage and Bountysource buttons [\#1143](https://github.com/FreeRDP/Remmina/pull/1143) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;- Cmake clean [\#1140](https://github.com/FreeRDP/Remmina/pull/1140) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;- Give precedence to libfreerdp2 and winpr2 libs [\#1138](https://github.com/FreeRDP/Remmina/pull/1138) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;- travis: build the snap for PRs in Debug mode [\#1130](https://github.com/FreeRDP/Remmina/pull/1130) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;- snap: optionally push all the built snaps on PRs to transfer.sh [\#1126](https://github.com/FreeRDP/Remmina/pull/1126) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;- Small English nit \(fullscreen\_on\_auto\) [\#1124](https://github.com/FreeRDP/Remmina/pull/1124) ([lnicola](https://github.com/lnicola))</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;- Fix german translation [\#1120](https://github.com/FreeRDP/Remmina/pull/1120) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;## [v1.2.0-rcgit.18](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.18) (2017-02-13)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.17...v1.2.0-rcgit.18)</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;**Implemented enhancements:**</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;- No prompt information while another login using the same account [\#1114](https://github.com/FreeRDP/Remmina/pull/1114) ([nanxiongchao](https://github.com/nanxiongchao))</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;- snap: add CMake generated snapcraft.yaml and `make snap` [\#1102](https://github.com/FreeRDP/Remmina/pull/1102) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;**Fixed bugs:**</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;full screen window placement with multiple monitors [\#124](https://github.com/FreeRDP/Remmina/issues/124)</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;**Closed issues:**</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;- Auto-Reconnect function [\#1099](https://github.com/FreeRDP/Remmina/issues/1099)</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;- RDP Plugin not found after Update [\#1094](https://github.com/FreeRDP/Remmina/issues/1094)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;- Remmina-1.2.0-rcgit.17 build error [\#1090](https://github.com/FreeRDP/Remmina/issues/1090)</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;- Remote Windows program crashes when accessed by Remmina RDP [\#1083](https://github.com/FreeRDP/Remmina/issues/1083)</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;- Crashing since upgraded to 1.2.0-rcgit-17 [\#1077](https://github.com/FreeRDP/Remmina/issues/1077)</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;- Remmina windows unmovable/unresizable [\#1073](https://github.com/FreeRDP/Remmina/issues/1073)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;- Russian translation fixes [\#1071](https://github.com/FreeRDP/Remmina/issues/1071)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;- English fixes [\#1040](https://github.com/FreeRDP/Remmina/issues/1040)</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;- Compile failed on Archlinux [\#1012](https://github.com/FreeRDP/Remmina/issues/1012)</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;- RDP connections or whole Remmina are crashing regularly [\#778](https://github.com/FreeRDP/Remmina/issues/778)</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;- xfce4 applet gone? [\#609](https://github.com/FreeRDP/Remmina/issues/609)</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;- Bad port stored into known\_hosts2 [\#604](https://github.com/FreeRDP/Remmina/issues/604)</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;- no puedo ver la impresora por remmnia [\#578](https://github.com/FreeRDP/Remmina/issues/578)</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;- Uzbek language support [\#560](https://github.com/FreeRDP/Remmina/issues/560)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;- Getting message that VNC plugin is not installed even though it is [\#559](https://github.com/FreeRDP/Remmina/issues/559)</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;**Merged pull requests:**</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;- snap: use snapcraft 2.26 features [\#1115](https://github.com/FreeRDP/Remmina/pull/1115) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;- Keyboard capture fixes, \#1087 \#1096 \#1111 [\#1113](https://github.com/FreeRDP/Remmina/pull/1113) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;- Keyboard capture changes, \#1087 \#1096 \#1111 [\#1112](https://github.com/FreeRDP/Remmina/pull/1112) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;- travis: add parallel builds to build from debs and generate snap packages [\#1104](https://github.com/FreeRDP/Remmina/pull/1104) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;- GUI enhancements [\#1103](https://github.com/FreeRDP/Remmina/pull/1103) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;- Add descriptions for some freerdp exit status code [\#1101](https://github.com/FreeRDP/Remmina/pull/1101) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;- FindFREERDP.cmake: update library names to match upstream [\#1095](https://github.com/FreeRDP/Remmina/pull/1095) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;- Update fr.po [\#1089](https://github.com/FreeRDP/Remmina/pull/1089) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;- Fix english typos as per \#1040 [\#1088](https://github.com/FreeRDP/Remmina/pull/1088) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;- Make full screen in the same monitor where the connection window reside [\#1084](https://github.com/FreeRDP/Remmina/pull/1084) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;- Fix russian translations as per \#1070 [\#1072](https://github.com/FreeRDP/Remmina/pull/1072) ([antenore](https://github.com/antenore))</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;## [v1.2.0-rcgit.17](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.17) (2016-12-22)</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.16...v1.2.0-rcgit.17)</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;**Implemented enhancements:**</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;- Remove survey as too bloated. [\#1064](https://github.com/FreeRDP/Remmina/issues/1064)</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;- Cannot connect to neoma-bs RDP server [\#1056](https://github.com/FreeRDP/Remmina/issues/1056)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;- Import gateay values from rdp files - \#1056 [\#1068](https://github.com/FreeRDP/Remmina/pull/1068) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;- No debian/ubuntu distributions files included. [\#1062](https://github.com/FreeRDP/Remmina/pull/1062) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;- Fix fullscreen window position \(\#873\) [\#1060](https://github.com/FreeRDP/Remmina/pull/1060) ([spasche](https://github.com/spasche))</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;**Fixed bugs:**</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;- When &quot;Server&quot; GtkComboBox is selected, TAB key doesn&#39;t work [\#1049](https://github.com/FreeRDP/Remmina/issues/1049)</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;**Closed issues:**</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;- Advanced Settings for RDP connections [\#1043](https://github.com/FreeRDP/Remmina/issues/1043)</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;- error: ‘rdpGdi {aka struct rdp\_gdi}’ has no member named ‘bytesPerPixel’ [\#1028](https://github.com/FreeRDP/Remmina/issues/1028)</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;- Remmina crashes attempting VNC connection to Mac OS X Yosemite [\#517](https://github.com/FreeRDP/Remmina/issues/517)</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;- Remmina can no longer recognize RDP authentication failure [\#507](https://github.com/FreeRDP/Remmina/issues/507)</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;- SSH-Tunneled VNC connection randomly hangs [\#480](https://github.com/FreeRDP/Remmina/issues/480)</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;- Long connection times when forwarding RDP connections through SSH [\#452](https://github.com/FreeRDP/Remmina/issues/452)</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;- Issue with PPA mentioned in Wiki [\#439](https://github.com/FreeRDP/Remmina/issues/439)</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;- Remmina crashes copying from remoted computer and pasting into remoting one [\#411](https://github.com/FreeRDP/Remmina/issues/411)</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;- font smoothing - some fonts are not smoothed [\#382](https://github.com/FreeRDP/Remmina/issues/382)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;- Remmina blocks and I have to disconnect every 20 minutes [\#332](https://github.com/FreeRDP/Remmina/issues/332)</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;- Keyboard Mapping [\#261](https://github.com/FreeRDP/Remmina/issues/261)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;- Remmina crash when running towards server with xrdp 0.7.0 [\#234](https://github.com/FreeRDP/Remmina/issues/234)</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;- Resolution of Client Viewport not functioning correct [\#205](https://github.com/FreeRDP/Remmina/issues/205)</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;**Merged pull requests:**</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;- Updated Russian translations [\#1070](https://github.com/FreeRDP/Remmina/pull/1070) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;- Libfreerdp updates [\#1067](https://github.com/FreeRDP/Remmina/pull/1067) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;- Removed survey to clean up the code - API CHANGE [\#1065](https://github.com/FreeRDP/Remmina/pull/1065) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;- Updated German translation [\#1063](https://github.com/FreeRDP/Remmina/pull/1063) ([theraser](https://github.com/theraser))</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;- When &#39;Server&#39; GtkComboBox is selected, TAB doesn&#39;t work [\#1050](https://github.com/FreeRDP/Remmina/pull/1050) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;- Customizable app name and locations [\#1046](https://github.com/FreeRDP/Remmina/pull/1046) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;- remmina.desktop: add Quit desktop action for Unity [\#1045](https://github.com/FreeRDP/Remmina/pull/1045) ([3v1n0](https://github.com/3v1n0))</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;- Update Spanish Translation [\#1044](https://github.com/FreeRDP/Remmina/pull/1044) ([jgjimenez](https://github.com/jgjimenez))</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;- Update fr.po [\#1038](https://github.com/FreeRDP/Remmina/pull/1038) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;- Uzbek cyrillic: update translations [\#1037](https://github.com/FreeRDP/Remmina/pull/1037) ([ozbek](https://github.com/ozbek))</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;## [v1.2.0-rcgit.16](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.16) (2016-10-31)</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.15...v1.2.0-rcgit.16)</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;**Implemented enhancements:**</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;- Add RDP scaling factor as implemented by FreeRDP [\#969](https://github.com/FreeRDP/Remmina/issues/969)</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;- Please add man pages for remmina. [\#952](https://github.com/FreeRDP/Remmina/issues/952)</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;- Please support XDG base directory spec [\#818](https://github.com/FreeRDP/Remmina/issues/818)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;- Auto-Highlight Quick Search Text Upon Each Remote Session Launch [\#544](https://github.com/FreeRDP/Remmina/issues/544)</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;- spice support [\#117](https://github.com/FreeRDP/Remmina/issues/117)</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;- CMAKE: fix GNUInstallDirs usage [\#1004](https://github.com/FreeRDP/Remmina/pull/1004) ([hasufell](https://github.com/hasufell))</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;- XDG base directory spec [\#1003](https://github.com/FreeRDP/Remmina/pull/1003) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;- When focus-in inside the quick search, select the whole text as per \#544 [\#1001](https://github.com/FreeRDP/Remmina/pull/1001) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;- spice: send a notification at the end of file transfers [\#994](https://github.com/FreeRDP/Remmina/pull/994) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;- spice: show progress of drag &amp; drop file transfers [\#993](https://github.com/FreeRDP/Remmina/pull/993) ([larchunix](https://github.com/larchunix))</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;**Fixed bugs:**</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;- SSH - Secure Shell Issue [\#936](https://github.com/FreeRDP/Remmina/issues/936)</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;- Auto-highlighted &quot;Quick Connect&quot; connection name within new connection dialog copies the words &quot;Quick Connect&quot; into PRIMARY selection [\#263](https://github.com/FreeRDP/Remmina/issues/263)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;- can&#39;t connect to 2008r2 when set &quot;negotiation&quot; security mode [\#202](https://github.com/FreeRDP/Remmina/issues/202)</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;- crash of remmina when terminal bell rings [\#163](https://github.com/FreeRDP/Remmina/issues/163)</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;- Support for left-handed mouse [\#136](https://github.com/FreeRDP/Remmina/issues/136)</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;**Closed issues:**</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;- Segmentation error on Gnome Desktop with Wayland [\#1034](https://github.com/FreeRDP/Remmina/issues/1034)</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;- untranslated lines missed [\#1029](https://github.com/FreeRDP/Remmina/issues/1029)</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;- Security Issue? [\#1027](https://github.com/FreeRDP/Remmina/issues/1027)</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;- remmina fails to compile against freerdp [\#1015](https://github.com/FreeRDP/Remmina/issues/1015)</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;- VNC connection doesn&#39;t work if color is set to 256 colors \(8 bpp\) [\#989](https://github.com/FreeRDP/Remmina/issues/989)</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;- remmina.org down [\#988](https://github.com/FreeRDP/Remmina/issues/988)</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;- Random remmina exits \(no crash, just plain close\) [\#978](https://github.com/FreeRDP/Remmina/issues/978)</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;- spice plugin missing on Ubuntu PPA [\#958](https://github.com/FreeRDP/Remmina/issues/958)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;- Arch Linux: Unable to load RDP plugin [\#931](https://github.com/FreeRDP/Remmina/issues/931)</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;- Not work Copy&amp;paste between Keepass2 and Remmina [\#900](https://github.com/FreeRDP/Remmina/issues/900)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;- Can&#39;t connect to certain hosts after update [\#855](https://github.com/FreeRDP/Remmina/issues/855)</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;- Huge icons in toolbar in some desktop environments [\#826](https://github.com/FreeRDP/Remmina/issues/826)</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;- Regression in RDP plugin - no ipv6 support [\#528](https://github.com/FreeRDP/Remmina/issues/528)</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;- RDP on Custom Port [\#237](https://github.com/FreeRDP/Remmina/issues/237)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;- Provide a different icon for the tray icon [\#225](https://github.com/FreeRDP/Remmina/issues/225)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;- Segfault after login by rdp [\#200](https://github.com/FreeRDP/Remmina/issues/200)</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;- Remmina in Fullscreen does hide Panels on other unused monitors in gnome [\#188](https://github.com/FreeRDP/Remmina/issues/188)</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;- Regression: Connections scrolling dissapeared [\#185](https://github.com/FreeRDP/Remmina/issues/185)</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;- Remmina Hangs/Stucks at second login to RD Server [\#179](https://github.com/FreeRDP/Remmina/issues/179)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;- Cant see the Windows login screen while RDPing to a machine [\#174](https://github.com/FreeRDP/Remmina/issues/174)</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;- LIBVNCSERVER\_WITH\_CLIENT\_TLS is never defined [\#173](https://github.com/FreeRDP/Remmina/issues/173)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;- Cannot connect to VNC servers using IPv6 [\#170](https://github.com/FreeRDP/Remmina/issues/170)</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;- Connection window disappears when minimized [\#155](https://github.com/FreeRDP/Remmina/issues/155)</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;- build fails with -DWITH\_GETTEXT=OFF [\#142](https://github.com/FreeRDP/Remmina/issues/142)</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;- remmina rdp session freeze or hide [\#137](https://github.com/FreeRDP/Remmina/issues/137)</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;- Cut &amp; Paste [\#106](https://github.com/FreeRDP/Remmina/issues/106)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;- Vertical resolution of RDP host not being determined correctly [\#81](https://github.com/FreeRDP/Remmina/issues/81)</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160;- Regression: In remmina 1.0 tray menu right click editing broken [\#61](https://github.com/FreeRDP/Remmina/issues/61)</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;- do ssh server host key check with the NX plugin [\#18](https://github.com/FreeRDP/Remmina/issues/18)</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;- Fixes workspace detection outside X11 backend. [\#1036](https://github.com/FreeRDP/Remmina/pull/1036) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;- Man Pages as per \#952 request [\#1033](https://github.com/FreeRDP/Remmina/pull/1033) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;- Updated Hungarian translation [\#1032](https://github.com/FreeRDP/Remmina/pull/1032) ([meskobalazs](https://github.com/meskobalazs))</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;- updated german translation [\#1031](https://github.com/FreeRDP/Remmina/pull/1031) ([morph027](https://github.com/morph027))</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;- New gettext strings, closes \#1029 [\#1030](https://github.com/FreeRDP/Remmina/pull/1030) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;- Improves focus in/out detection when keyboard is captured [\#1025](https://github.com/FreeRDP/Remmina/pull/1025) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;- Show information on upgrade libssh to 0.7.X [\#1017](https://github.com/FreeRDP/Remmina/pull/1017) ([e-alfred](https://github.com/e-alfred))</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;- Update French translation [\#1014](https://github.com/FreeRDP/Remmina/pull/1014) ([DevDef](https://github.com/DevDef))</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;- Implementing RDP remote scaling and orientation [\#979](https://github.com/FreeRDP/Remmina/pull/979) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;- Grab focus without selecting text in the remmina file editor [\#976](https://github.com/FreeRDP/Remmina/pull/976) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;- make gettext \*really\* behave correctly [\#972](https://github.com/FreeRDP/Remmina/pull/972) ([diogocp](https://github.com/diogocp))</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;- Update name [\#971](https://github.com/FreeRDP/Remmina/pull/971) ([qwertos](https://github.com/qwertos))</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;## [v1.2.0-rcgit.15](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.15) (2016-08-17)</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.14...v1.2.0-rcgit.15)</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;- No dark tray icon [\#905](https://github.com/FreeRDP/Remmina/issues/905)</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;- Systray does not show the remmina applet icon in Plasma 5.7 - therefore no connect menu [\#944](https://github.com/FreeRDP/Remmina/issues/944)</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;**Closed issues:**</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;- Unicode copy leads to crash [\#967](https://github.com/FreeRDP/Remmina/issues/967)</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;- Remmina can no longer detect bad RDP credentials [\#960](https://github.com/FreeRDP/Remmina/issues/960)</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;- Import Plugin Dialog [\#954](https://github.com/FreeRDP/Remmina/issues/954)</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;- SSH does not try IPv4 after IPv6 fails \(when DNS has addresses for both\) [\#953](https://github.com/FreeRDP/Remmina/issues/953)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;- RDP reconnect extra warning at the end [\#929](https://github.com/FreeRDP/Remmina/issues/929)</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;- Invisible Add-Button due to color [\#924](https://github.com/FreeRDP/Remmina/issues/924)</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;- View bug [\#920](https://github.com/FreeRDP/Remmina/issues/920)</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;- SSH - Blank Window After Upgrading Fedora 23 to 24 [\#913](https://github.com/FreeRDP/Remmina/issues/913)</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;- Don&#39;t compile on FreeBSD [\#911](https://github.com/FreeRDP/Remmina/issues/911)</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160;- missing remmina settings icon ubuntu 14.04 [\#906](https://github.com/FreeRDP/Remmina/issues/906)</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;- apt-get fresh install error on Ubuntu MATE 15.10 [\#903](https://github.com/FreeRDP/Remmina/issues/903)</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;- remmina-1.2 SSH support in Fedora-24beta totally broken [\#899](https://github.com/FreeRDP/Remmina/issues/899)</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;- Segmentation Fault on FreeBSD using SPICE [\#876](https://github.com/FreeRDP/Remmina/issues/876)</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;- Error when using clipboard sync wiht windows 2012R2 [\#821](https://github.com/FreeRDP/Remmina/issues/821)</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;- RDP Clipboard issue with 1.2.0-rcgit.10 [\#809](https://github.com/FreeRDP/Remmina/issues/809)</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;- FreeBSD - error: no member named &#39;sftp\_client\_confirm\_res ume&#39; in &#39;union remmina\_masterthread\_exec\_data [\#431](https://github.com/FreeRDP/Remmina/issues/431)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;- Spice package and integrated debian packaging. [\#964](https://github.com/FreeRDP/Remmina/pull/964) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;- .travis.yml: Add a missing dependency [\#963](https://github.com/FreeRDP/Remmina/pull/963) ([dshcherb](https://github.com/dshcherb))</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;- spice: add support for tls encrypted connections [\#962](https://github.com/FreeRDP/Remmina/pull/962) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;- Update AUTHORS [\#959](https://github.com/FreeRDP/Remmina/pull/959) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;- Fix import label [\#957](https://github.com/FreeRDP/Remmina/pull/957) ([Justinzobel](https://github.com/Justinzobel))</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;- Updated Hungarian translation [\#949](https://github.com/FreeRDP/Remmina/pull/949) ([meskobalazs](https://github.com/meskobalazs))</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;- Add missing ClientFormatListResponse\(\) call in RDP plugin clipboard, … [\#948](https://github.com/FreeRDP/Remmina/pull/948) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;- RDP: allow disabling auto reconnection in .remmina file [\#947](https://github.com/FreeRDP/Remmina/pull/947) ([xhaakon](https://github.com/xhaakon))</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;- Embed docs [\#945](https://github.com/FreeRDP/Remmina/pull/945) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;- Allow disabling libsecret dependency [\#942](https://github.com/FreeRDP/Remmina/pull/942) ([diogocp](https://github.com/diogocp))</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;- add shortcuts to show remote desktop edges [\#940](https://github.com/FreeRDP/Remmina/pull/940) ([nastasi](https://github.com/nastasi))</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160;- Fix a possible crash when changing gtk\_tree\_model [\#928](https://github.com/FreeRDP/Remmina/pull/928) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160;- Inverted tray icon for light theme [\#907](https://github.com/FreeRDP/Remmina/pull/907) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;## [v1.2.0-rcgit.14](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.14) (2016-06-15)</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.13...v1.2.0-rcgit.14)</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;- No more keyboard shortcuts for quick search [\#887](https://github.com/FreeRDP/Remmina/issues/887)</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;- Support opening rdp files [\#47](https://github.com/FreeRDP/Remmina/issues/47)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;- Remmina closes even if I press &quot;No&quot; when it asks if I&#39;m sure [\#888](https://github.com/FreeRDP/Remmina/issues/888)</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;**Closed issues:**</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;- RemoteApp support [\#898](https://github.com/FreeRDP/Remmina/issues/898)</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160;- I do not see the button &quot;Creane a new connection profile&quot; [\#897](https://github.com/FreeRDP/Remmina/issues/897)</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;- Error when compiling Remmina [\#848](https://github.com/FreeRDP/Remmina/issues/848)</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;- Adds monochrome tray icons [\#901](https://github.com/FreeRDP/Remmina/pull/901) ([wa4557](https://github.com/wa4557))</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;- Don&#39;t quit Remmina if the user denies closing the connection window [\#895](https://github.com/FreeRDP/Remmina/pull/895) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;- Adds support for themable panel icons [\#894](https://github.com/FreeRDP/Remmina/pull/894) ([wa4557](https://github.com/wa4557))</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;- added \n in the credits [\#893](https://github.com/FreeRDP/Remmina/pull/893) ([jgjimenez](https://github.com/jgjimenez))</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;## [1.2.0.rcgit.13](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.13) (2016-06-02)</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.12...1.2.0.rcgit.13)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;- RDP: Fix extended mouse event to register the click for forward/back buttons [\#638](https://github.com/FreeRDP/Remmina/issues/638)</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;- Remmina main fixes [\#891](https://github.com/FreeRDP/Remmina/pull/891) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;- Remmina Main Window Refactoring [\#875](https://github.com/FreeRDP/Remmina/pull/875) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;- \[remmina\_main\] Quick connect bar not visible [\#878](https://github.com/FreeRDP/Remmina/issues/878)</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;- Remmina doesn&#39;t support ssh-rsa hostkeys [\#647](https://github.com/FreeRDP/Remmina/issues/647)</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;- Toolbar buttons initially enabled in the main window [\#467](https://github.com/FreeRDP/Remmina/issues/467)</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;**Closed issues:**</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;- Remmina SPICE doesn&#39;t show the connections anymore [\#885](https://github.com/FreeRDP/Remmina/issues/885)</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;- Only access via Administrator account \(Raspbian -&gt; Windows 10\) [\#880](https://github.com/FreeRDP/Remmina/issues/880)</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;- rdp attempt from ubuntu xenial to win 10 [\#868](https://github.com/FreeRDP/Remmina/issues/868)</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;- Location of saved connections is wrong in Wiki [\#866](https://github.com/FreeRDP/Remmina/issues/866)</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;- compile remmina not working [\#771](https://github.com/FreeRDP/Remmina/issues/771)</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;- Grayed buttons if no entry or if none selected [\#488](https://github.com/FreeRDP/Remmina/issues/488)</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;- Hide quick connect bar by default [\#421](https://github.com/FreeRDP/Remmina/issues/421)</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;- Can&#39;t execute the last GIT with GTK2 \(undefined symbol: gdk\_pixbuf\_get\_from\_surface\) [\#220](https://github.com/FreeRDP/Remmina/issues/220)</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;- Fix some memory leaks [\#890](https://github.com/FreeRDP/Remmina/pull/890) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;- Translations ready [\#889](https://github.com/FreeRDP/Remmina/pull/889) ([jgjimenez](https://github.com/jgjimenez))</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;- Translations [\#884](https://github.com/FreeRDP/Remmina/pull/884) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;- Spice plugin: smartcard redirection support [\#882](https://github.com/FreeRDP/Remmina/pull/882) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;- SPICE plugin: USB redirection support + minor fixes [\#881](https://github.com/FreeRDP/Remmina/pull/881) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;- Spice plugin: scaling support [\#879](https://github.com/FreeRDP/Remmina/pull/879) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;- SPICE plugin improvements \(again\) [\#877](https://github.com/FreeRDP/Remmina/pull/877) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;- More SPICE plugin improvements [\#874](https://github.com/FreeRDP/Remmina/pull/874) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;- SPICE plugin improvements [\#872](https://github.com/FreeRDP/Remmina/pull/872) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;- Initial support for Wayland and Mir [\#871](https://github.com/FreeRDP/Remmina/pull/871) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;- New plugin with basic support for the SPICE protocol [\#870](https://github.com/FreeRDP/Remmina/pull/870) ([larchunix](https://github.com/larchunix))</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;## [1.2.0.rcgit.12](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.12) (2016-05-17)</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.11...1.2.0.rcgit.12)</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;- \[Feature Request\] Focus on &#39;server&#39; box during &#39;New Connection&#39; [\#838](https://github.com/FreeRDP/Remmina/issues/838)</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;- GTK 3.20 VTE3 Remmina shows blank terminal [\#835](https://github.com/FreeRDP/Remmina/issues/835)</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;- How do I select all text in SSH terminal session ? [\#833](https://github.com/FreeRDP/Remmina/issues/833)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;- Add a issues-templates to the project [\#822](https://github.com/FreeRDP/Remmina/issues/822)</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;- Quick Find cleanups [\#791](https://github.com/FreeRDP/Remmina/issues/791)</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;- Remmina crashed when Windows Server TS Session is Remote Controlled [\#621](https://github.com/FreeRDP/Remmina/issues/621)</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;- Quickfind fixes - Close \#791 [\#811](https://github.com/FreeRDP/Remmina/pull/811) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;- 100% CPU Usage [\#842](https://github.com/FreeRDP/Remmina/issues/842)</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;- Screenshot crash under Ubuntu 16.04 [\#836](https://github.com/FreeRDP/Remmina/issues/836)</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;- Remmina main connection window loose it&#39;s minimum height when the toolbar is hidden [\#829](https://github.com/FreeRDP/Remmina/issues/829)</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;- Unable to connect to Win7 PCs via RDESKTOP with Remmina 1.2.0-rcgit.11 [\#823](https://github.com/FreeRDP/Remmina/issues/823)</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;- Problem with changing key assignment in the &quot;Keyboard&quot; tab \(rcgit.11\) [\#819](https://github.com/FreeRDP/Remmina/issues/819)</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;- Remmina forces its windows to appear at the center of the screen [\#817](https://github.com/FreeRDP/Remmina/issues/817)</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;- Quick Find cleanups [\#791](https://github.com/FreeRDP/Remmina/issues/791)</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;- Quickfind fixes - Close \\#791 [\#811](https://github.com/FreeRDP/Remmina/pull/811) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;**Closed issues:**</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;- Can&#39;t move tabs between windows [\#861](https://github.com/FreeRDP/Remmina/issues/861)</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;- Ctrl + c will not stop processes anymore \(SSH\) [\#858](https://github.com/FreeRDP/Remmina/issues/858)</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;- Continual flicker due to redraw \(VNC from Windows to Ubuntu\) [\#857](https://github.com/FreeRDP/Remmina/issues/857)</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;- vim doesn&#39;t look well in fullscreen mode [\#856](https://github.com/FreeRDP/Remmina/issues/856)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;- Quick find is slow with a lot of profiles [\#852](https://github.com/FreeRDP/Remmina/issues/852)</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;- Cannot break from a command using CTRL + C since enhancement 833 was implemented [\#847](https://github.com/FreeRDP/Remmina/issues/847)</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;- Cannot redirect microphone to VDI- Win10 HyperV- Raspberry Pi3- Rasbian Jessie [\#846](https://github.com/FreeRDP/Remmina/issues/846)</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;- Drop libvte-2.90 support? [\#843](https://github.com/FreeRDP/Remmina/issues/843)</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;- Crashing after update [\#840](https://github.com/FreeRDP/Remmina/issues/840)</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;- Please make survey &amp; webkit-gtk dependency optional [\#812](https://github.com/FreeRDP/Remmina/issues/812)</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;- Japanese keyboard mapping [\#805](https://github.com/FreeRDP/Remmina/issues/805)</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;- Remmina crashes taking a screenshot [\#803](https://github.com/FreeRDP/Remmina/issues/803)</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;- Remmina crash on start [\#800](https://github.com/FreeRDP/Remmina/issues/800)</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;- \\tsclient shares list blank files and folders [\#799](https://github.com/FreeRDP/Remmina/issues/799)</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;- Remmina Crashes [\#797](https://github.com/FreeRDP/Remmina/issues/797)</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;- Can&#39;t hear remote audio \(local\) [\#790](https://github.com/FreeRDP/Remmina/issues/790)</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;- RDP Connection fails, but only the first time [\#789](https://github.com/FreeRDP/Remmina/issues/789)</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;- Interface bug: edit window [\#491](https://github.com/FreeRDP/Remmina/issues/491)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;- Fix a few typos in README.md [\#851](https://github.com/FreeRDP/Remmina/pull/851) ([ivuk](https://github.com/ivuk))</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;- Focus server box [\#845](https://github.com/FreeRDP/Remmina/pull/845) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;- Screenshot segfault [\#841](https://github.com/FreeRDP/Remmina/pull/841) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;- Vte improvements - popup menu and terminal selection [\#834](https://github.com/FreeRDP/Remmina/pull/834) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;- fix loadbalanceinfo in import [\#828](https://github.com/FreeRDP/Remmina/pull/828) ([koter84](https://github.com/koter84))</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;- WM hints and Window positioning [\#827](https://github.com/FreeRDP/Remmina/pull/827) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;- Added issue-template [\#825](https://github.com/FreeRDP/Remmina/pull/825) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;- Update Uzbek translation [\#824](https://github.com/FreeRDP/Remmina/pull/824) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;- Make survey &amp; webkit-gtk dependency optional [\#813](https://github.com/FreeRDP/Remmina/pull/813) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;- VNC - HandleRFBServerMessage return status [\#804](https://github.com/FreeRDP/Remmina/pull/804) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;## [1.2.0.rcgit.11](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.11) (2016-03-17)</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0.rcgit.10...1.2.0.rcgit.11)</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;- Scrollable profile editor [\#801](https://github.com/FreeRDP/Remmina/issues/801)</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;- Screenshot of remote machine \[feature request\] [\#644](https://github.com/FreeRDP/Remmina/issues/644)</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;**Closed issues:**</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;- Remmina is unable to access saved passwords immediately after local PC logon [\#795](https://github.com/FreeRDP/Remmina/issues/795)</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;- 1.2.0-rcgit.10 \(git n/a\) vnc connector not installed [\#794](https://github.com/FreeRDP/Remmina/issues/794)</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;- \[1.2.0-rcgit.9\] Unable to Compile in Centos 7 [\#793](https://github.com/FreeRDP/Remmina/issues/793)</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;- Remmina crash on having files or images in clipboard [\#792](https://github.com/FreeRDP/Remmina/issues/792)</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;- Connection search doesn&#39;t work [\#773](https://github.com/FreeRDP/Remmina/issues/773)</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;- Remote machine screenshot \[feature request\] \#644 [\#802](https://github.com/FreeRDP/Remmina/pull/802) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;- Don&#39;t unlock keyring when libsecret is &lt; 0.18 [\#796](https://github.com/FreeRDP/Remmina/pull/796) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;## [1.2.0.rcgit.10](https://github.com/FreeRDP/Remmina/tree/1.2.0.rcgit.10) (2016-03-08)</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.9...1.2.0.rcgit.10)</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;- Selected item in the remmina\_main window is lost after editing a profile [\#786](https://github.com/FreeRDP/Remmina/issues/786)</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;- Clipboard + Windows 2008 Server R2 SP1 + Google Chrome [\#583](https://github.com/FreeRDP/Remmina/issues/583)</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;**Closed issues:**</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160;- Is remmina between Ubuntu and Windows 10 secure? [\#782](https://github.com/FreeRDP/Remmina/issues/782)</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;- Latest version of remmina segfaults when closing remmina&#39;s main windows while having an open connection [\#744](https://github.com/FreeRDP/Remmina/issues/744)</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;- Clipboard doesn&#39;t work [\#730](https://github.com/FreeRDP/Remmina/issues/730)</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;- Added ctrl+f to Quick Search to supersed the standard GTK accelerator [\#788](https://github.com/FreeRDP/Remmina/pull/788) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;- Selected item is lost after editing a profile. Closes \#786 [\#787](https://github.com/FreeRDP/Remmina/pull/787) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;- formats is not nulled upon failure [\#781](https://github.com/FreeRDP/Remmina/pull/781) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;- pos\_cache not nulled upon realloc failure [\#780](https://github.com/FreeRDP/Remmina/pull/780) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;- Freebsd support [\#779](https://github.com/FreeRDP/Remmina/pull/779) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;## [1.2.0-rcgit.9](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.9) (2016-02-28)</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.8...1.2.0-rcgit.9)</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160;- Num lock off [\#389](https://github.com/FreeRDP/Remmina/issues/389)</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;**Closed issues:**</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;- Share some usage statistics dialog cannot be disabled!!! [\#772](https://github.com/FreeRDP/Remmina/issues/772)</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;- vnc plugin not found [\#768](https://github.com/FreeRDP/Remmina/issues/768)</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;- Selected file after editing is wrong [\#761](https://github.com/FreeRDP/Remmina/issues/761)</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;- SSH cursor and scrolling / display issues [\#760](https://github.com/FreeRDP/Remmina/issues/760)</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;- NumLock in RDP sessions [\#758](https://github.com/FreeRDP/Remmina/issues/758)</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;- Buttons not shown inside RDP Advanced tab on smal screens [\#757](https://github.com/FreeRDP/Remmina/issues/757)</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;- Can&#39;t SSH tunnel over Remmina \(RDP\) [\#756](https://github.com/FreeRDP/Remmina/issues/756)</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;- Remmina closes unexpectedly [\#753](https://github.com/FreeRDP/Remmina/issues/753)</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;- Feature Request: After Command \(opposite to precommand\) [\#746](https://github.com/FreeRDP/Remmina/issues/746)</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;- mistake. [\#739](https://github.com/FreeRDP/Remmina/issues/739)</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;- Currently rdp\_event.c.o can not be built [\#732](https://github.com/FreeRDP/Remmina/issues/732)</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;- Scrolled fullscreen mode does not work [\#729](https://github.com/FreeRDP/Remmina/issues/729)</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;- RDP session is dropped from time to time, reproducible situation. [\#723](https://github.com/FreeRDP/Remmina/issues/723)</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160;- RDP plugin fails to load [\#721](https://github.com/FreeRDP/Remmina/issues/721)</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;- \[Info Req\] RDP v7 [\#719](https://github.com/FreeRDP/Remmina/issues/719)</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;- Suddenly fails to RDP to any server [\#717](https://github.com/FreeRDP/Remmina/issues/717)</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;- Constantly and often breaks the connection. It started about 1-2 months ago. [\#710](https://github.com/FreeRDP/Remmina/issues/710)</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;- No RDP connection after latest update Ubuntu [\#657](https://github.com/FreeRDP/Remmina/issues/657)</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;- Fullscreen windows open on the monitor next to them [\#580](https://github.com/FreeRDP/Remmina/issues/580)</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;- fullscreen multiple screens [\#577](https://github.com/FreeRDP/Remmina/issues/577)</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;- Missing controls tab from top/center of window in Gnome [\#481](https://github.com/FreeRDP/Remmina/issues/481)</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;- ALT + F4 closes Remina remote Window [\#125](https://github.com/FreeRDP/Remmina/issues/125)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;- Autoreconnect [\#776](https://github.com/FreeRDP/Remmina/pull/776) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160;- Fix for a black border \(GTK undershoot\) appering from GTK 3.18 [\#767](https://github.com/FreeRDP/Remmina/pull/767) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;- Using compact settings for RDP plugin closes Issue 757 [\#759](https://github.com/FreeRDP/Remmina/pull/759) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;- Fixes for issue \#744 [\#752](https://github.com/FreeRDP/Remmina/pull/752) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;- adjust lenght of strings [\#749](https://github.com/FreeRDP/Remmina/pull/749) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;- Feature Request: After Command \#746 [\#748](https://github.com/FreeRDP/Remmina/pull/748) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;- Fix compiler warnings [\#743](https://github.com/FreeRDP/Remmina/pull/743) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;- rdp-plugin requires x11 libraries [\#742](https://github.com/FreeRDP/Remmina/pull/742) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;- Match remmina\_survey\_start declarations [\#741](https://github.com/FreeRDP/Remmina/pull/741) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;- Exec if only when &quot;name&quot; has been initialized [\#740](https://github.com/FreeRDP/Remmina/pull/740) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;- XDG - make remmina user data dir global [\#738](https://github.com/FreeRDP/Remmina/pull/738) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;- Fixes for Ubuntu 14.04 compatibility [\#737](https://github.com/FreeRDP/Remmina/pull/737) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;- Make tool\_hello\_world compliant with our plugins model [\#735](https://github.com/FreeRDP/Remmina/pull/735) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;- Added user survey, community links and fixed all deprecations warnings [\#734](https://github.com/FreeRDP/Remmina/pull/734) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;- Align library name with latest freerdp master [\#731](https://github.com/FreeRDP/Remmina/pull/731) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;- Added microphone redirection [\#727](https://github.com/FreeRDP/Remmina/pull/727) ([akallabeth](https://github.com/akallabeth))</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;- RDP plugin update client main loop to new API [\#726](https://github.com/FreeRDP/Remmina/pull/726) ([akallabeth](https://github.com/akallabeth))</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;- Make Remmina really exit when you choose Exit or Quit [\#720](https://github.com/FreeRDP/Remmina/pull/720) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;- Remove some compiler warnings [\#716](https://github.com/FreeRDP/Remmina/pull/716) ([jviksell](https://github.com/jviksell))</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;## [1.2.0-rcgit.8](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.8) (2016-01-04)</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.7...1.2.0-rcgit.8)</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;**Closed issues:**</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;- tot remmina crashes when marking text in the client iff clipboard sync is disabled [\#695](https://github.com/FreeRDP/Remmina/issues/695)</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;- Fix a bunch of memleaks [\#712](https://github.com/FreeRDP/Remmina/pull/712) ([jviksell](https://github.com/jviksell))</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;## [1.2.0-rcgit.7](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.7) (2015-12-17)</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.6...1.2.0-rcgit.7)</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;- Icons not shown at the correct size in the main window&#39;s listview/treeview [\#701](https://github.com/FreeRDP/Remmina/issues/701)</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160;- Reduce main window icons size fixes \#701 [\#702](https://github.com/FreeRDP/Remmina/pull/702) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;**Closed issues:**</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;- VNC window immediately closes after connection attempt [\#699](https://github.com/FreeRDP/Remmina/issues/699)</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;- Moved to markdown and updated text. [\#705](https://github.com/FreeRDP/Remmina/pull/705) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;- Vnc exit with 8bpp issue699 [\#704](https://github.com/FreeRDP/Remmina/pull/704) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;- Temporay fixes \#699 - Set default color depth to 15 \(high colors\) [\#703](https://github.com/FreeRDP/Remmina/pull/703) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;## [1.2.0-rcgit.6](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.6) (2015-12-10)</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.2.0-rcgit.5...1.2.0-rcgit.6)</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;- Migrate from libgnome-keyring to libsecret [\#652](https://github.com/FreeRDP/Remmina/issues/652)</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;- Move ~/.remmina to a proper place \(follow XDG standards\) [\#197](https://github.com/FreeRDP/Remmina/issues/197)</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;- X2goplugin refactoring closes \#603 [\#655](https://github.com/FreeRDP/Remmina/pull/655) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;**Closed issues:**</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;- Remmina windows open behind other desktop windows [\#691](https://github.com/FreeRDP/Remmina/issues/691)</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;- Indicator menu gone? [\#688](https://github.com/FreeRDP/Remmina/issues/688)</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;- fatal error: gst/gstconfig.h: No such file or directory [\#678](https://github.com/FreeRDP/Remmina/issues/678)</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160;- remmina in gnome wayland \_XInternAtom\(\): remmina killed by SIGSEGV [\#677](https://github.com/FreeRDP/Remmina/issues/677)</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;- remmina\_rdp\_cliprdr\_monitor\_ready\(\): remmina killed by SIGSEGV [\#676](https://github.com/FreeRDP/Remmina/issues/676)</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;- remmina\_rdp\_event\_release\_key\(\): remmina killed by SIGSEGV [\#675](https://github.com/FreeRDP/Remmina/issues/675)</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;- remmina: remmina\_rdp\_event\_update\_scale\_factor\(\): remmina killed by SIGSEGV [\#674](https://github.com/FreeRDP/Remmina/issues/674)</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;- remmina: ringbuffer\_destroy\(\): remmina killed by SIGSEGV [\#673](https://github.com/FreeRDP/Remmina/issues/673)</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;- remmina: remmina\_connection\_holder\_toolbar\_preferences\_popdown\(\): remmina killed by SIGSEGV [\#672](https://github.com/FreeRDP/Remmina/issues/672)</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;- remmina: \_g\_log\_abort\(\): remmina killed by SIGTRAP [\#671](https://github.com/FreeRDP/Remmina/issues/671)</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;- Concurrent remote desktop sessions on Win XP Pro [\#670](https://github.com/FreeRDP/Remmina/issues/670)</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;- Optimize screen space usage [\#661](https://github.com/FreeRDP/Remmina/issues/661)</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;- clipboard not synchonizing between RDP sessions and host [\#556](https://github.com/FreeRDP/Remmina/issues/556)</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;- FTBS 1.0.0 : ld - undefined reference to symbol &#39;g\_module\_symbol&#39; -- links.txt missing necessary libraries [\#182](https://github.com/FreeRDP/Remmina/issues/182)</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;- Avoiding conditional directives that break statements [\#698](https://github.com/FreeRDP/Remmina/pull/698) ([RomeroMalaquias](https://github.com/RomeroMalaquias))</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;- Fix memory leaks in RDP plugin, fix window width in remmina\_connection\_window [\#690](https://github.com/FreeRDP/Remmina/pull/690) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;- Disable wayland backend [\#680](https://github.com/FreeRDP/Remmina/pull/680) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;- Migrate from libgnome-keyring to libsecret \#652 - Inital import [\#653](https://github.com/FreeRDP/Remmina/pull/653) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;## [1.2.0-rcgit.5](https://github.com/FreeRDP/Remmina/tree/1.2.0-rcgit.5) (2015-11-02)</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.4...1.2.0-rcgit.5)</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;- Feature request: Provide a way to disable parsing of .ssh/config [\#648](https://github.com/FreeRDP/Remmina/issues/648)</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;- Toolbar drag and drop, for issue \#661 [\#668](https://github.com/FreeRDP/Remmina/pull/668) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;**Closed issues:**</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160;- rdp plugin does not load [\#667](https://github.com/FreeRDP/Remmina/issues/667)</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160;- Remmina crashed with core dump while sharing RDP folder [\#659](https://github.com/FreeRDP/Remmina/issues/659)</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;- High DPI display scaling [\#654](https://github.com/FreeRDP/Remmina/issues/654)</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;- RDP Plugin Issue on Raspberry PI \(ARMv7\) [\#651](https://github.com/FreeRDP/Remmina/issues/651)</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;- Moving to an embedded version of FreeRDP [\#599](https://github.com/FreeRDP/Remmina/issues/599)</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;- please add support multi-hop ssh tunnels / read .ssh/config [\#302](https://github.com/FreeRDP/Remmina/issues/302)</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;- SSH Tunneling [\#96](https://github.com/FreeRDP/Remmina/issues/96)</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;- Feature Request: SSH Tunnel with no authentication [\#83](https://github.com/FreeRDP/Remmina/issues/83)</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;- Makes parsing of ~/.ssh/config optional closes \#648 [\#650](https://github.com/FreeRDP/Remmina/pull/650) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;## [v1.2.0-rcgit.4](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.4) (2015-09-23)</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.3...v1.2.0-rcgit.4)</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;- Remmina crashes using the Mir GTK backend [\#554](https://github.com/FreeRDP/Remmina/issues/554)</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;- Prior connections commands are executed in background [\#553](https://github.com/FreeRDP/Remmina/issues/553)</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;- Quick Search Textbox is Only 8 Characters Wide [\#547](https://github.com/FreeRDP/Remmina/issues/547)</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;- \[feature request\] agent forwarding with ssh! [\#395](https://github.com/FreeRDP/Remmina/issues/395)</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;- How about support XDG dir structure [\#129](https://github.com/FreeRDP/Remmina/issues/129)</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160;- SSH and VTE imporvements [\#642](https://github.com/FreeRDP/Remmina/pull/642) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160;- Gtk3 - Deprecation fixes [\#637](https://github.com/FreeRDP/Remmina/pull/637) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160;- Prior connections commands are executed in background [\#553](https://github.com/FreeRDP/Remmina/issues/553)</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160;- Remmina fullscreen is wrongly placed - not real fullscreen [\#525](https://github.com/FreeRDP/Remmina/issues/525)</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;- SSH not passing locale info [\#331](https://github.com/FreeRDP/Remmina/issues/331)</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;**Closed issues:**</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;- Remmina VS freerdp on 1.2.0 version [\#639](https://github.com/FreeRDP/Remmina/issues/639)</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;- Remmina does not connect to remote host by FQDN [\#632](https://github.com/FreeRDP/Remmina/issues/632)</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;- freeze when kvm setup finish [\#630](https://github.com/FreeRDP/Remmina/issues/630)</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;- Dependency problem on Ubuntu PPA remmina-next [\#629](https://github.com/FreeRDP/Remmina/issues/629)</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;- Remmina preferences are not being saved [\#627](https://github.com/FreeRDP/Remmina/issues/627)</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;- Redirection of audio to local fails [\#626](https://github.com/FreeRDP/Remmina/issues/626)</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;- RDP component not installed [\#620](https://github.com/FreeRDP/Remmina/issues/620)</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160;- Wrong path in /usr/share/applications/remmina.desktop since version 1.1.1-1+766+next+201507170316~ubuntu14.04.1 [\#616](https://github.com/FreeRDP/Remmina/issues/616)</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160;- Reverse layout switching doesn&#39;t work [\#605](https://github.com/FreeRDP/Remmina/issues/605)</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;- Cursor disappear and doesn&#39;t refresh in RDP [\#598](https://github.com/FreeRDP/Remmina/issues/598)</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160;- support VNC on UNIX sockets [\#596](https://github.com/FreeRDP/Remmina/issues/596)</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;- Problem with RDP graphics [\#591](https://github.com/FreeRDP/Remmina/issues/591)</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;- Crash when using TortoiseGit over a remote Windows through Remmina [\#582](https://github.com/FreeRDP/Remmina/issues/582)</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;- Remmina 1.1.2 does not compile against FreeRDP 1.0.2 [\#579](https://github.com/FreeRDP/Remmina/issues/579)</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;- Sorting of hosts in notification pop-up area should not be case sensitive [\#574](https://github.com/FreeRDP/Remmina/issues/574)</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;- How to add custom keyboard layouts to RDP? [\#573](https://github.com/FreeRDP/Remmina/issues/573)</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;- provide Gnome 3 indicator [\#570](https://github.com/FreeRDP/Remmina/issues/570)</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;- New grouping mode: All-In-One [\#569](https://github.com/FreeRDP/Remmina/issues/569)</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;- Remmina nx won&#39;t connect with Ubuntu 15.04 [\#567](https://github.com/FreeRDP/Remmina/issues/567)</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160;- Missing connection icons in tray menu [\#563](https://github.com/FreeRDP/Remmina/issues/563)</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160;- undefined symbol: freerdp\_channels\_pop\_event in remmina-plugin-rdp.so [\#558](https://github.com/FreeRDP/Remmina/issues/558)</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160;- Can&#39;t Sustain &quot;Scale and Fill client window&quot; Preference [\#557](https://github.com/FreeRDP/Remmina/issues/557)</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;- webbrowser support [\#551](https://github.com/FreeRDP/Remmina/issues/551)</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;- VNC connection crashes Remmina [\#546](https://github.com/FreeRDP/Remmina/issues/546)</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;- Remmina doesn&#39;t copy cells from libreoffice to WS2003R2 [\#541](https://github.com/FreeRDP/Remmina/issues/541)</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160;- =net-misc/remmina-1.1.2 ssh quick connect always ask password, even if server don&#39;t support it [\#539](https://github.com/FreeRDP/Remmina/issues/539)</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;- Bring back Scaling WITHOUT respecting the remote destkop aspect ratio [\#537](https://github.com/FreeRDP/Remmina/issues/537)</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160;- Remmina consistently crashes when I log out of an RDP Gateway session. [\#530](https://github.com/FreeRDP/Remmina/issues/530)</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160;- remmina: gtk\_drag\_source\_info\_destroy\(\): remmina killed by SIGABRT [\#529](https://github.com/FreeRDP/Remmina/issues/529)</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;- Add ability to run an arbitrary command prior to connection. [\#520](https://github.com/FreeRDP/Remmina/issues/520)</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;- ssh key selection overwritten on edit [\#271](https://github.com/FreeRDP/Remmina/issues/271)</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;- VNC over SSH - Support for multiple keys for SSH authentication [\#256](https://github.com/FreeRDP/Remmina/issues/256)</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;- RDP: No caret on explorer address bar and white squares instead of small icons [\#251](https://github.com/FreeRDP/Remmina/issues/251)</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160;- It does not move the text to scroll [\#208](https://github.com/FreeRDP/Remmina/issues/208)</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;- Crash in BitBlt\_SRCAND\_32bpp, BitBlt\_32bpp [\#186](https://github.com/FreeRDP/Remmina/issues/186)</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160;- Can&#39;t attach to Windows console [\#177](https://github.com/FreeRDP/Remmina/issues/177)</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;- RDP disconnect from within Windows doesn&#39;t close session for 15-20 seconds [\#167](https://github.com/FreeRDP/Remmina/issues/167)</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;- No shared folder when connecting to console [\#161](https://github.com/FreeRDP/Remmina/issues/161)</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;- drive-client not copied/loaded properly [\#147](https://github.com/FreeRDP/Remmina/issues/147)</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;- Smartcard &amp; sound redirection error [\#121](https://github.com/FreeRDP/Remmina/issues/121)</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;- Possibility to enter a remote command in SSH when I use it for VNC [\#94](https://github.com/FreeRDP/Remmina/issues/94)</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;- openpty\(3\) support for Remmina [\#73](https://github.com/FreeRDP/Remmina/issues/73)</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;- libssh fixes - SSH\_OPTIONS\_LOG\_VERBOSITY [\#640](https://github.com/FreeRDP/Remmina/pull/640) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;- Updated AUTHORS list [\#636](https://github.com/FreeRDP/Remmina/pull/636) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;- Improve vnc rendering speed by using cairo surface directly [\#635](https://github.com/FreeRDP/Remmina/pull/635) ([mar-kolya](https://github.com/mar-kolya))</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;- CMake rules adjustments when compiling under linux [\#634](https://github.com/FreeRDP/Remmina/pull/634) ([fundawang](https://github.com/fundawang))</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160;- Remove some legacy Xorg code, fixes \#554 [\#622](https://github.com/FreeRDP/Remmina/pull/622) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;- fix regression introduced by 190ea2f98ab0443b8a05f70c79e2af037f9fca94 [\#617](https://github.com/FreeRDP/Remmina/pull/617) ([zfil](https://github.com/zfil))</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;- remmina.desktop: Use full path to execute remmina [\#612](https://github.com/FreeRDP/Remmina/pull/612) ([lanoxx](https://github.com/lanoxx))</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;- remmina.desktop: Use full path to execute remmina [\#607](https://github.com/FreeRDP/Remmina/pull/607) ([lanoxx](https://github.com/lanoxx))</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;- Filling out LoadBalanceInfo in the RDP settings struct [\#593](https://github.com/FreeRDP/Remmina/pull/593) ([qwertos](https://github.com/qwertos))</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;- Exception when precommad in NULL. Reference \#591 [\#592](https://github.com/FreeRDP/Remmina/pull/592) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;- Xdg folders fixes \#129 \#197 [\#590](https://github.com/FreeRDP/Remmina/pull/590) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;- coredump when precommand is not quoted. Resolve \#520 [\#589](https://github.com/FreeRDP/Remmina/pull/589) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;- Support for ~/.ssh/config closes \#235 , libssh does not support most of the ssh options [\#588](https://github.com/FreeRDP/Remmina/pull/588) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;- Revert &quot;License update&quot; [\#587](https://github.com/FreeRDP/Remmina/pull/587) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;- Revert &quot;License update&quot; [\#586](https://github.com/FreeRDP/Remmina/pull/586) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;- Remmina freerdp subtree + fixes for FreeBSD [\#585](https://github.com/FreeRDP/Remmina/pull/585) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160;- License update [\#581](https://github.com/FreeRDP/Remmina/pull/581) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;- Fix GTK+2 build failure [\#565](https://github.com/FreeRDP/Remmina/pull/565) ([heptalium](https://github.com/heptalium))</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;- Prior Connection Command [\#562](https://github.com/FreeRDP/Remmina/pull/562) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;- Update Uzbek translation [\#561](https://github.com/FreeRDP/Remmina/pull/561) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;- Update for GTK+2 port [\#555](https://github.com/FreeRDP/Remmina/pull/555) ([repzilon](https://github.com/repzilon))</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;## [v1.2.0-rcgit.3](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.3) (2015-04-14)</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.2...v1.2.0-rcgit.3)</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160;</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;**Implemented enhancements:**</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160;- Show or hide the icons near the menu [\#504](https://github.com/FreeRDP/Remmina/issues/504)</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;- Show or hide the icons near the buttons [\#503](https://github.com/FreeRDP/Remmina/issues/503)</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;- Show or hide the icons near the buttons and the menus [\#505](https://github.com/FreeRDP/Remmina/pull/505) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;- Fixes FreeRDP/Remmina\#473 - Customize button in the connection editor should show the resolutions dialog [\#501](https://github.com/FreeRDP/Remmina/pull/501) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;- The quick search doesn&#39;t list the folders [\#497](https://github.com/FreeRDP/Remmina/pull/497) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;- Enable and disable buttons in the string list dialog [\#496](https://github.com/FreeRDP/Remmina/pull/496) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;- Added Ctrl+F accelerator for quick search entry [\#494](https://github.com/FreeRDP/Remmina/pull/494) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160;- Removed the RemminaMain GType and used a static RemminaMain struct instead [\#461](https://github.com/FreeRDP/Remmina/pull/461) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;- Tab all connections [\#548](https://github.com/FreeRDP/Remmina/issues/548)</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;- Problem with shared folder on Windows Server 2012 [\#523](https://github.com/FreeRDP/Remmina/issues/523)</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;- Can&#39;t share a folder in KDE, due to Gtk issue [\#518](https://github.com/FreeRDP/Remmina/issues/518)</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;- Connection to all servers stopped working with last update of remmina-next PPA [\#506](https://github.com/FreeRDP/Remmina/issues/506)</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;- Unsupported properties on GTK 3.10 [\#486](https://github.com/FreeRDP/Remmina/issues/486)</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;- Buttons in the string list dialog [\#474](https://github.com/FreeRDP/Remmina/issues/474)</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;- Customize button in the connection editor should show the resolutions dialog [\#473](https://github.com/FreeRDP/Remmina/issues/473)</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;- The search shouldn&#39;t show every group in the list [\#471](https://github.com/FreeRDP/Remmina/issues/471)</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;- Enable the use of the menu key [\#470](https://github.com/FreeRDP/Remmina/issues/470)</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;- Connections list is not refreshed upon update or copy \(duplicate an existing connection\) [\#460](https://github.com/FreeRDP/Remmina/issues/460)</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;- Double-clicking a column header to sort list of saved connections actually attempts connection [\#250](https://github.com/FreeRDP/Remmina/issues/250)</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;- Fix small memory leaks and a NULL ptr dereference. [\#500](https://github.com/FreeRDP/Remmina/pull/500) ([KyleSanderson](https://github.com/KyleSanderson))</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;- Show the popup menu by pressing the menu key [\#495](https://github.com/FreeRDP/Remmina/pull/495) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;- Use the correct label for the font section [\#466](https://github.com/FreeRDP/Remmina/pull/466) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;**Closed issues:**</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;- Remmina main window can be opened multiple times [\#543](https://github.com/FreeRDP/Remmina/issues/543)</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;- =net-misc/remmina-1.1.2 Quick Connect should filter supported protocols similiarly with profile manager [\#540](https://github.com/FreeRDP/Remmina/issues/540)</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;- Remmina not showing entire desktop, Windows Remote Desktop Connection does. [\#534](https://github.com/FreeRDP/Remmina/issues/534)</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;- Copy and Paste between local and remote desktops failing in Ubuntu 15.04 [\#533](https://github.com/FreeRDP/Remmina/issues/533)</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;- Remmina does not report Host key Changed. [\#532](https://github.com/FreeRDP/Remmina/issues/532)</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;- compile with FreeRDP support failed on Funtoo Linux [\#526](https://github.com/FreeRDP/Remmina/issues/526)</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;- Exit VMWare Console via Remmina in 1.2.0 [\#522](https://github.com/FreeRDP/Remmina/issues/522)</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;- RDP Quality is not being stored [\#521](https://github.com/FreeRDP/Remmina/issues/521)</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;- Add the ability to place the floating toolbar on other sides of the screen [\#493](https://github.com/FreeRDP/Remmina/issues/493)</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;- Invisible toolbar in fullscreen mode grayed out [\#492](https://github.com/FreeRDP/Remmina/issues/492)</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;- Remarks to some setting&#39;s labels [\#489](https://github.com/FreeRDP/Remmina/issues/489)</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;- Open resolution list from connection editor [\#487](https://github.com/FreeRDP/Remmina/issues/487)</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;- Missing accelerators for search and quick connect entries [\#475](https://github.com/FreeRDP/Remmina/issues/475)</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160;- Only one host key per domain name is allowed [\#465](https://github.com/FreeRDP/Remmina/issues/465)</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;- Latest changes causes compilation errors [\#464](https://github.com/FreeRDP/Remmina/issues/464)</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;- Host Name checking is erroneously case sensitive for RDP fingerprint [\#462](https://github.com/FreeRDP/Remmina/issues/462)</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;- Unable to connect &quot;protocol security negotiation failure&quot; [\#453](https://github.com/FreeRDP/Remmina/issues/453)</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;- Remmina crashes when using multiple RDP connections and closing one or more. [\#449](https://github.com/FreeRDP/Remmina/issues/449)</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;- Provide a way to send keys to the server connections [\#445](https://github.com/FreeRDP/Remmina/issues/445)</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;- Does \(or will\) Remmina support multi monitor RDP? [\#442](https://github.com/FreeRDP/Remmina/issues/442)</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;- xfreerdrp Crashes with segfault in find\_keyboard\_layout\_in\_xorg\_rules [\#441](https://github.com/FreeRDP/Remmina/issues/441)</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;- NX connection to freenx-client with custom key [\#436](https://github.com/FreeRDP/Remmina/issues/436)</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;- Unable to connect using \\server-name [\#435](https://github.com/FreeRDP/Remmina/issues/435)</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;- Regression: &quot;Unknown authentication scheme from VNC server: 18&quot; [\#433](https://github.com/FreeRDP/Remmina/issues/433)</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;- Copy file rdp [\#430](https://github.com/FreeRDP/Remmina/issues/430)</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;- Connection closes right away when trying to connect to Mac [\#427](https://github.com/FreeRDP/Remmina/issues/427)</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;- RDP clipboard and shared folder issue [\#406](https://github.com/FreeRDP/Remmina/issues/406)</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;- Crush RDP connect when copy file into clipboard on RDP server and clipboard sync ON [\#401](https://github.com/FreeRDP/Remmina/issues/401)</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;- Compilation failed on ubuntu 14.04 and 14.10 [\#381](https://github.com/FreeRDP/Remmina/issues/381)</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;- vertical text issue with excel [\#345](https://github.com/FreeRDP/Remmina/issues/345)</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;- Failure refresh image [\#341](https://github.com/FreeRDP/Remmina/issues/341)</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;- Segfault in rf\_Pointer\_Free of rdp plugin [\#269](https://github.com/FreeRDP/Remmina/issues/269)</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;- Auto-fit stucks the window [\#257](https://github.com/FreeRDP/Remmina/issues/257)</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;- Remmina-plugins-rdp fails to compile correctly with the latest version of gcc &amp; freerdp [\#244](https://github.com/FreeRDP/Remmina/issues/244)</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;- Remmina has stopped showing shared folders [\#243](https://github.com/FreeRDP/Remmina/issues/243)</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;- Lost toolbar in keyboard captured mode [\#242](https://github.com/FreeRDP/Remmina/issues/242)</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;- Better user credentials management [\#229](https://github.com/FreeRDP/Remmina/issues/229)</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;- Command Line Arguments [\#227](https://github.com/FreeRDP/Remmina/issues/227)</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160;- Copy paste clipboard does not work [\#207](https://github.com/FreeRDP/Remmina/issues/207)</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;- remmina not compiling on cent os 6.4 x64 [\#201](https://github.com/FreeRDP/Remmina/issues/201)</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;- sometimes gives black screen [\#198](https://github.com/FreeRDP/Remmina/issues/198)</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;- remmina remote desktop -- erratic partial display issue [\#181](https://github.com/FreeRDP/Remmina/issues/181)</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;- remmina incorrectly handles saved terminal size for ssh-connection [\#169](https://github.com/FreeRDP/Remmina/issues/169)</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;- net-misc/remmina-1.0.0\_p20121004 fails rsa-key auth on X11Forwarding-enabled OpenSSH server [\#168](https://github.com/FreeRDP/Remmina/issues/168)</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;- Remmina will not load RDP plugins [\#165](https://github.com/FreeRDP/Remmina/issues/165)</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;- cmake install prefix bug [\#160](https://github.com/FreeRDP/Remmina/issues/160)</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;- Graphical glitch with Total Commander and Remmina [\#157](https://github.com/FreeRDP/Remmina/issues/157)</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;- An Archer&#39;s tale - Unable to compile, compilation, followed by inability to path plugins. [\#152](https://github.com/FreeRDP/Remmina/issues/152)</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;- display off-center upon connection to RDP hosts [\#143](https://github.com/FreeRDP/Remmina/issues/143)</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;- RDP refresh/redraw problem [\#138](https://github.com/FreeRDP/Remmina/issues/138)</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;- Blank/black window contents when opening a new connection [\#127](https://github.com/FreeRDP/Remmina/issues/127)</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;- patch for launching external tools [\#126](https://github.com/FreeRDP/Remmina/issues/126)</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;- New connection type: VNC Reverse Connection [\#108](https://github.com/FreeRDP/Remmina/issues/108)</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;- Remote screen has wrong offset when using hide-toolbar [\#103](https://github.com/FreeRDP/Remmina/issues/103)</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;- Remmina Won&#39;t Maintain Multiple RDP Sessions at the Same Time [\#99](https://github.com/FreeRDP/Remmina/issues/99)</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;- Screen capture software crashes remmina client [\#98](https://github.com/FreeRDP/Remmina/issues/98)</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160;- SSH terminal color customization [\#91](https://github.com/FreeRDP/Remmina/issues/91)</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160;- \[Enhancement\] Start in background [\#85](https://github.com/FreeRDP/Remmina/issues/85)</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;- SSH Freeze [\#84](https://github.com/FreeRDP/Remmina/issues/84)</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;- Initial screen wonky opening VNC client [\#69](https://github.com/FreeRDP/Remmina/issues/69)</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;- Issues with viewport fullscreen [\#44](https://github.com/FreeRDP/Remmina/issues/44)</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;- make sessions in the NX session dialog double-clickable [\#16](https://github.com/FreeRDP/Remmina/issues/16)</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;- Added an option to execute commands just before to connect to a remote server closes \#520 [\#552](https://github.com/FreeRDP/Remmina/pull/552) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;- Uzbek Cyrillic: use proper naming convention for filename [\#549](https://github.com/FreeRDP/Remmina/pull/549) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;- Uzbek Cyrillic: Add configure keystrokes and XDMCP feature text [\#538](https://github.com/FreeRDP/Remmina/pull/538) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;- Remmina 1.2.0-rcgit.3: new floating toolbar for GTK&gt;=3.10 and many other fixes [\#536](https://github.com/FreeRDP/Remmina/pull/536) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;- Fix for notebook tab drag and drop, fixes issues \#529 \#478 [\#531](https://github.com/FreeRDP/Remmina/pull/531) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;- Fix race condition in VNC event queue [\#519](https://github.com/FreeRDP/Remmina/pull/519) ([mar-kolya](https://github.com/mar-kolya))</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;- Uzbek Cyrillic: apply latest additions [\#509](https://github.com/FreeRDP/Remmina/pull/509) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;- Implemented custom keystrokes for plugins [\#508](https://github.com/FreeRDP/Remmina/pull/508) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160;- Add translations for Uzbek Cyrillic [\#502](https://github.com/FreeRDP/Remmina/pull/502) ([ozbek](https://github.com/ozbek))</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;- Update Spanish translation [\#490](https://github.com/FreeRDP/Remmina/pull/490) ([fitojb](https://github.com/fitojb))</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;- Fixes FreeRDP/Remmina\#460 [\#463](https://github.com/FreeRDP/Remmina/pull/463) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;- Updated German translation [\#458](https://github.com/FreeRDP/Remmina/pull/458) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;- Update es.po [\#455](https://github.com/FreeRDP/Remmina/pull/455) ([agdg](https://github.com/agdg))</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;- Update es.po [\#454](https://github.com/FreeRDP/Remmina/pull/454) ([agdg](https://github.com/agdg))</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160;- Updated FSF address [\#451](https://github.com/FreeRDP/Remmina/pull/451) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;- Rework of scaler code [\#447](https://github.com/FreeRDP/Remmina/pull/447) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;- Added feature to send Ctrl+Alt+Del keys [\#446](https://github.com/FreeRDP/Remmina/pull/446) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;- Moved the double click event and the enter buttons press in the row-activated signal handler [\#438](https://github.com/FreeRDP/Remmina/pull/438) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;- Handle double click on the NX session rows to activate the default response [\#437](https://github.com/FreeRDP/Remmina/pull/437) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;- SSH terminal color customization [\#432](https://github.com/FreeRDP/Remmina/pull/432) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;- remmina: Actually install its headers. [\#428](https://github.com/FreeRDP/Remmina/pull/428) ([rakuco](https://github.com/rakuco))</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;## [v1.2.0-rcgit.2](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.2) (2014-12-30)</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.2...v1.2.0-rcgit.2)</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;- Position of popup menu is wrong [\#423](https://github.com/FreeRDP/Remmina/issues/423)</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;- Remmina crashes exporting a remote desktop file [\#412](https://github.com/FreeRDP/Remmina/issues/412)</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;- \[BUG\] RDP Preferences don&#39;t saving [\#391](https://github.com/FreeRDP/Remmina/issues/391)</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160;- Command line help not showing all the options [\#327](https://github.com/FreeRDP/Remmina/issues/327)</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;**Closed issues:**</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;- Remmina crashes after Ctrl+X in a RDP session [\#422](https://github.com/FreeRDP/Remmina/issues/422)</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;- Remmina Crashes During RDP Session when Context Menu Item Clicked [\#418](https://github.com/FreeRDP/Remmina/issues/418)</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;- Host key change not indicated in Remmina GUI [\#407](https://github.com/FreeRDP/Remmina/issues/407)</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;- Copy/paste inop Windows to Mint 17 [\#404](https://github.com/FreeRDP/Remmina/issues/404)</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;- remmina/src/remmina\_ssh\_plugin.h should also check for HAVE\_LIBVTE [\#394](https://github.com/FreeRDP/Remmina/issues/394)</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;- I have to click on &quot;Resize the window to fit remote resolution&quot; to see my RDP session. [\#387](https://github.com/FreeRDP/Remmina/issues/387)</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;- Please create an AppData file for Remmina [\#272](https://github.com/FreeRDP/Remmina/issues/272)</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;- &quot;Protocol plugin RDP is not installed.&quot;/The Application Not Recognizing the RDP Plugin [\#249](https://github.com/FreeRDP/Remmina/issues/249)</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160;- &quot;Overwrite all&quot; button [\#238](https://github.com/FreeRDP/Remmina/issues/238)</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;- .po files cleanup and updates [\#425](https://github.com/FreeRDP/Remmina/pull/425) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160;- Fixes the position of popup menu [\#424](https://github.com/FreeRDP/Remmina/pull/424) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;- Add a &quot;Overwrite all&quot; button [\#420](https://github.com/FreeRDP/Remmina/pull/420) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;- New AppData specification file [\#419](https://github.com/FreeRDP/Remmina/pull/419) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;- Expose the arguments in the help text and parse --help and -h arguments locally [\#417](https://github.com/FreeRDP/Remmina/pull/417) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;- Clipboard: improved handling of time consuming clipboard transfer [\#416](https://github.com/FreeRDP/Remmina/pull/416) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;- Clipboard fixes [\#415](https://github.com/FreeRDP/Remmina/pull/415) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;- Next [\#414](https://github.com/FreeRDP/Remmina/pull/414) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;- GTK3 fixes [\#409](https://github.com/FreeRDP/Remmina/pull/409) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;- GTK3 migration of remmina\_ftp\_client, fixes \#365 [\#408](https://github.com/FreeRDP/Remmina/pull/408) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;- Update Remmina GTK+2 branch to 1.1.2 [\#405](https://github.com/FreeRDP/Remmina/pull/405) ([repzilon](https://github.com/repzilon))</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;## [v1.1.2](https://github.com/FreeRDP/Remmina/tree/v1.1.2) (2014-12-08)</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.1-gtk2...v1.1.2)</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;- NX plugin broken [\#369](https://github.com/FreeRDP/Remmina/issues/369)</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;- XDMCP plugin broken [\#366](https://github.com/FreeRDP/Remmina/issues/366)</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;**Closed issues:**</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160;- resize remote to fit window option [\#398](https://github.com/FreeRDP/Remmina/issues/398)</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160;- Rename README to README.md [\#304](https://github.com/FreeRDP/Remmina/issues/304)</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;- Fix RDP race condifion, fixes \#394 \(missing HAVE\_LIBVTE\), removed unused function [\#399](https://github.com/FreeRDP/Remmina/pull/399) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;- Merge pull request \#396 from FreeRDP/issue366 [\#397](https://github.com/FreeRDP/Remmina/pull/397) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;- Issue \#366 [\#396](https://github.com/FreeRDP/Remmina/pull/396) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;## [v1.1.1-gtk2](https://github.com/FreeRDP/Remmina/tree/v1.1.1-gtk2) (2014-12-07)</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.1...v1.1.1-gtk2)</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;**Closed issues:**</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;- Password isn&#39;t saved [\#388](https://github.com/FreeRDP/Remmina/issues/388)</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;- undefined symbol: freerdp\_event\_new [\#379](https://github.com/FreeRDP/Remmina/issues/379)</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;- Compile failed [\#378](https://github.com/FreeRDP/Remmina/issues/378)</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;- Copy/Paste not working in 0.9.99.1 on Ubuntu 14.10 [\#377](https://github.com/FreeRDP/Remmina/issues/377)</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160;- Crash when not accepting certificate for RDP server [\#375](https://github.com/FreeRDP/Remmina/issues/375)</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;- Can&#39;t get RDP to work in Remmina recently [\#374](https://github.com/FreeRDP/Remmina/issues/374)</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160;- One IP, more RDP ports [\#373](https://github.com/FreeRDP/Remmina/issues/373)</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;- about box reports 1.1.0 rather than 1.1.1 [\#370](https://github.com/FreeRDP/Remmina/issues/370)</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160;- Complete GTK3 migration [\#365](https://github.com/FreeRDP/Remmina/issues/365)</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160;- Build failure with remmina-rdp\_cliprdr\_\* [\#363](https://github.com/FreeRDP/Remmina/issues/363)</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;- Key with code 95 si incorrectly mapped [\#361](https://github.com/FreeRDP/Remmina/issues/361)</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;- SSH connection not working: &quot;ssh\_userauth\_password: Wrong state during pending SSH call&quot; [\#305](https://github.com/FreeRDP/Remmina/issues/305)</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160;</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;- Remmina 1.1.2 [\#402](https://github.com/FreeRDP/Remmina/pull/402) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;- Varoius fixes [\#393](https://github.com/FreeRDP/Remmina/pull/393) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;- install external tools to datadir, not user&#39;s home dir [\#385](https://github.com/FreeRDP/Remmina/pull/385) ([eworm-de](https://github.com/eworm-de))</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;- Fix rdp\_cliprd for freerdp 1.2. Fixes \#378 \#379 [\#384](https://github.com/FreeRDP/Remmina/pull/384) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;- Update to work with vte 2.91 as well as 2.90 [\#372](https://github.com/FreeRDP/Remmina/pull/372) ([iainlane](https://github.com/iainlane))</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;- Update to work with vte 2.91 as well as 2.90 [\#371](https://github.com/FreeRDP/Remmina/pull/371) ([iainlane](https://github.com/iainlane))</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160;- Added a Show quick connect menu item to show/hide the fast connection box [\#368](https://github.com/FreeRDP/Remmina/pull/368) ([muflone](https://github.com/muflone))</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;- Fixed GTK3 issue [\#367](https://github.com/FreeRDP/Remmina/pull/367) ([weberhofer](https://github.com/weberhofer))</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;- Rename relevant CB\_FORMAT to CF [\#364](https://github.com/FreeRDP/Remmina/pull/364) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;- Add printer and smartcard redirection, fix freerdp connection closing [\#359](https://github.com/FreeRDP/Remmina/pull/359) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;- Add printer and smartcard redirection, fix freerdp connection closing [\#358](https://github.com/FreeRDP/Remmina/pull/358) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;- Screenshots page with real screenshots! [\#355](https://github.com/FreeRDP/Remmina/pull/355) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;- Good News! [\#354](https://github.com/FreeRDP/Remmina/pull/354) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;## [v1.1.1](https://github.com/FreeRDP/Remmina/tree/v1.1.1) (2014-10-10)</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.1...v1.1.1)</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;- Share local printer doesn&#39;t work [\#324](https://github.com/FreeRDP/Remmina/issues/324)</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;- VNC plugin settings - scaler too small [\#316](https://github.com/FreeRDP/Remmina/issues/316)</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;- Protocol settings compact flag don&#39;t seem to be honored in the gtk3 branch [\#314](https://github.com/FreeRDP/Remmina/issues/314)</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;- gtk\_widget\_set\_opacity not supported by GTK 3.4.2 \(for Debian 7.0\) [\#299](https://github.com/FreeRDP/Remmina/issues/299)</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;- Clipboard Sync with RDP [\#280](https://github.com/FreeRDP/Remmina/issues/280)</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;- Terminal windows disappearing [\#274](https://github.com/FreeRDP/Remmina/issues/274)</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;- Remmina crash when trying to connect to remote VNC [\#252](https://github.com/FreeRDP/Remmina/issues/252)</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;- Fix segfault reported by issue \#1 \#280 \#131 \#135 \#199 \#270 [\#282](https://github.com/FreeRDP/Remmina/pull/282) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;**Closed issues:**</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160;</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160;- Stucked shift key [\#90](https://github.com/FreeRDP/Remmina/issues/90)</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;- New branch &#39;next&#39; [\#313](https://github.com/FreeRDP/Remmina/issues/313)</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;- Laggy graphics with remmina [\#308](https://github.com/FreeRDP/Remmina/issues/308)</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;- does sound work for remmina RDP? [\#296](https://github.com/FreeRDP/Remmina/issues/296)</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;- Remmina install /usr/include/remmina/ empty [\#292](https://github.com/FreeRDP/Remmina/issues/292)</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;- Remmina freeze after system boots from suspend [\#284](https://github.com/FreeRDP/Remmina/issues/284)</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;- Sound connection not possible via RDP [\#281](https://github.com/FreeRDP/Remmina/issues/281)</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;- Blank window on connect - found whats causign it [\#273](https://github.com/FreeRDP/Remmina/issues/273)</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;- Shared folder on RDP does not work [\#270](https://github.com/FreeRDP/Remmina/issues/270)</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;- RDP connection cannot be established [\#248](https://github.com/FreeRDP/Remmina/issues/248)</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;- Fix debian bug 764142 [\#353](https://github.com/FreeRDP/Remmina/pull/353) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;- Internationalization fixes [\#320](https://github.com/FreeRDP/Remmina/pull/320) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;- Merge antenore:master with FreeRDP:gtk3 - GTK3 migration - File editor [\#311](https://github.com/FreeRDP/Remmina/pull/311) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;- Help GNOME SHELL to not hide the floating toolbar [\#309](https://github.com/FreeRDP/Remmina/pull/309) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;- Enabled sound \(fixes \#296 \#281\) and improved disconnection detection. [\#297](https://github.com/FreeRDP/Remmina/pull/297) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;- Corrections to keyboard grab/ungrab. Fixes \#245 [\#295](https://github.com/FreeRDP/Remmina/pull/295) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;- Fixes for clipboard issues [\#294](https://github.com/FreeRDP/Remmina/pull/294) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;- Fix GTK2 compatibility [\#293](https://github.com/FreeRDP/Remmina/pull/293) ([amon-sha](https://github.com/amon-sha))</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160;- Indentation fix [\#290](https://github.com/FreeRDP/Remmina/pull/290) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;- Fix \#288 \#143 and deprecated gtk\_widget\_reparent\(\) [\#289](https://github.com/FreeRDP/Remmina/pull/289) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;- Issue \#286 - License OpenSSL linking exception [\#287](https://github.com/FreeRDP/Remmina/pull/287) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;- GTK+ 2 compatibility [\#276](https://github.com/FreeRDP/Remmina/pull/276) ([repzilon](https://github.com/repzilon))</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;- Fix issue with invisible toolbar in fullscreen. [\#275](https://github.com/FreeRDP/Remmina/pull/275) ([jeebsorg](https://github.com/jeebsorg))</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;- Fix for issue \#251 [\#253](https://github.com/FreeRDP/Remmina/pull/253) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;## [v1.2.0-rcgit.1](https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.1) (2014-10-08)</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/v1.1.0...v1.2.0-rcgit.1)</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;**Closed issues:**</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;- undefined symbol: freerdp\_channels\_global\_init in remmina-plugin-rdp.so [\#278](https://github.com/FreeRDP/Remmina/issues/278)</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;- Fix issue \#90 and website URL [\#352](https://github.com/FreeRDP/Remmina/pull/352) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;- Fix issue \#90 and various updates [\#351](https://github.com/FreeRDP/Remmina/pull/351) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;- Updated menu links [\#350](https://github.com/FreeRDP/Remmina/pull/350) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160;- Update links [\#349](https://github.com/FreeRDP/Remmina/pull/349) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;- Changed links [\#348](https://github.com/FreeRDP/Remmina/pull/348) ([ic3d](https://github.com/ic3d))</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160;- Remove call to freerdp\_get\_last\_error [\#346](https://github.com/FreeRDP/Remmina/pull/346) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;## [v1.1.0](https://github.com/FreeRDP/Remmina/tree/v1.1.0) (2014-10-03)</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;[Full Changelog](https://github.com/FreeRDP/Remmina/compare/1.0.0...v1.1.0)</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;**Fixed bugs:**</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160;</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;- Black or white window when RDP connects at 32bpp [\#329](https://github.com/FreeRDP/Remmina/issues/329)</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;- Remmina RDP does not disconnect when closing the client window or tab [\#288](https://github.com/FreeRDP/Remmina/issues/288)</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;- Super/windows keypresses always present [\#7](https://github.com/FreeRDP/Remmina/issues/7)</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;**Closed issues:**</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;- Protocol plug-in RDP is not installed. [\#337](https://github.com/FreeRDP/Remmina/issues/337)</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160;- FreeRDP / Remmina - is this a fork? [\#325](https://github.com/FreeRDP/Remmina/issues/325)</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160;- RDP configuration tab garbled in GTK3 branch. [\#319](https://github.com/FreeRDP/Remmina/issues/319)</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160;- Remmina hangs and doesn&#39;t let to switch to another program [\#310](https://github.com/FreeRDP/Remmina/issues/310)</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160;- VNC plugin not available in Remmnia [\#307](https://github.com/FreeRDP/Remmina/issues/307)</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160;- Identityfile not loaded properly [\#306](https://github.com/FreeRDP/Remmina/issues/306)</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;- Second Monitor in Portrait mode breaks dropdown. [\#298](https://github.com/FreeRDP/Remmina/issues/298)</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;- OpenSSL linking exception? [\#286](https://github.com/FreeRDP/Remmina/issues/286)</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;- Please tag 1.2.0-beta1 [\#285](https://github.com/FreeRDP/Remmina/issues/285)</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;- Remmina Remote Desktop Client doesn&#39;t save Quality option changes [\#283](https://github.com/FreeRDP/Remmina/issues/283)</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;- Cannot compile on Fedora 20 [\#277](https://github.com/FreeRDP/Remmina/issues/277)</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160;- Cannot install Remmina [\#266](https://github.com/FreeRDP/Remmina/issues/266)</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160;- Crash while trying to connect using iFreeRDP for iPad App. [\#264](https://github.com/FreeRDP/Remmina/issues/264)</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;- Public key should not be separately required for SSH PK authentication [\#262](https://github.com/FreeRDP/Remmina/issues/262)</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160;- NX Session: Unresponsive to mouse input, window does not focus. [\#258](https://github.com/FreeRDP/Remmina/issues/258)</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160;- GUI omits basic error information [\#247](https://github.com/FreeRDP/Remmina/issues/247)</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;- Super/ Windows key not grabbed [\#245](https://github.com/FreeRDP/Remmina/issues/245)</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;- Remmina fails to compile against latest freerdp on github [\#228](https://github.com/FreeRDP/Remmina/issues/228)</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;- Cannot connect to RDP over SSH to multiple hosts [\#223](https://github.com/FreeRDP/Remmina/issues/223)</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160;- Bring Japanese translation from Ubuntu [\#216](https://github.com/FreeRDP/Remmina/issues/216)</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;- Bad colors on Ubuntu 13.04 [\#212](https://github.com/FreeRDP/Remmina/issues/212)</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;- Crash redirected folder / printer. [\#199](https://github.com/FreeRDP/Remmina/issues/199)</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160;- FREERDP\_CLIENT\_LIBRARY, FREERDP\_LOCALE\_LIBRARY is not found [\#193](https://github.com/FreeRDP/Remmina/issues/193)</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160;- Compile error building remmina-plugin-rdp [\#189](https://github.com/FreeRDP/Remmina/issues/189)</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160;- error: unknown type name &#39;RDP\_EVENT&#39; when compiled against current freerdp [\#187](https://github.com/FreeRDP/Remmina/issues/187)</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;- Warinig unimplemented brush style:2 and Beyond Compare in Win7 x64 [\#184](https://github.com/FreeRDP/Remmina/issues/184)</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160;- Remmina crashes \(BSOD\) Windows NT 4 Terminal Server [\#183](https://github.com/FreeRDP/Remmina/issues/183)</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160;- problems compiling [\#180](https://github.com/FreeRDP/Remmina/issues/180)</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;- SSH Problem to older linux servers. [\#175](https://github.com/FreeRDP/Remmina/issues/175)</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;- external\_tools directory should not be installed [\#171](https://github.com/FreeRDP/Remmina/issues/171)</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;- Unable to compile against current freerdp [\#159](https://github.com/FreeRDP/Remmina/issues/159)</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;- d5yt6guyhukijlkolpk;\[&#39;g [\#156](https://github.com/FreeRDP/Remmina/issues/156)</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;- Remmina full screen closes unexpectedly in a dual monitor setup [\#154](https://github.com/FreeRDP/Remmina/issues/154)</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;- Numeric keyboard doesn&#39;t sync [\#153](https://github.com/FreeRDP/Remmina/issues/153)</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;- ERRINFO\_DECRYPT\_FAILED and Invalid pointer gdi\_get\_bitmap\_pointer [\#151](https://github.com/FreeRDP/Remmina/issues/151)</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160;- Segmentation fault when using Sessionbrooker and DNS round robin [\#150](https://github.com/FreeRDP/Remmina/issues/150)</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160;- Failed to compile 2 [\#144](https://github.com/FreeRDP/Remmina/issues/144)</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;- Fails to compile [\#141](https://github.com/FreeRDP/Remmina/issues/141)</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;- Segfault connecting RDP [\#135](https://github.com/FreeRDP/Remmina/issues/135)</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160;- RDP Plugin Not Found Linux Mint 14 [\#134](https://github.com/FreeRDP/Remmina/issues/134)</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;- icon fail to compile [\#133](https://github.com/FreeRDP/Remmina/issues/133)</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;- segfault on ubuntu 12.04 [\#131](https://github.com/FreeRDP/Remmina/issues/131)</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160;- Segfault connecting RDP via SSH: invalid glyph / invalid brush \(0 bpp\) [\#130](https://github.com/FreeRDP/Remmina/issues/130)</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160;- Saved Passwords Fail to Authenticate when .remmina Config is Symlinked [\#128](https://github.com/FreeRDP/Remmina/issues/128)</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160;- can&#39;t compile, FREERDP\_CHANNELS\_LIBRARY not found [\#123](https://github.com/FreeRDP/Remmina/issues/123)</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;- The latest checkout fails to cmake --build=build . on ubuntu 12.10 [\#122](https://github.com/FreeRDP/Remmina/issues/122)</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160;- avahi underlinking [\#120](https://github.com/FreeRDP/Remmina/issues/120)</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160;- Compatibility with newest FreeRDP [\#119](https://github.com/FreeRDP/Remmina/issues/119)</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;- No visual indication of active tab [\#118](https://github.com/FreeRDP/Remmina/issues/118)</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160;- Black Blocks and blocks misplaced [\#116](https://github.com/FreeRDP/Remmina/issues/116)</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160;- avahi support not actually compiled in [\#113](https://github.com/FreeRDP/Remmina/issues/113)</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;- RDP session shows only white colors [\#111](https://github.com/FreeRDP/Remmina/issues/111)</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160;- problems typing @ via RDP using pt-latin keyboard [\#110](https://github.com/FreeRDP/Remmina/issues/110)</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;- &quot;Main Window&quot; interface unusable \(odd toolbar, connection rendering\) [\#109](https://github.com/FreeRDP/Remmina/issues/109)</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;- remmina crash after rdp connection [\#107](https://github.com/FreeRDP/Remmina/issues/107)</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;- Wrong colours when connecting to a sunray terminal [\#102](https://github.com/FreeRDP/Remmina/issues/102)</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160;- Add Chinese \(Taiwan\) translation [\#101](https://github.com/FreeRDP/Remmina/issues/101)</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;- Uses host cursors [\#100](https://github.com/FreeRDP/Remmina/issues/100)</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;- remmina new feature info [\#97](https://github.com/FreeRDP/Remmina/issues/97)</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160;- Clipboard Sync from Mac OS X to Ubuntu over VNC Not Working [\#93](https://github.com/FreeRDP/Remmina/issues/93)</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;- SSH public key authentication failed: Public key file doesn&#39;t exist [\#92](https://github.com/FreeRDP/Remmina/issues/92)</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160;- Remmina and numeric pad status [\#89](https://github.com/FreeRDP/Remmina/issues/89)</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160;- Remmina disappears after minimizing, going fullscreen, or opening a 2nd window [\#87](https://github.com/FreeRDP/Remmina/issues/87)</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160;- Timezone redirection not properly supported [\#80](https://github.com/FreeRDP/Remmina/issues/80)</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160;- Wonky RDP display [\#79](https://github.com/FreeRDP/Remmina/issues/79)</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160;- Unable to connect to RDP server XXX.XXX.XXX.XXX [\#78](https://github.com/FreeRDP/Remmina/issues/78)</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160;- Remmina freezes when disconnecting vnc session with ssh tunnel [\#77](https://github.com/FreeRDP/Remmina/issues/77)</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;- Tray icon autostart option disappeared in 1.0 [\#76](https://github.com/FreeRDP/Remmina/issues/76)</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;- Unknown authentication scheme from VNC server: 5 [\#75](https://github.com/FreeRDP/Remmina/issues/75)</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;- Error Building Latest on Fedora 16 [\#74](https://github.com/FreeRDP/Remmina/issues/74)</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;- wake on lan [\#72](https://github.com/FreeRDP/Remmina/issues/72)</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;- Add &quot;Download for Ubuntu button&quot; on the website [\#71](https://github.com/FreeRDP/Remmina/issues/71)</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;- Specify GLIB requirements [\#70](https://github.com/FreeRDP/Remmina/issues/70)</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160;- Can not RDP connect if host key has changed [\#68](https://github.com/FreeRDP/Remmina/issues/68)</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160;- remmina/xfreerdp crashes while trying to use &#39;remote control&#39; [\#66](https://github.com/FreeRDP/Remmina/issues/66)</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;- Resize Window to Fit in Remote Resolution Broken [\#63](https://github.com/FreeRDP/Remmina/issues/63)</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;- OpenBSD OpenSSH &amp; SSH\_AUTH\_METHOD\_INTERACTIVE [\#59](https://github.com/FreeRDP/Remmina/issues/59)</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;- Crashes on launch on 12.04 [\#57](https://github.com/FreeRDP/Remmina/issues/57)</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160;- CMake Error at CMakeLists.txt:96 \(find\_suggested\_package\): Unknown CMake command &quot;find\_suggested\_package&quot;. [\#55](https://github.com/FreeRDP/Remmina/issues/55)</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;- Remmina/FreeRDP \(both v1.x\) - protocol security negotiation failure \(to any Windows host\) [\#54](https://github.com/FreeRDP/Remmina/issues/54)</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160;- patch for support building with gtk-2.22 [\#46](https://github.com/FreeRDP/Remmina/issues/46)</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160;- numlock setting is not exported [\#45](https://github.com/FreeRDP/Remmina/issues/45)</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;- use Enter key to open connection, not only Doubleclick [\#43](https://github.com/FreeRDP/Remmina/issues/43)</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;- FindGnuTLS.cmake with cmake 2.6 [\#42](https://github.com/FreeRDP/Remmina/issues/42)</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;- SSH connection with transparent background support [\#41](https://github.com/FreeRDP/Remmina/issues/41)</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;- Help&gt;About version is out of date [\#35](https://github.com/FreeRDP/Remmina/issues/35)</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160;- Build error with -DWITH\_GETTEXT=OFF option [\#23](https://github.com/FreeRDP/Remmina/issues/23)</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;- .desktop.in file is no longer handled [\#21](https://github.com/FreeRDP/Remmina/issues/21)</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160;- don&#39;t forget about the old bugs at SF.net [\#19](https://github.com/FreeRDP/Remmina/issues/19)</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160;- Don&#39;t use convenience copy of libvncserver [\#15](https://github.com/FreeRDP/Remmina/issues/15)</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160;- Start minimized to systray [\#14](https://github.com/FreeRDP/Remmina/issues/14)</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160;- Clipboard redirect is not working. [\#13](https://github.com/FreeRDP/Remmina/issues/13)</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;- Accelerator is the same for &quot;Cancel&quot; and &quot;Connect&quot; [\#12](https://github.com/FreeRDP/Remmina/issues/12)</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160;- linker problem [\#9](https://github.com/FreeRDP/Remmina/issues/9)</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;- rdp plugin crashes [\#1](https://github.com/FreeRDP/Remmina/issues/1)</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;- Frdp 1.1 [\#344](https://github.com/FreeRDP/Remmina/pull/344) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;- Fixes for latest FreeRDP [\#343](https://github.com/FreeRDP/Remmina/pull/343) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;- GTK3 migration - about [\#339](https://github.com/FreeRDP/Remmina/pull/339) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;- GTK3 migration + gix069 fixes [\#338](https://github.com/FreeRDP/Remmina/pull/338) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;- Added more translations from launchpad, fixes \#216 [\#336](https://github.com/FreeRDP/Remmina/pull/336) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;- Make 8bpp and 32bpp working again. Fixes \#329 [\#334](https://github.com/FreeRDP/Remmina/pull/334) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160;- Fix compilation issues with latest FreeRDP [\#333](https://github.com/FreeRDP/Remmina/pull/333) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160;- Various SSH fixes, fixes \#262 and \#223 [\#330](https://github.com/FreeRDP/Remmina/pull/330) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;- Fix missing extended keycode and &#39;up&#39; action when releasing all keys [\#328](https://github.com/FreeRDP/Remmina/pull/328) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160;- Fix compilation problems with latest version of FreeRDP/FreeRDP master [\#326](https://github.com/FreeRDP/Remmina/pull/326) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160;- GTK3 migration - preferences dialog upggraded to Grid Layout [\#322](https://github.com/FreeRDP/Remmina/pull/322) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;- GTK3 Migration - Move from GtkTable to GtkGrid - Chat window and auth dialogs [\#321](https://github.com/FreeRDP/Remmina/pull/321) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;- gtk\_widget\_set\_margin\_end too new as reported in \#commitcomment-7689638 [\#318](https://github.com/FreeRDP/Remmina/pull/318) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;- Scaler layout improvement - gtk\_widget\_set\_margin\_end [\#317](https://github.com/FreeRDP/Remmina/pull/317) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;- Should fix issue \#314 and other related problems [\#315](https://github.com/FreeRDP/Remmina/pull/315) ([antenore](https://github.com/antenore))</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;- Fixes for ssh, floating toolbar and version number change [\#312](https://github.com/FreeRDP/Remmina/pull/312) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;- ssh, minimize to tray and file sharing fixes [\#303](https://github.com/FreeRDP/Remmina/pull/303) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;- Minor fixes to floating toolbar [\#301](https://github.com/FreeRDP/Remmina/pull/301) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;- GTK+ &lt; 3.8 compatibility, fixes \#299 [\#300](https://github.com/FreeRDP/Remmina/pull/300) ([giox069](https://github.com/giox069))</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;- Added one-liner apt-get to install all dependencies, for the lazy people [\#240](https://github.com/FreeRDP/Remmina/pull/240) ([Photonios](https://github.com/Photonios))</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;- Typo in preference name broke key mapping in VNC [\#236](https://github.com/FreeRDP/Remmina/pull/236) ([nopdotcom](https://github.com/nopdotcom))</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160;- fixes \#193: Instructions for compiling against master FreeRDP [\#231](https://github.com/FreeRDP/Remmina/pull/231) ([krlmlr](https://github.com/krlmlr))</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;- rename context\_size to ContextSize to match changes in FreeRDP [\#215](https://github.com/FreeRDP/Remmina/pull/215) ([benkohler](https://github.com/benkohler))</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;- Finish replacing the old stream macros [\#206](https://github.com/FreeRDP/Remmina/pull/206) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160;- Fix compilation against freerdp master [\#191](https://github.com/FreeRDP/Remmina/pull/191) ([darklajid](https://github.com/darklajid))</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;- Remove call to rfx\_context\_set\_cpu\_opt, which was removed from FreeRDP [\#172](https://github.com/FreeRDP/Remmina/pull/172) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;- DWORD is the replacement for RDP\_SCANCODE [\#166](https://github.com/FreeRDP/Remmina/pull/166) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;- Do not define any SONAME for the plugins [\#149](https://github.com/FreeRDP/Remmina/pull/149) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;- external tools [\#132](https://github.com/FreeRDP/Remmina/pull/132) ([loki36](https://github.com/loki36))</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;- Couple of packaging fixes [\#114](https://github.com/FreeRDP/Remmina/pull/114) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;- Some improvements [\#105](https://github.com/FreeRDP/Remmina/pull/105) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160;- Multiple fixes + Quickconnect [\#95](https://github.com/FreeRDP/Remmina/pull/95) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;- Porting to Cairo and some bugfixes/new features [\#67](https://github.com/FreeRDP/Remmina/pull/67) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160;- GTK2 compatibility [\#65](https://github.com/FreeRDP/Remmina/pull/65) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;- A couple of build fixes [\#64](https://github.com/FreeRDP/Remmina/pull/64) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;- last clipboard commits [\#62](https://github.com/FreeRDP/Remmina/pull/62) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;- Some more clipboard fixes [\#60](https://github.com/FreeRDP/Remmina/pull/60) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;- Patches [\#58](https://github.com/FreeRDP/Remmina/pull/58) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160;- Clipboard support [\#56](https://github.com/FreeRDP/Remmina/pull/56) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160;- Some fixes [\#53](https://github.com/FreeRDP/Remmina/pull/53) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;- Fix all deprecated function calls [\#52](https://github.com/FreeRDP/Remmina/pull/52) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160;- Fixes compiling on ubuntu [\#51](https://github.com/FreeRDP/Remmina/pull/51) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;- Fix for scrolling in Remmina [\#50](https://github.com/FreeRDP/Remmina/pull/50) ([dupondje](https://github.com/dupondje))</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;- Fix app indicator when using custom install prefix [\#48](https://github.com/FreeRDP/Remmina/pull/48) ([rawlinc](https://github.com/rawlinc))</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;- Issue \#9 [\#39](https://github.com/FreeRDP/Remmina/pull/39) ([Gankov](https://github.com/Gankov))</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;- bump version to 1.0.0. fixed \#35 [\#38](https://github.com/FreeRDP/Remmina/pull/38) ([chihchun](https://github.com/chihchun))</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160;- Fixed missing system pointer update skeletons. [\#37](https://github.com/FreeRDP/Remmina/pull/37) ([chihchun](https://github.com/chihchun))</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;- Add an option to remmina to redirect smartcard over rdp [\#36](https://github.com/FreeRDP/Remmina/pull/36) ([absmall](https://github.com/absmall))</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160;- Corrected mistake in desktop file [\#34](https://github.com/FreeRDP/Remmina/pull/34) ([krnekhelesh](https://github.com/krnekhelesh))</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;- Updated Quicklists [\#33](https://github.com/FreeRDP/Remmina/pull/33) ([krnekhelesh](https://github.com/krnekhelesh))</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;- update french translation [\#32](https://github.com/FreeRDP/Remmina/pull/32) ([emmanuelgrognet](https://github.com/emmanuelgrognet))</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;- Fixes for recent git FreeRDP headers [\#31](https://github.com/FreeRDP/Remmina/pull/31) ([maelnor](https://github.com/maelnor))</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;- GTK cleanup in remmina\_main.c [\#30](https://github.com/FreeRDP/Remmina/pull/30) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;- Install plugins under CMAKE\_INSTALL\_LIBDIR. [\#29](https://github.com/FreeRDP/Remmina/pull/29) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;- Implementing X-GNOME-FullName [\#28](https://github.com/FreeRDP/Remmina/pull/28) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160;- Make Gnome Keyring an optional dependency. [\#27](https://github.com/FreeRDP/Remmina/pull/27) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;- Fix installation of desktop file and related icons. [\#26](https://github.com/FreeRDP/Remmina/pull/26) ([floppym](https://github.com/floppym))</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;- Mark &#39;Connect&#39; and &#39;New&#39; as important tool items so they always have labels [\#25](https://github.com/FreeRDP/Remmina/pull/25) ([robert-ancell](https://github.com/robert-ancell))</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;- Mark main toolbar as a primary toolbar \(so is correctly themed\) [\#24](https://github.com/FreeRDP/Remmina/pull/24) ([robert-ancell](https://github.com/robert-ancell))</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;- Do not use convenience copy of libvncserver [\#22](https://github.com/FreeRDP/Remmina/pull/22) ([dktrkranz](https://github.com/dktrkranz))</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;- remmina: install .desktop file [\#20](https://github.com/FreeRDP/Remmina/pull/20) ([jbicha](https://github.com/jbicha))</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;## [1.0.0](https://github.com/FreeRDP/Remmina/tree/1.0.0) (2012-02-10)</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;**Closed issues:**</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;- Can&#39;t compile with GTK+ [\#3](https://github.com/FreeRDP/Remmina/issues/3)</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;**Merged pull requests:**</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;- A few minor issues [\#11](https://github.com/FreeRDP/Remmina/pull/11) ([doctaweeks](https://github.com/doctaweeks))</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;- remmina: menu separator fix if avahi is disabled [\#10](https://github.com/FreeRDP/Remmina/pull/10) ([doctaweeks](https://github.com/doctaweeks))</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;- GTK2/3 issue + re-enable ssh [\#8](https://github.com/FreeRDP/Remmina/pull/8) ([doctaweeks](https://github.com/doctaweeks))</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;- Fix missed header path, closes \#4 [\#5](https://github.com/FreeRDP/Remmina/pull/5) ([chihchun](https://github.com/chihchun))</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;- CMake Migration [\#2](https://github.com/FreeRDP/Remmina/pull/2) ([awakecoding](https://github.com/awakecoding))</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/_r_e_a_d_m_e_8md_source.html b/docs/_r_e_a_d_m_e_8md_source.html
index 1316847ad..bd1f09491 100644
--- a/docs/_r_e_a_d_m_e_8md_source.html
+++ b/docs/_r_e_a_d_m_e_8md_source.html
@@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('_r_e_a_d_m_e_8md.html','');});
<div class="title">README.md</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_r_e_a_d_m_e_8md.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;[![Build Status](https://travis-ci.org/FreeRDP/Remmina.png)](https://travis-ci.org/FreeRDP/Remmina) [![Bountysource](https://img.shields.io/bountysource/team/remmina/activity.svg)](https://www.bountysource.com/teams/remmina) [![CodeTriage](https://www.codetriage.com/freerdp/remmina/badges/users.svg)](https://www.codetriage.com/freerdp/remmina)</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;# Remmina: The GTK+ Remote Desktop Client</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;Initially developed by [Vic Lee](https://github.com/llyzs)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;## Description</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;**Remmina** is a remote desktop client written in GTK+, aiming to be useful for</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;system administrators and travellers, who need to work with lots of remote</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;computers in front of either large monitors or tiny netbooks. Remmina supports</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;multiple network protocols in an integrated and consistent user interface.</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;Currently RDP, VNC, SPICE, NX, XDMCP and SSH are supported.</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;Remmina is released in separated source packages:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;* &quot;remmina&quot;, the main GTK+ application</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;* &quot;remmina-plugins&quot;, a set of plugins</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;Remmina is free and open-source software, released under GNU GPL license.</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;## Installation</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;### Binary distributions</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Usually remmina is included in your linux distribution or in an external repository.</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;Do not ask for distribution packages or precompiled binaries here.</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;This is a development site.</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;### Debian ###</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;Remmina is not available on the default Debian 9 (Stretch) repositories. It can be installed from the Backports repository.</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;The [Debian Backports](https://backports.debian.org/Instructions/) repository must be enabled to install it, see [this blog post](https://www.remmina.org/wp/debian-the-boys-are-backport-in-town/) for more information.</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;To install Remmina from Debian Backports, just copy and paste the following lines on a terminal window:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</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;echo &#39;deb http://ftp.debian.org/debian stretch-backports main&#39; | sudo tee --append /etc/apt/sources.list.d/stretch-backports.list &gt;&gt; /dev/null</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;sudo apt update</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;sudo apt install -t stretch-backports remmina remmina-plugin-rdp remmina-plugin-gnome libfreerdp-plugins-standard</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;```</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;### Ubuntu</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;#### Using Snap Package (also for other [supported distros](https://snapcraft.io/docs/core/install))</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"> 45</span>&#160;You can install the last release from the Ubuntu Software center, looking for `remmina`, otherwise you can install it from terminal with:</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;```sh</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;sudo snap install remmina</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;```</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;If you want to install latest git revision of remmina, you can use it from the `edge` channel:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;```sh</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;sudo snap install remmina --edge</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;```</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;Or update the current installed version with the selected channel:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;```sh</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;sudo snap refresh remmina --channel=edge # use --channel=stable otherwise</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;```</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;To enable some advanced features such as `mount-control` (to manage mount positions), `avahi-observer` (to automatically look for local servers to connect to), `cups-control` (to manage printing), `password-manager-service` (to use gnome-keyring) you should run something like:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;```sh</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;sudo snap connect remmina:avahi-observe :avahi-observe # servers discovery</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;sudo snap connect remmina:cups-control :cups-control # printing</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;sudo snap connect remmina:mount-observe :mount-observe # mount management</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;sudo snap connect remmina:password-manager-service :password-manager-service # gnome-keyring</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;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;Snap packages will be updated automatically and will include both latest `FreeRDP` git and latest `libssh 0.7` release (for better security).</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;#### From PPA</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;[Ubuntu ppa:remmina-ppa-team/remmina-next](https://launchpad.net/~remmina-ppa-team/+archive/ubuntu/remmina-next)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;To install it, just copy and paste the following three lines on a terminal window</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;```sh</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;sudo apt-add-repository ppa:remmina-ppa-team/remmina-next</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;sudo apt-get update</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;```</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;By default the RDP, SSH and SFTP plugins are installed. You can view a list of available plugins with `apt-cache search remmina-plugin`</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;If you want to connect to more securely configured SSH servers on Ubuntu 16.04 and below, you have to upgrade libssh to 0.7.X. This can be achieved by adding the following PPA containing libssh 0.7.X by David Kedves and upgrading your packages:</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;```sh</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;sudo add-apt-repository ppa:kedazo/libssh-0.7.x</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;sudo apt-get update</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;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;### Fedora</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;[Hubbitus](https://github.com/Hubbitus) (Pavel Alexeev) provided us a copr, to install just execute as root:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;```sh</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;dnf copr enable hubbitus/remmina-next</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;dnf upgrade --refresh &#39;remmina*&#39; &#39;freerdp*&#39;</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;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;### Arch Linux based</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;Install [remmina-git](https://aur.archlinux.org/packages/remmina-git) from [AUR](https://aur.archlinux.org/)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;There are also some external, not supported plugins provided by [Muflone](https://github.com/muflone) :</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;* [remmina-plugin-exec](https://aur.archlinux.org/packages/remmina-plugin-exec/) A protocol plugin for Remmina to execute an external process.</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;* [remmina-plugin-folder](https://aur.archlinux.org/packages/remmina-plugin-folder/) A protocol plugin for Remmina to open a folder.</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;* [remmina-plugin-open](https://aur.archlinux.org/packages/remmina-plugin-open/) A protocol plugin for Remmina to open a document with its associated application.</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;* [remmina-plugin-rdesktop](https://aur.archlinux.org/packages/remmina-plugin-rdesktop/) A protocol plugin for Remmina to open a RDP connection with rdesktop.</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;* [remmina-plugin-teamviewer](https://aur.archlinux.org/packages/remmina-plugin-teamviewer/) A protocol plugin for Remmina to launch a TeamViewer connection.</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* [remmina-plugin-ultravnc](https://aur.archlinux.org/packages/remmina-plugin-ultravnc/) A protocol plugin for Remmina to connect via VNC using UltraVNC viewer.</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* [remmina-plugin-url](https://aur.archlinux.org/packages/remmina-plugin-url/) A protocol plugin for Remmina to open an URL in an external browser.</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;* [remmina-plugin-webkit](https://aur.archlinux.org/packages/remmina-plugin-webkit/) A protocol plugin for Remmina to launch a GTK+ Webkit browser.</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;### From the source code</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;Follow the guides available on the wiki:</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;* [Wiki and compilation instructions](https://github.com/FreeRDP/Remmina/wiki)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;## Usage</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;Just select Remmina from your application menu or execute remmina from the command line</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;Remmina support also the following options:</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;```sh</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; -a, --about Show about dialog</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; -c, --connect=FILE Connect to a .remmina file</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; -e, --edit=FILE Edit a .remmina file</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; -n, --new Create a new connection profile</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; -p, --pref=PAGENR Show preferences dialog page</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; -x, --plugin=PLUGIN Execute the plugin</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; -q, --quit Quit the application</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; -s, --server=SERVER Use default server name</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; -t, --protocol=PROTOCOL Use default protocol</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; -i, --icon Start as tray icon</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; -v, --version Show the application&#39;s version</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; -V, --full-version Show the application&#39;s version, including the pulgin versions</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; --display=DISPLAY X display to use</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;```</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;## Configuration</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;You can configure everything from the graphical interface or editing by hand the files under $HOME/.remmina or $HOME/.config/remmina</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;## Contributing</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;See [CONTRIBUTING.md](https://raw.githubusercontent.com/FreeRDP/Remmina/next/CONTRIBUTING.md) for a better overview.</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;If you want to contribute with code:</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;1. [Fork it](https://github.com/FreeRDP/Remmina#fork-destination-box)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;2. Create your feature branch (`git checkout -b my-new-feature`)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;3. Commit your changes (`git commit -am &#39;Add some feature&#39;`)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;4. Push to the branch (`git push origin my-new-feature`)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;5. Create new Pull Request</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;If you want to contribute in other ways, drop us an email using the form provided in our web site.</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;### Donations</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;If you rather prefer to contribute to Remmina with money you are more than welcome.</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;For more informations See the [Remmina web site donation page](http://remmina.org/wp/donations).</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;See the [THANKS.md](https://raw.githubusercontent.com/FreeRDP/Remmina/next/THANKS.md) file for an exhaustive list of supporters.</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;#### Paypal</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;[![paypal](https://www.paypalobjects.com/en_US/CH/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=ZBD87JG52PTZC)</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;#### Bitcoin</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;[![bitcoin](http://www.remmina.org/wp/wp-content/uploads/2016/06/bitcoin_1298H2vaxcbDQRuR-e1465504491655.png)](bitcoin:1298H2vaxcbDQRuRYkDjfFbvGEgxE1CNjk?label=Remmina%20Donation)</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;If clicking on the line above does not work, use this payment info:</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;- Remmina bitcoin address: 1298H2vaxcbDQRuRYkDjfFbvGEgxE1CNjk</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;- Message: Remmina Donation</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;## Authors</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;Remmina is maintained by:</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; * [Antenore Gatta](https://github.com/antenore)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; * [Giovanni Panozzo](https://github.com/giox069)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; * [Dario Cavedon](https://github.com/ic3d)</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;See the [AUTHORS](https://raw.githubusercontent.com/FreeRDP/Remmina/next/AUTHORS) for an exhaustive list.</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;If you are not listed and you have contributed, feel free to update that file.</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;## Resources</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; * [Wiki and compilation instructions](https://github.com/FreeRDP/Remmina/wiki)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; * [G+ Remmina community](https://plus.google.com/communities/106276095923371962010)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; * [Website](http://www.remmina.org)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; * IRC we are on freenode.net , in the channel #remmina, you can also use a [web client](https://webchat.freenode.net/) in case</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;## License</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;Licensed under the [GPLv2](http://www.opensource.org/licenses/GPL-2.0) license</div></div><!-- fragment --></div><!-- contents -->
+<a href="_r_e_a_d_m_e_8md.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;[![Build Status](https://travis-ci.org/FreeRDP/Remmina.png)](https://travis-ci.org/FreeRDP/Remmina) [![Bountysource](https://img.shields.io/bountysource/team/remmina/activity.svg)](https://www.bountysource.com/teams/remmina) [![CodeTriage](https://www.codetriage.com/freerdp/remmina/badges/users.svg)](https://www.codetriage.com/freerdp/remmina)</div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;# Remmina: The GTK+ Remote Desktop Client</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;Initially developed by [Vic Lee](https://github.com/llyzs)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;## Description</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;**Remmina** is a remote desktop client written in GTK+, aiming to be useful for</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;system administrators and travellers, who need to work with lots of remote</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;computers in front of either large monitors or tiny netbooks. Remmina supports</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;multiple network protocols in an integrated and consistent user interface.</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;Currently RDP, VNC, SPICE, NX, XDMCP and SSH are supported.</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;Remmina is released in separated source packages:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;* &quot;remmina&quot;, the main GTK+ application</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;* &quot;remmina-plugins&quot;, a set of plugins</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;Remmina is free and open-source software, released under GNU GPL license.</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;## Installation</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;### Binary distributions</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Usually remmina is included in your linux distribution or in an external repository.</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;Do not ask for distribution packages or precompiled binaries here.</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;This is a development site.</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;### Debian ###</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;Remmina is not available on the default Debian 9 (Stretch) repositories. It can be installed from the Backports repository.</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;The [Debian Backports](https://backports.debian.org/Instructions/) repository must be enabled to install it, see [this blog post](https://www.remmina.org/wp/debian-the-boys-are-backport-in-town/) for more information.</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;To install Remmina from Debian Backports, just copy and paste the following lines on a terminal window:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</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;echo &#39;deb http://ftp.debian.org/debian stretch-backports main&#39; | sudo tee --append /etc/apt/sources.list.d/stretch-backports.list &gt;&gt; /dev/null</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;sudo apt update</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;sudo apt install -t stretch-backports remmina remmina-plugin-rdp remmina-plugin-secret libfreerdp-plugins-standard</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;```</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;### Ubuntu</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;#### Using Snap Package (also for other [supported distros](https://snapcraft.io/docs/core/install))</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"> 45</span>&#160;You can install the last release from the Ubuntu Software center, looking for `remmina`, otherwise you can install it from terminal with:</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;```sh</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;sudo snap install remmina</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;```</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;If you want to install latest git revision of remmina, you can use it from the `edge` channel:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;```sh</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;sudo snap install remmina --edge</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;```</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;Or update the current installed version with the selected channel:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;```sh</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;sudo snap refresh remmina --channel=edge # use --channel=stable otherwise</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;```</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;To enable some advanced features such as `mount-control` (to manage mount positions), `avahi-observer` (to automatically look for local servers to connect to), `cups-control` (to manage printing), `password-manager-service` (to use gnome-keyring) you should run something like:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;```sh</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;sudo snap connect remmina:avahi-observe :avahi-observe # servers discovery</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;sudo snap connect remmina:cups-control :cups-control # printing</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;sudo snap connect remmina:mount-observe :mount-observe # mount management</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;sudo snap connect remmina:password-manager-service :password-manager-service # gnome-keyring</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;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;Snap packages will be updated automatically and will include both latest `FreeRDP` git and latest `libssh 0.7` release (for better security).</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;#### From PPA</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;[Ubuntu ppa:remmina-ppa-team/remmina-next](https://launchpad.net/~remmina-ppa-team/+archive/ubuntu/remmina-next)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;To install it, just copy and paste the following three lines on a terminal window</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;```sh</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;sudo apt-add-repository ppa:remmina-ppa-team/remmina-next</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;sudo apt-get update</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;```</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;By default the RDP, SSH and SFTP plugins are installed. You can view a list of available plugins with `apt-cache search remmina-plugin`</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;If you want to connect to more securely configured SSH servers on Ubuntu 16.04 and below, you have to upgrade libssh to 0.7.X. This can be achieved by adding the following PPA containing libssh 0.7.X by David Kedves and upgrading your packages:</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;```sh</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;sudo add-apt-repository ppa:kedazo/libssh-0.7.x</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;sudo apt-get update</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;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;### Fedora</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;[Hubbitus](https://github.com/Hubbitus) (Pavel Alexeev) provided us a copr, to install just execute as root:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;```sh</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;dnf copr enable hubbitus/remmina-next</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;dnf upgrade --refresh &#39;remmina*&#39; &#39;freerdp*&#39;</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;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;### Arch Linux based</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;Install [remmina-git](https://aur.archlinux.org/packages/remmina-git) from [AUR](https://aur.archlinux.org/)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;There are also some external, not supported plugins provided by [Muflone](https://github.com/muflone) :</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;* [remmina-plugin-exec](https://aur.archlinux.org/packages/remmina-plugin-exec/) A protocol plugin for Remmina to execute an external process.</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;* [remmina-plugin-folder](https://aur.archlinux.org/packages/remmina-plugin-folder/) A protocol plugin for Remmina to open a folder.</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;* [remmina-plugin-open](https://aur.archlinux.org/packages/remmina-plugin-open/) A protocol plugin for Remmina to open a document with its associated application.</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;* [remmina-plugin-rdesktop](https://aur.archlinux.org/packages/remmina-plugin-rdesktop/) A protocol plugin for Remmina to open a RDP connection with rdesktop.</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;* [remmina-plugin-teamviewer](https://aur.archlinux.org/packages/remmina-plugin-teamviewer/) A protocol plugin for Remmina to launch a TeamViewer connection.</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;* [remmina-plugin-ultravnc](https://aur.archlinux.org/packages/remmina-plugin-ultravnc/) A protocol plugin for Remmina to connect via VNC using UltraVNC viewer.</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;* [remmina-plugin-url](https://aur.archlinux.org/packages/remmina-plugin-url/) A protocol plugin for Remmina to open an URL in an external browser.</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;* [remmina-plugin-webkit](https://aur.archlinux.org/packages/remmina-plugin-webkit/) A protocol plugin for Remmina to launch a GTK+ Webkit browser.</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;### From the source code</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;Follow the guides available on the wiki:</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;* [Wiki and compilation instructions](https://github.com/FreeRDP/Remmina/wiki)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;## Usage</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;Just select Remmina from your application menu or execute remmina from the command line</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;Remmina support also the following options:</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;```sh</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; -a, --about Show about dialog</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; -c, --connect=FILE Connect to a .remmina file</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; -e, --edit=FILE Edit a .remmina file</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; -n, --new Create a new connection profile</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; -p, --pref=PAGENR Show preferences dialog page</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; -x, --plugin=PLUGIN Execute the plugin</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; -q, --quit Quit the application</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; -s, --server=SERVER Use default server name</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; -t, --protocol=PROTOCOL Use default protocol</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; -i, --icon Start as tray icon</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; -v, --version Show the application&#39;s version</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; -V, --full-version Show the application&#39;s version, including the pulgin versions</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; --display=DISPLAY X display to use</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;```</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;## Configuration</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;You can configure everything from the graphical interface or editing by hand the files under $HOME/.remmina or $HOME/.config/remmina</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;## Contributing</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;See [CONTRIBUTING.md](https://raw.githubusercontent.com/FreeRDP/Remmina/next/CONTRIBUTING.md) for a better overview.</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;If you want to contribute with code:</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;1. [Fork it](https://github.com/FreeRDP/Remmina#fork-destination-box)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;2. Create your feature branch (`git checkout -b my-new-feature`)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;3. Commit your changes (`git commit -am &#39;Add some feature&#39;`)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;4. Push to the branch (`git push origin my-new-feature`)</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;5. Create new Pull Request</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;If you want to contribute in other ways, drop us an email using the form provided in our web site.</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;### Donations</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;If you rather prefer to contribute to Remmina with money you are more than welcome.</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;For more informations See the [Remmina web site donation page](http://remmina.org/wp/donations).</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;See the [THANKS.md](https://raw.githubusercontent.com/FreeRDP/Remmina/next/THANKS.md) file for an exhaustive list of supporters.</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;#### Paypal</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;[![paypal](https://www.paypalobjects.com/en_US/CH/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&amp;hosted_button_id=ZBD87JG52PTZC)</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;#### Bitcoin</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;[![bitcoin](http://www.remmina.org/wp/wp-content/uploads/2016/06/bitcoin_1298H2vaxcbDQRuR-e1465504491655.png)](bitcoin:1298H2vaxcbDQRuRYkDjfFbvGEgxE1CNjk?label=Remmina%20Donation)</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;If clicking on the line above does not work, use this payment info:</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;- Remmina bitcoin address: 1298H2vaxcbDQRuRYkDjfFbvGEgxE1CNjk</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;- Message: Remmina Donation</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;## Authors</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;Remmina is maintained by:</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; * [Antenore Gatta](https://github.com/antenore)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; * [Giovanni Panozzo](https://github.com/giox069)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; * [Dario Cavedon](https://github.com/ic3d)</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;See the [AUTHORS](https://raw.githubusercontent.com/FreeRDP/Remmina/next/AUTHORS) for an exhaustive list.</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;If you are not listed and you have contributed, feel free to update that file.</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;## Resources</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; * [Wiki and compilation instructions](https://github.com/FreeRDP/Remmina/wiki)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; * [G+ Remmina community](https://plus.google.com/communities/106276095923371962010)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; * [Website](http://www.remmina.org)</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; * IRC we are on freenode.net , in the channel #remmina, you can also use a [web client](https://webchat.freenode.net/) in case</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;## License</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;Licensed under the [GPLv2](http://www.opensource.org/licenses/GPL-2.0) license</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/config_8h_source.html b/docs/config_8h_source.html
index 978f9758b..f473a9f14 100644
--- a/docs/config_8h_source.html
+++ b/docs/config_8h_source.html
@@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('config_8h_source.html','');});
<div class="title">config.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="config_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="preprocessor">#ifndef __CONFIG_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __CONFIG_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#define HAVE_SYS_PARAM_H</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#define HAVE_SYS_SOCKET_H</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define HAVE_ARPA_INET_H</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define HAVE_NETINET_IN_H</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define HAVE_TERMIOS_H</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define HAVE_NETDB_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define HAVE_FCNTL_H</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define HAVE_UNISTD_H</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define HAVE_SYS_UN_H</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define HAVE_ERRNO_H</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define GTK_VERSION 3</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define remmina &quot;remmina&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define UNIQUE_APPNAME &quot;org.remmina.Remmina&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define VERSION &quot;1.2.0-rcgit-24&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define REMMINA_GIT_REVISION &quot;b09c0c01&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define GETTEXT_PACKAGE remmina</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define REMMINA_RUNTIME_DATADIR &quot;/opt/remmina_devel/remmina/share&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define REMMINA_RUNTIME_LOCALEDIR &quot;/opt/remmina_devel/remmina/share/locale&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define REMMINA_RUNTIME_PLUGINDIR &quot;/opt/remmina_devel/remmina/lib64/remmina/plugins&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define REMMINA_RUNTIME_UIDIR &quot;/opt/remmina_devel/remmina/share/remmina/ui&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#define REMMINA_RUNTIME_EXTERNAL_TOOLS_DIR &quot;/opt/remmina_devel/remmina/share/remmina/external_tools&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif</span></div></div><!-- fragment --></div><!-- contents -->
+<a href="config_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="preprocessor">#ifndef __CONFIG_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define __CONFIG_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#define HAVE_SYS_PARAM_H</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#define HAVE_SYS_SOCKET_H</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#define HAVE_ARPA_INET_H</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#define HAVE_NETINET_IN_H</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#define HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#define HAVE_TERMIOS_H</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#define HAVE_NETDB_H</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#define HAVE_FCNTL_H</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#define HAVE_UNISTD_H</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#define HAVE_SYS_UN_H</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#define HAVE_ERRNO_H</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#define GTK_VERSION 3</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#define remmina &quot;remmina&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define UNIQUE_APPNAME &quot;org.Remmina&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#define VERSION &quot;1.2.0-rcgit-18&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#define GIT_REVISION &quot;4957071&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#define GETTEXT_PACKAGE remmina</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#define REMMINA_DATADIR &quot;/usr/local/share&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#define REMMINA_LOCALEDIR &quot;/usr/local/share/locale&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#define REMMINA_PLUGINDIR &quot;/usr/local/lib64/remmina/plugins&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define REMMINA_UIDIR &quot;/usr/local/share/remmina/ui&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#endif</span></div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/index.html b/docs/index.html
index 033383f8f..52ed082f6 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -103,7 +103,7 @@ $(document).ready(function(){initNavTree('index.html','');});
<p>Remmina is not available on the default Debian 9 (Stretch) repositories. It can be installed from the Backports repository.</p>
<p>The <a href="https://backports.debian.org/Instructions/">Debian Backports</a> repository must be enabled to install it, see <a href="https://www.remmina.org/wp/debian-the-boys-are-backport-in-town/">this blog post</a> for more information.</p>
<p>To install Remmina from Debian Backports, just copy and paste the following lines on a terminal window:</p>
-<div class="fragment"><div class="line">echo &#39;deb http://ftp.debian.org/debian stretch-backports main&#39; | sudo tee --append /etc/apt/sources.list.d/stretch-backports.list &gt;&gt; /dev/null</div><div class="line">sudo apt update</div><div class="line">sudo apt install -t stretch-backports remmina remmina-plugin-rdp remmina-plugin-gnome libfreerdp-plugins-standard</div></div><!-- fragment --><h3>Ubuntu</h3>
+<div class="fragment"><div class="line">echo &#39;deb http://ftp.debian.org/debian stretch-backports main&#39; | sudo tee --append /etc/apt/sources.list.d/stretch-backports.list &gt;&gt; /dev/null</div><div class="line">sudo apt update</div><div class="line">sudo apt install -t stretch-backports remmina remmina-plugin-rdp remmina-plugin-secret libfreerdp-plugins-standard</div></div><!-- fragment --><h3>Ubuntu</h3>
<h4>Using Snap Package (also for other <a href="https://snapcraft.io/docs/core/install">supported distros</a>)</h4>
<p>You can install the last release from the Ubuntu Software center, looking for <code>remmina</code>, otherwise you can install it from terminal with:</p>
<div class="fragment"><div class="line">sudo snap install remmina</div></div><!-- fragment --><p>If you want to install latest git revision of remmina, you can use it from the <code>edge</code> channel:</p>
diff --git a/docs/md__c_h_a_n_g_e_l_o_g.html b/docs/md__c_h_a_n_g_e_l_o_g.html
index 32774eaa1..0cbaf19e6 100644
--- a/docs/md__c_h_a_n_g_e_l_o_g.html
+++ b/docs/md__c_h_a_n_g_e_l_o_g.html
@@ -86,7 +86,17 @@ $(document).ready(function(){initNavTree('md__c_h_a_n_g_e_l_o_g.html','');});
<div class="title">Change Log </div> </div>
</div><!--header-->
<div class="contents">
-<div class="textblock"><h2><a href="https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.25">v1.2.0-rcgit.25</a> (2017-12-20)</h2>
+<div class="textblock"><h2><a href="https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.26">v1.2.0-rcgit.26</a> (2017-12-28)</h2>
+<p><a href="https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.25...v1.2.0-rcgit.26">Full Changelog</a></p>
+<p><b>Fixed bugs:</b></p>
+<ul>
+<li>SSH not working <a href="https://github.com/FreeRDP/Remmina/issues/1418">#1418</a></li>
+</ul>
+<p><b>Closed issues:</b></p>
+<ul>
+<li>"Segmentation fault" during start at Xubuntu 17.10 <a href="https://github.com/FreeRDP/Remmina/issues/1419">#1419</a></li>
+</ul>
+<h2><a href="https://github.com/FreeRDP/Remmina/tree/v1.2.0-rcgit.25">v1.2.0-rcgit.25</a> (2017-12-27)</h2>
<p><a href="https://github.com/FreeRDP/Remmina/compare/v1.2.0-rcgit.24...v1.2.0-rcgit.25">Full Changelog</a></p>
<p><b>Implemented enhancements:</b></p>
<ul>
@@ -111,6 +121,7 @@ $(document).ready(function(){initNavTree('md__c_h_a_n_g_e_l_o_g.html','');});
<ul>
<li>Un-check of "Fullscreen on the same monitor as the connection window" won't save <a href="https://github.com/FreeRDP/Remmina/issues/1344">#1344</a></li>
<li>Remmina resets screen resolution settings in RDP shortcut <a href="https://github.com/FreeRDP/Remmina/issues/1323">#1323</a></li>
+<li>SSH Tunneling is broken with SSH Agent with public key <a href="https://github.com/FreeRDP/Remmina/issues/1228">#1228</a></li>
<li>Failed to load plugin: remmina-plugin-telepathy.so - undefined symbol: remmina <a href="https://github.com/FreeRDP/Remmina/issues/714">#714</a></li>
<li>Align SFTP and SSH plugins authentication and tunnel functionalities. <a href="https://github.com/FreeRDP/Remmina/pull/1393">#1393</a> (<a href="https://github.com/antenore">antenore</a>)</li>
<li>Fix Telepathy plugin compilation <a href="https://github.com/FreeRDP/Remmina/pull/1356">#1356</a> (<a href="https://github.com/larchunix">larchunix</a>)</li>
@@ -118,6 +129,8 @@ $(document).ready(function(){initNavTree('md__c_h_a_n_g_e_l_o_g.html','');});
</ul>
<p><b>Closed issues:</b></p>
<ul>
+<li>Unable to reject new or changed RDP certificate <a href="https://github.com/FreeRDP/Remmina/issues/1413">#1413</a></li>
+<li>Trying to open an aplication but it fails all the time <a href="https://github.com/FreeRDP/Remmina/issues/1412">#1412</a></li>
<li>The password in the connections is not saved after upgrading Remmina <a href="https://github.com/FreeRDP/Remmina/issues/1402">#1402</a></li>
<li>remmina fails to open sftp window, connected to ssh2 server with public key auth <a href="https://github.com/FreeRDP/Remmina/issues/1392">#1392</a></li>
<li>Please add hostbased mechanism support for ssh <a href="https://github.com/FreeRDP/Remmina/issues/1373">#1373</a></li>
@@ -129,10 +142,17 @@ $(document).ready(function(){initNavTree('md__c_h_a_n_g_e_l_o_g.html','');});
<li>remmina shows pop-up notification only for first screenshot <a href="https://github.com/FreeRDP/Remmina/issues/1347">#1347</a></li>
<li>SFTP identity File <a href="https://github.com/FreeRDP/Remmina/issues/1301">#1301</a></li>
<li>Password not saved <a href="https://github.com/FreeRDP/Remmina/issues/1047">#1047</a></li>
+<li>Starting the Remmina connection from commandline in full screen <a href="https://github.com/FreeRDP/Remmina/issues/941">#941</a></li>
<li>minimize button does not function well <a href="https://github.com/FreeRDP/Remmina/issues/921">#921</a></li>
</ul>
<p><b>Merged pull requests:</b></p>
<ul>
+<li>Ssh tunnel fixes for #1228 <a href="https://github.com/FreeRDP/Remmina/pull/1417">#1417</a> (<a href="https://github.com/antenore">antenore</a>)</li>
+<li>Fixes 2017 christmas <a href="https://github.com/FreeRDP/Remmina/pull/1416">#1416</a> (<a href="https://github.com/antenore">antenore</a>)</li>
+<li>New Spanish file venezuela <a href="https://github.com/FreeRDP/Remmina/pull/1415">#1415</a> (<a href="https://github.com/jgjimenez">jgjimenez</a>)</li>
+<li>Update da.po <a href="https://github.com/FreeRDP/Remmina/pull/1411">#1411</a> (<a href="https://github.com/scootergrisen">scootergrisen</a>)</li>
+<li>Update Spanish translation <a href="https://github.com/FreeRDP/Remmina/pull/1410">#1410</a> (<a href="https://github.com/fitojb">fitojb</a>)</li>
+<li>Updated French po file <a href="https://github.com/FreeRDP/Remmina/pull/1409">#1409</a> (<a href="https://github.com/DevDef">DevDef</a>)</li>
<li>Updated <a class="el" href="_r_e_a_d_m_e_8md.html">README.MD</a> with Debian install instructions <a href="https://github.com/FreeRDP/Remmina/pull/1399">#1399</a> (<a href="https://github.com/MagicFab">MagicFab</a>)</li>
<li>update simplified Chinese translations. <a href="https://github.com/FreeRDP/Remmina/pull/1367">#1367</a> (<a href="https://github.com/sotux">sotux</a>)</li>
<li>Fix 'consistant' -&gt; 'consistent' typo <a href="https://github.com/FreeRDP/Remmina/pull/1362">#1362</a> (<a href="https://github.com/mfvescovi">mfvescovi</a>)</li>
@@ -368,7 +388,6 @@ $(document).ready(function(){initNavTree('md__c_h_a_n_g_e_l_o_g.html','');});
<li>Connection Timeout - vfprintf.c no such file or directory - Segfault <a href="https://github.com/FreeRDP/Remmina/issues/1080">#1080</a></li>
<li>SSH password can't save , terminal auto disconnection <a href="https://github.com/FreeRDP/Remmina/issues/1078">#1078</a></li>
<li>Remmina getting down when used ssh &amp; mc <a href="https://github.com/FreeRDP/Remmina/issues/1075">#1075</a></li>
-<li>Only stored passwords when connecting via RD-Gateway <a href="https://github.com/FreeRDP/Remmina/issues/922">#922</a></li>
<li>VNC over SSH tunnel very slow <a href="https://github.com/FreeRDP/Remmina/issues/713">#713</a></li>
<li>Domain/Username/Password database <a href="https://github.com/FreeRDP/Remmina/issues/711">#711</a></li>
<li>Remmina RDP hangs after second certificate confirmation when using RD gateway <a href="https://github.com/FreeRDP/Remmina/issues/706">#706</a></li>
diff --git a/docs/remmina__file__manager_8c.html b/docs/remmina__file__manager_8c.html
index 48555870c..9ef6cee90 100644
--- a/docs/remmina__file__manager_8c.html
+++ b/docs/remmina__file__manager_8c.html
@@ -361,8 +361,6 @@ Here is the caller graph for this function:</div>
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="remmina__file__manager_8c_a06196f19abc15526514a5aa59a568798_cgraph.png" border="0" usemap="#remmina__file__manager_8c_a06196f19abc15526514a5aa59a568798_cgraph" alt=""/></div>
-<map name="remmina__file__manager_8c_a06196f19abc15526514a5aa59a568798_cgraph" id="remmina__file__manager_8c_a06196f19abc15526514a5aa59a568798_cgraph">
-</map>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
diff --git a/docs/remmina__sftp__plugin_8c.html b/docs/remmina__sftp__plugin_8c.html
index 128363e8e..935b6c71a 100644
--- a/docs/remmina__sftp__plugin_8c.html
+++ b/docs/remmina__sftp__plugin_8c.html
@@ -573,8 +573,6 @@ Here is the call graph for this function:</div>
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="remmina__sftp__plugin_8c_a14a447ab8a10b109967d92c8d2db0ff9_cgraph.png" border="0" usemap="#remmina__sftp__plugin_8c_a14a447ab8a10b109967d92c8d2db0ff9_cgraph" alt=""/></div>
-<map name="remmina__sftp__plugin_8c_a14a447ab8a10b109967d92c8d2db0ff9_cgraph" id="remmina__sftp__plugin_8c_a14a447ab8a10b109967d92c8d2db0ff9_cgraph">
-</map>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>
diff --git a/docs/remmina__ssh_8c_source.html b/docs/remmina__ssh_8c_source.html
index 884e37a8c..eceaf1038 100644
--- a/docs/remmina__ssh_8c_source.html
+++ b/docs/remmina__ssh_8c_source.html
@@ -86,7 +86,7 @@ $(document).ready(function(){initNavTree('remmina__ssh_8c_source.html','');});
<div class="title">remmina_ssh.c</div> </div>
</div><!--header-->
<div class="contents">
-<a href="remmina__ssh_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) 2009-2011 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-2017 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 &quot;<a class="code" href="config_8h.html">config.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</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;<span class="comment">/* Define this before stdlib.h to have posix_openpt */</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define _XOPEN_SOURCE 600</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define LIBSSH_STATIC 1</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;libssh/libssh.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &lt;signal.h&gt;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#ifdef HAVE_NETDB_H</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &lt;netdb.h&gt;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#ifdef HAVE_ARPA_INET_H</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;arpa/inet.h&gt;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_IN_H</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;netinet/in.h&gt;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#ifdef HAVE_SYS_SOCKET_H</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &lt;sys/socket.h&gt;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifdef HAVE_FCNTL_H</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#ifdef HAVE_ERRNO_H</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef HAVE_TERMIOS_H</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &lt;termios.h&gt;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#ifdef HAVE_UNISTD_H</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#ifdef HAVE_PTY_H</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &lt;pty.h&gt;</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</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="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file_8h.html">remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</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="l00084"></a><span class="lineno"> 84</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="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__ssh_8h.html">remmina_ssh.h</a>&quot;</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</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="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &lt;netinet/tcp.h&gt;</span></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;<span class="preprocessor">#if defined(__FreeBSD__) || defined(__OpenBSD__)</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#ifndef SOL_TCP</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#define SOL_TCP IPPROTO_TCP</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#define SSH_SOCKET_TCP_KEEPIDLE 5</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define SSH_SOCKET_TCP_KEEPCNT 3</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#define SSH_SOCKET_TCP_KEEPINTVL 3</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">/* Remember to lower SSH_SOCKET_TCP_USER_TIMEOUT to 4 when kernel bug 108191 will be fixed */</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#define SSH_SOCKET_TCP_USER_TIMEOUT 9</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment">* SSH Base *</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#define LOCK_SSH(ssh) pthread_mutex_lock(&amp;REMMINA_SSH(ssh)-&gt;ssh_mutex);</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#define UNLOCK_SSH(ssh) pthread_mutex_unlock(&amp;REMMINA_SSH(ssh)-&gt;ssh_mutex);</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694"> 111</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *<a class="code" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694">common_identities</a>[] =</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="stringliteral">&quot;.ssh/id_ed25519&quot;</span>,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="stringliteral">&quot;.ssh/id_rsa&quot;</span>,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="stringliteral">&quot;.ssh/id_dsa&quot;</span>,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="stringliteral">&quot;.ssh/identity&quot;</span>,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; NULL</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;gchar*</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a72a58e416c4eeb9d17eaf76360ebee42"> 121</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh_identity_path</a>(<span class="keyword">const</span> gchar *<span class="keywordtype">id</span>)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == NULL) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span>[0] == <span class="charliteral">&#39;/&#39;</span>) <span class="keywordflow">return</span> g_strdup(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> g_strdup_printf(<span class="stringliteral">&quot;%s/%s&quot;</span>, g_get_home_dir(), <span class="keywordtype">id</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;gchar*</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ab6d8bdad543b3caead2b2b0339484798"> 130</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ab6d8bdad543b3caead2b2b0339484798">remmina_ssh_find_identity</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; gchar *path;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; gint i;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span> (i = 0; <a class="code" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694">common_identities</a>[i]; i++) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; path = <a class="code" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh_identity_path</a>(<a class="code" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694">common_identities</a>[i]);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (g_file_test(path, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_EXISTS)) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> path;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; g_free(path);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#abc556f0a4335083436f6e19c204fa553"> 147</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *fmt)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> gchar *err;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; err = ssh_get_error(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = g_strdup_printf(fmt, err);</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;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1f3297263703b4259c1c9607d710995d"> 157</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *fmt, ...)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; va_list args;</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"> 162</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; va_end(args);</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"> 167</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a2ffcffe3320007cb0fc0b529f3e3b65a"> 168</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a2ffcffe3320007cb0fc0b529f3e3b65a">remmina_ssh_auth_interactive</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; gint ret;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; gint n;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; gint i;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; ret = SSH_AUTH_ERROR;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> == NULL) <span class="keywordflow">return</span> -1;</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; <span class="keywordflow">while</span> ((ret = ssh_userauth_kbdint(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, NULL)) == SSH_AUTH_INFO) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; n = ssh_userauth_kbdint_getnprompts(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; ssh_userauth_kbdint_setanswer(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, i, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</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;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">/* We pass the control to remmina_ssh_auth_password */</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> 1;</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="keyword">static</span> gint</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#ab080906be227e35b5b29a9cfcc3e976c"> 196</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ab080906be227e35b5b29a9cfcc3e976c">remmina_ssh_auth_password</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; gint ret;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; ret = SSH_AUTH_ERROR;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> == NULL) <span class="keywordflow">return</span> -1;</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; ret = ssh_userauth_password(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH password authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</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="keyword">static</span> gint</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a1e78e9f453f0ad2b1f8c7f907d906010"> 216</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1e78e9f453f0ad2b1f8c7f907d906010">remmina_ssh_auth_pubkey</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; gint ret;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; ssh_key priv_key;</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> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> == NULL) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = g_strdup_printf(_(<span class="stringliteral">&quot;SSH public key authentication failed: %s&quot;</span>),</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; _(<span class="stringliteral">&quot;SSH Key file not yet set.&quot;</span>));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> 0;</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"> 230</span>&#160; <span class="keywordflow">if</span> ( ssh_pki_import_privkey_file( ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>, (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> ? ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> : <span class="stringliteral">&quot;&quot;</span>),</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; NULL, NULL, &amp;priv_key ) != SSH_OK ) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> == NULL || ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a>[0] == <span class="charliteral">&#39;\0&#39;</span>) <span class="keywordflow">return</span> -1;</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; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH public key authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; ret = ssh_userauth_publickey(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, priv_key);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; ssh_key_free(priv_key);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH public key authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> 0;</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; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;}</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#afd2145e2c27d0d3401aee66a76f57290"> 251</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#afd2145e2c27d0d3401aee66a76f57290">remmina_ssh_auth_auto_pubkey</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a>* ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; gint ret = ssh_userauth_publickey_auto(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH automatic public key authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> -1;</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;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a168073a50f4e5d4210bfa782d97bb231"> 266</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a168073a50f4e5d4210bfa782d97bb231">remmina_ssh_auth_agent</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a>* ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; gint ret;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; ret = ssh_userauth_agent(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL);</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="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH public key authentication with ssh agent failed: %s&quot;</span>));</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</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; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a8a04317b54a776118e8224fbfa3a685c"> 282</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a8a04317b54a776118e8224fbfa3a685c">remmina_ssh_auth_gssapi</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; gint ret;</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; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</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; ret = ssh_userauth_gssapi(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH Kerberos/GSSAPI authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> 1;</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;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;gint</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a85578987de99e1a7a28819960c445ee2"> 301</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a85578987de99e1a7a28819960c445ee2">remmina_ssh_auth</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *password)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;{</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; gint method;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; gint ret;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">/* Check known host again to ensure it&#39;s still the original server when user forks</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment"> a new session from existing one */</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span> (ssh_is_server_known(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>) != SSH_SERVER_KNOWN_OK) {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(ssh, <span class="stringliteral">&quot;SSH public key has changed!&quot;</span>);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> 0;</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"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (password) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> = g_strdup(password);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> = g_strdup(password);</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;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; method = ssh_userauth_list(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">switch</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a>) {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a7d995a7868d2d2f81e9dd2f898b206fe">SSH_AUTH_PASSWORD</a>:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_INTERACTIVE || method &amp; SSH_AUTH_METHOD_PASSWORD) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; ret = <a class="code" href="remmina__ssh_8c.html#a2ffcffe3320007cb0fc0b529f3e3b65a">remmina_ssh_auth_interactive</a>(ssh);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (!ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#ab080906be227e35b5b29a9cfcc3e976c">remmina_ssh_auth_password</a>(ssh);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5aeba5f4ff7657d7b15519556793ee8930">SSH_AUTH_PUBLICKEY</a>:</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_PUBLICKEY)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#a1e78e9f453f0ad2b1f8c7f907d906010">remmina_ssh_auth_pubkey</a>(ssh);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a39a8dcea793c406f0fe90f3175c4318e">SSH_AUTH_AGENT</a>:</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#a168073a50f4e5d4210bfa782d97bb231">remmina_ssh_auth_agent</a>(ssh);</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; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a9f6024449a620d679eab2c09ea77877e">SSH_AUTH_AUTO_PUBLICKEY</a>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="comment">/* ssh_agent or none */</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#afd2145e2c27d0d3401aee66a76f57290">remmina_ssh_auth_auto_pubkey</a>(ssh);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="comment">/* Not yet supported by libssh */</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">case</span> SSH_AUTH_HOSTBASED:</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_HOSTBASED)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">//return remmina_ssh_auth_hostbased;</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor">#endif</span></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; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a6264a71469928ad51fa802f65f1a934a">SSH_AUTH_GSSAPI</a>:</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_GSSAPI_MIC)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#a8a04317b54a776118e8224fbfa3a685c">remmina_ssh_auth_gssapi</a>(ssh);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</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;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;gint</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ac4967b502c8b92ae9b948e8150df9267"> 366</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ac4967b502c8b92ae9b948e8150df9267">remmina_ssh_auth_gui</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <a class="code" href="struct___remmina_init_dialog.html">RemminaInitDialog</a> *dialog, <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; gchar *tips;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; gchar *keyname;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; gchar *pwdtype;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; gint ret;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordtype">size_t</span> len;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; guchar *pubkey;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; ssh_key server_pubkey;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; gboolean disablepasswordstoring;</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; <span class="comment">/* Check if the server&#39;s public key is known */</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; ret = ssh_is_server_known(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">switch</span> (ret) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_KNOWN_OK:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">break</span>; <span class="comment">/* ok */</span></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; <span class="keywordflow">case</span> SSH_SERVER_FILE_NOT_FOUND:</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">/* fallback to SSH_SERVER_NOT_KNOWN behavior */</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_NOT_KNOWN:</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_KNOWN_CHANGED:</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_FOUND_OTHER:</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> ( ssh_get_publickey(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, &amp;server_pubkey) != SSH_OK ) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, <span class="stringliteral">&quot;ssh_get_publickey() has failed: %s&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> ( ssh_get_publickey_hash(server_pubkey, SSH_PUBLICKEY_HASH_MD5, &amp;pubkey, &amp;len) != 0 ) {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; ssh_key_free(server_pubkey);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, <span class="stringliteral">&quot;ssh_get_publickey_hash() has failed: %s&quot;</span>);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> 0;</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; ssh_key_free(server_pubkey);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; keyname = ssh_get_hexa(pubkey, len);</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; <span class="keywordflow">if</span> (ret == SSH_SERVER_NOT_KNOWN || ret == SSH_SERVER_FILE_NOT_FOUND) {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; ret = <a class="code" href="remmina__init__dialog_8c.html#a1c2d938b96a52fa9a3c11ebc8a091d8b">remmina_init_dialog_serverkey_unknown</a>(dialog, keyname);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; ret = <a class="code" href="remmina__init__dialog_8c.html#a493c615103fc257d1783125745018f1a">remmina_init_dialog_serverkey_changed</a>(dialog, keyname);</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; ssh_string_free_char(keyname);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; ssh_clean_pubkey_hash(&amp;pubkey);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (ret != GTK_RESPONSE_OK) <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; ssh_write_knownhost(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_ERROR:</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, <span class="stringliteral">&quot;SSH known host checking failed: %s&quot;</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">switch</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a>) {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a7d995a7868d2d2f81e9dd2f898b206fe">SSH_AUTH_PASSWORD</a>:</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; tips = _(<span class="stringliteral">&quot;Authenticating %s&#39;s password to SSH server %s...&quot;</span>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; keyname = _(<span class="stringliteral">&quot;SSH password&quot;</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; pwdtype = <span class="stringliteral">&quot;ssh_password&quot;</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5aeba5f4ff7657d7b15519556793ee8930">SSH_AUTH_PUBLICKEY</a>:</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a39a8dcea793c406f0fe90f3175c4318e">SSH_AUTH_AGENT</a>:</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a9f6024449a620d679eab2c09ea77877e">SSH_AUTH_AUTO_PUBLICKEY</a>:</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; tips = _(<span class="stringliteral">&quot;Authenticating %s&#39;s identity to SSH server %s...&quot;</span>);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; keyname = _(<span class="stringliteral">&quot;SSH private key passphrase&quot;</span>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; pwdtype = <span class="stringliteral">&quot;ssh_passphrase&quot;</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a6264a71469928ad51fa802f65f1a934a">SSH_AUTH_GSSAPI</a>:</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; tips = _(<span class="stringliteral">&quot;Authenticating %s&#39;s Kerberos to SSH server %s...&quot;</span>);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; keyname = _(<span class="stringliteral">&quot;SSH Kerberos/GSSAPI&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; pwdtype = <span class="stringliteral">&quot;kerberos_token&quot;</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> FALSE;</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; <span class="comment">/* Try empty password or existing password/passphrase first */</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; ret = <a class="code" href="remmina__ssh_8c.html#a85578987de99e1a7a28819960c445ee2">remmina_ssh_auth</a>(ssh, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, pwdtype));</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (ret &gt; 0) <span class="keywordflow">return</span> 1;</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; <span class="comment">/* Requested for a non-empty password */</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span> (ret &lt; 0) {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span> (!dialog) <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="remmina__init__dialog_8c.html#a0091e150b446faa19e9af16f3d4de3cf">remmina_init_dialog_set_status</a>(dialog, tips, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; disablepasswordstoring = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, FALSE);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; ret = <a class="code" href="remmina__init__dialog_8c.html#a755fc90b41b65cd6106915ab501433fa">remmina_init_dialog_authpwd</a>(dialog, keyname, !disablepasswordstoring);</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; <span class="keywordflow">if</span> (ret == GTK_RESPONSE_OK) {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span> (dialog-&gt;<a class="code" href="struct___remmina_init_dialog.html#a2a35558c458dad6c0405552b02571445">save_password</a>)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, pwdtype, dialog-&gt;<a class="code" href="struct___remmina_init_dialog.html#aca19677d47a487f42d5b1707f8225e03">password</a>);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> -1;</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; ret = <a class="code" href="remmina__ssh_8c.html#a85578987de99e1a7a28819960c445ee2">remmina_ssh_auth</a>(ssh, dialog-&gt;<a class="code" href="struct___remmina_init_dialog.html#aca19677d47a487f42d5b1707f8225e03">password</a>);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (ret &lt;= 0) {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> 1;</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;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a5a3191a46707e450ee51286976531225"> 469</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a5a3191a46707e450ee51286976531225">remmina_ssh_log_callback</a>(ssh_session session, <span class="keywordtype">int</span> priority, <span class="keyword">const</span> <span class="keywordtype">char</span> *message, <span class="keywordtype">void</span> *userdata)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;{</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] %s\n&quot;</span>, message);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;gboolean</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a624b8ac30ddcd00ebda0b51d504f5a33"> 476</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a624b8ac30ddcd00ebda0b51d504f5a33">remmina_ssh_init_session</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; gint verbosity;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; gint rc;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; socket_t sshsock;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; gint optval;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a> = g_new0(<span class="keyword">struct</span> ssh_callbacks_struct, 1);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">/* Init &amp; startup the SSH session */</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = ssh_new();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_HOST, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_PORT, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">/* When SSH_OPTIONS_USER is not set, the local user account is used */</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span> (*ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a> != 0)</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_USER, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span> (*ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> != 0) {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_IDENTITY, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_IDENTITY has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_IDENTITY is not set, by default identity, id_dsa and id_rsa are checked.\n&quot;</span>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#ifdef SNAP_BUILD</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_SSH_DIR, g_strdup_printf(<span class="stringliteral">&quot;%s/.ssh&quot;</span>, g_getenv(<span class="stringliteral">&quot;SNAP_USER_COMMON&quot;</span>)));</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_KEY_EXCHANGE, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_KEY_EXCHANGE has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_KEY_EXCHANGE does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_CIPHERS_C_S, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_CIPHERS_C_S has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_CIPHERS_C_S does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_HOSTKEYS, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_HOSTKEYS has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_HOSTKEYS does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_PROXYCOMMAND, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_PROXYCOMMAND has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_PROXYCOMMAND does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_STRICTHOSTKEYCHECK, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_STRICTHOSTKEYCHECK has been set to: %d\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_STRICTHOSTKEYCHECK does not have a valid value: %d\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; ssh_callbacks_init(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a>()) {</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; verbosity = <a class="code" href="remmina__connection__window_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#aac4f34f297a653052752b571777bc001">ssh_loglevel</a>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_LOG_VERBOSITY, &amp;verbosity);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>-&gt;log_function = <a class="code" href="remmina__ssh_8c.html#a5a3191a46707e450ee51286976531225">remmina_ssh_log_callback</a>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="comment">/* Reset libssh legacy userdata. This is a workaround for a libssh bug */</span></div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; ssh_set_log_userdata(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>-&gt;userdata = ssh;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; ssh_set_callbacks(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">/* As the latest parse the ~/.ssh/config file */</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__connection__window_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a1d7deb091e0d51a8d7885ad9e22dc9a7">ssh_parseconfig</a>) {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; ssh_options_parse_config(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">if</span> (ssh_connect(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>)) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;Failed to startup SSH session: %s&quot;</span>));</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="comment">/* Set keepalive on ssh socket, so we can keep firewalls awaken and detect</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="comment"> * when we loss the tunnel */</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; sshsock = ssh_get_fd(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span> (sshsock &gt;= 0) {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; optval = 1;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, SOL_SOCKET, SO_KEEPALIVE, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP KeepAlive not set\n&quot;</span>);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor">#ifdef TCP_KEEPIDLE</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; optval = SSH_SOCKET_TCP_KEEPIDLE;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPIDLE, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_KEEPIDLE not set\n&quot;</span>);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor">#ifdef TCP_KEEPCNT</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; optval = SSH_SOCKET_TCP_KEEPCNT;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPCNT, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_KEEPCNT not set\n&quot;</span>);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor">#ifdef TCP_KEEPINTVL</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; optval = SSH_SOCKET_TCP_KEEPINTVL;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPINTVL, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_KEEPINTVL not set\n&quot;</span>);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor">#ifdef TCP_USER_TIMEOUT</span></div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; optval = SSH_SOCKET_TCP_USER_TIMEOUT;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_USER_TIMEOUT, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_USER_TIMEOUT not set\n&quot;</span>);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="comment">/* Try the &quot;none&quot; authentication */</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">if</span> (ssh_userauth_none(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL) == SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;}</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;gboolean</div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a029fc6b0f826502181196254e8ba511a"> 603</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;{</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">const</span> gchar *ssh_server;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keyword">const</span> gchar *ssh_username;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keyword">const</span> gchar *ssh_privatekey;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keyword">const</span> gchar *server;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; gchar *s;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = NULL;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a> = NULL;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = FALSE;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = NULL;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> = NULL;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; pthread_mutex_init(&amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a547feb6e46dfb8e37a4eb338c17d7b52">ssh_mutex</a>, NULL);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">/* Parse the address and port */</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; ssh_server = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_server&quot;</span>);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; ssh_username = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_username&quot;</span>);</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; ssh_privatekey = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_privatekey&quot;</span>);</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; server = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;server&quot;</span>);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">if</span> (ssh_server) {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>(ssh_server, 22, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a>);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>(server, 0, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>, NULL);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (server == NULL) {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a> = g_strdup(<span class="stringliteral">&quot;localhost&quot;</span>);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a> = 22;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>(server, 0, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>, NULL);</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a> = 22;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a> = g_strdup(ssh_username ? ssh_username : g_get_user_name());</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> = NULL;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a> = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_auth&quot;</span>, 0);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_charset&quot;</span>));</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_kex_algorithms&quot;</span>));</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_ciphers&quot;</span>));</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_hostkeytypes&quot;</span>));</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_proxycommand&quot;</span>));</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a> = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_stricthostkeycheck&quot;</span>, 0);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="comment">/* Public/Private keys */</span></div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; s = (ssh_privatekey ? g_strdup(ssh_privatekey) : <a class="code" href="remmina__ssh_8c.html#ab6d8bdad543b3caead2b2b0339484798">remmina_ssh_find_identity</a>());</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> = <a class="code" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh_identity_path</a>(s);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; g_free(s);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> = NULL;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;}</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="keyword">static</span> gboolean</div><div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d"> 661</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d">remmina_ssh_init_from_ssh</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> <a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh_src)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;{</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = NULL;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = FALSE;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = NULL;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; pthread_mutex_init(&amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a547feb6e46dfb8e37a4eb338c17d7b52">ssh_mutex</a>, NULL);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a> = ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a> = ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a>;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a> = ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;}</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;gchar*</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a09bd4aee40b6e8d6ba8ffaa84dc95330"> 686</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a09bd4aee40b6e8d6ba8ffaa84dc95330">remmina_ssh_convert</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *from)</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;{</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; gchar *to = NULL;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> &amp;&amp; from) {</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; to = g_convert(from, -1, <span class="stringliteral">&quot;UTF-8&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>, NULL, NULL, NULL);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">if</span> (!to) to = g_strdup(from);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> to;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;}</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;gchar*</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aeccf94afb57bcad37b4241d45fcb3fea"> 699</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aeccf94afb57bcad37b4241d45fcb3fea">remmina_ssh_unconvert</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *from)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;{</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; gchar *to = NULL;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> &amp;&amp; from) {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; to = g_convert(from, -1, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>, <span class="stringliteral">&quot;UTF-8&quot;</span>, NULL, NULL, NULL);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">if</span> (!to) to = g_strdup(from);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">return</span> to;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;}</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#acdb9f57d2f9b47913715a8d8a0ea0c02"> 712</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;{</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>) {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; ssh_disconnect(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; ssh_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = NULL;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a>);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; pthread_mutex_destroy(&amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a547feb6e46dfb8e37a4eb338c17d7b52">ssh_mutex</a>);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; g_free(ssh);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;}</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="comment">* SSH Tunnel *</span></div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html"> 734</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">_RemminaSSHTunnelBuffer</a> {</div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b"> 735</a></span>&#160; gchar *<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394"> 736</a></span>&#160; gchar *<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a>;</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c"> 737</a></span>&#160; ssize_t <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;};</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>*</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#ae2c4f938ccb0f2b94e3ef8af9f69747a"> 741</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae2c4f938ccb0f2b94e3ef8af9f69747a">remmina_ssh_tunnel_buffer_new</a>(ssize_t <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>)</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;{</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a> *buffer;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; buffer = g_new(<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>, 1);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a> = (gchar*)g_malloc(len);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a> = buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">return</span> buffer;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;}</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c"> 754</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a> *buffer)</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;{</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span> (buffer) {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; g_free(buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; g_free(buffer);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;}</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>*</div><div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#abf04fd329ab77bbd4f6aa1cb1eaa349d"> 764</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#abf04fd329ab77bbd4f6aa1cb1eaa349d">remmina_ssh_tunnel_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;{</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; tunnel = g_new(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>, 1);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(REMMINA_SSH(tunnel), remminafile);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = -1;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a> = NULL;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a> = NULL;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a> = NULL;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> = 0;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a> = 0;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a> = NULL;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = FALSE;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = -1;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a> = NULL;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> = 0;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a> = NULL;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a> = 0;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a> = NULL;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> = 0;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a> = NULL;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> = NULL;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa904bb1d9f643f6fde2b0eea4a8b1660">connect_func</a> = NULL;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a> = NULL;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a> = NULL;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">return</span> tunnel;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;}</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7"> 799</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7">remmina_ssh_tunnel_close_all_channels</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel)</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;{</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>; i++) {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i]);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; ssh_channel_close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i]);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; ssh_channel_send_eof(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i]);</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; ssh_channel_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i]);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a> = NULL;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a> = NULL;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>);</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a> = NULL;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> = 0;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a> = 0;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>) {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; ssh_channel_close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>);</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; ssh_channel_send_eof(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; ssh_channel_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a> = NULL;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;}</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a"> 831</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a">remmina_ssh_tunnel_remove_channel</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, gint n)</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;{</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; ssh_channel_close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n]);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; ssh_channel_send_eof(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n]);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; ssh_channel_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n]);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[n]);</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[n]);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>--;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n] = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>];</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>] = NULL;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[n] = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>];</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[n] = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>];</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;}</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="comment">/* Register the new channel/socket pair */</span></div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5"> 848</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5">remmina_ssh_tunnel_add_channel</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, ssh_channel channel, gint sock)</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;{</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; gint flags;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; gint i;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; i = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>++;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> &gt; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a>) {</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="comment">/* Allocate an extra NULL pointer in channels for ssh_select */</span></div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a> = (ssh_channel*)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>,</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keyword">sizeof</span>(ssh_channel) * (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> + 1));</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a> = (gint*)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>,</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keyword">sizeof</span>(gint) * tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a> = (<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>**)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>,</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keyword">sizeof</span>(<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>*) * tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>);</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a> = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a> = (ssh_channel*)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a>,</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keyword">sizeof</span>(ssh_channel) * (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> + 1));</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i] = channel;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i + 1] = NULL;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i] = sock;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i] = NULL;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; flags = fcntl(sock, F_GETFL, 0);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; fcntl(sock, F_SETFL, flags | O_NONBLOCK);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;}</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;<span class="keyword">static</span> gpointer</div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a2c47bcbe038c0d5a393a781c96a5a549"> 878</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a2c47bcbe038c0d5a393a781c96a5a549">remmina_ssh_tunnel_main_thread_proc</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;{</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel = (<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>*)data;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; gchar *<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a>;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; ssize_t <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> = 0, lenw = 0;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; fd_set <span class="keyword">set</span>;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keyword">struct </span>timeval timeout;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; GTimeVal t1, t2;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; glong diff;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; ssh_channel channel = NULL;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; gboolean first = TRUE;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; gboolean disconnected;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; gint sock;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; gint maxfd;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; gint i;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; gint ret;</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keyword">struct </span>sockaddr_in sin;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; g_get_current_time(&amp;t1);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; t2 = t1;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">switch</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a>) {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a78cac65c66c1f72592488c7c5728ea14">REMMINA_SSH_TUNNEL_OPEN</a>:</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="comment">/* Accept a local connection */</span></div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; sock = accept(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a>, NULL, NULL);</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">if</span> (sock &lt; 0) {</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to accept local socket&quot;</span>);</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">if</span> ((channel = ssh_channel_new(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad9887ee0673a2b0b03b091746ae02d23">ssh</a>.<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>)) == NULL) {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; close(sock);</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to create channel : %s&quot;</span>);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; }</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="comment">/* Request the SSH server to connect to the destination */</span></div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span> (ssh_channel_open_forward(channel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>, <span class="stringliteral">&quot;127.0.0.1&quot;</span>, 0) != SSH_OK) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; close(sock);</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), _(<span class="stringliteral">&quot;Failed to connect to the SSH tunnel destination: %s&quot;</span>));</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; }</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5">remmina_ssh_tunnel_add_channel</a>(tunnel, channel, sock);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>:</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="keywordflow">if</span> ((tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a> = ssh_channel_new(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad9887ee0673a2b0b03b091746ae02d23">ssh</a>.<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>)) == NULL) {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to create channel : %s&quot;</span>);</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; }</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__public_8c.html#a12ba081432e5f32cf8287231d4779ecf">remmina_public_get_xauth_cookie</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a>, &amp;ptr)) {</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;%s&quot;</span>, ptr);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; g_free(ptr);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">if</span> (ssh_channel_open_session(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>) ||</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; ssh_channel_request_x11(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, TRUE, NULL, ptr,</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; gdk_x11_screen_get_screen_number(gdk_screen_get_default()))) {</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; g_free(ptr);</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to open channel : %s&quot;</span>);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; }</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; g_free(ptr);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">if</span> (ssh_channel_request_exec(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>)) {</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; ptr = g_strdup_printf(_(<span class="stringliteral">&quot;Failed to execute %s on SSH server : %%s&quot;</span>), tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>);</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), ptr);</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; g_free(ptr);</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; }</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> &amp;&amp;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; !(*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>)) {</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a>:</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="comment">/* Detect the next available port starting from 6010 on the server */</span></div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">for</span> (i = 10; i &lt;= MAX_X_DISPLAY_NUMBER; i++) {</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordflow">if</span> (ssh_forward_listen(REMMINA_SSH(tunnel)-&gt;session, (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6fa916d3736cb8e2a0e6541f608c209b">bindlocalhost</a> ? <span class="stringliteral">&quot;localhost&quot;</span> : NULL), 6000 + i, NULL)) {</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> = i;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; }</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> &lt; 1) {</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), _(<span class="stringliteral">&quot;Failed to request port forwarding : %s&quot;</span>));</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> &amp;&amp;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; !(*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>)) {</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; }</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>:</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keywordflow">if</span> (ssh_forward_listen(REMMINA_SSH(tunnel)-&gt;session, NULL, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>, NULL)) {</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH (tunnel), _(<span class="stringliteral">&quot;Failed to request port forwarding : %s&quot;</span>));</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; }</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> &amp;&amp;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; !(*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>)) {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; }</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; }</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; }</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a> = 10240;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a> = g_malloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a>);</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="comment">/* Start the tunnel data transmittion */</span></div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">while</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a> ||</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a> ||</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">if</span> (first) {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; first = FALSE;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="comment">/* Wait for a period of time for the first incoming connection */</span></div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>) {</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; channel = ssh_channel_accept_x11(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, 15000);</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; channel = ssh_channel_accept_forward(REMMINA_SSH(tunnel)-&gt;session, 15000, &amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>);</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; }</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordflow">if</span> (!channel) {</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), _(<span class="stringliteral">&quot;No response from the server.&quot;</span>));</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; }</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; }</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa904bb1d9f643f6fde2b0eea4a8b1660">connect_func</a>) {</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa904bb1d9f643f6fde2b0eea4a8b1660">connect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; }</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="comment">/* For reverse tunnel, we only need one connection. */</span></div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; ssh_forward_cancel(REMMINA_SSH (tunnel)-&gt;session, NULL, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>);</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> != <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="comment">/* Poll once per some period of time if no incoming connections.</span></div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment"> * Don&#39;t try to poll continuously as it will significantly slow down the loop */</span></div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; g_get_current_time(&amp;t1);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; diff = (t1.tv_sec - t2.tv_sec) * 10 + (t1.tv_usec - t2.tv_usec) / 100000;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">if</span> (diff &gt; 1) {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>) {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; channel = ssh_channel_accept_x11(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, 0);</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; channel = ssh_channel_accept_forward(REMMINA_SSH(tunnel)-&gt;session, 0, &amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keywordflow">if</span> (channel == NULL) {</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; t2 = t1;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; }</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; }</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; }</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">if</span> (channel) {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; sin.sin_family = AF_INET;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; sin.sin_port = htons(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ae41b6af92643cfbcd3e13275f4281260">localport</a>);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; sin.sin_addr.s_addr = inet_addr(<span class="stringliteral">&quot;127.0.0.1&quot;</span>);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; sock = socket(AF_INET, SOCK_STREAM, 0);</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordflow">if</span> (connect(sock, (<span class="keyword">struct</span> sockaddr *)&amp;sin, <span class="keyword">sizeof</span>(sin)) &lt; 0) {</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel),</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="stringliteral">&quot;Cannot connect to local port %i.&quot;</span>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ae41b6af92643cfbcd3e13275f4281260">localport</a>);</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; close(sock);</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; sock = -1;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; sock = <a class="code" href="remmina__public_8c.html#a52656bbe00a83068f36337f449bdc767">remmina_public_open_xdisplay</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a>);</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; }</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">if</span> (sock &gt;= 0) {</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <a class="code" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5">remmina_ssh_tunnel_add_channel</a>(tunnel, channel, sock);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="comment">/* Failed to create unix socket. Will this happen? */</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; channel = NULL;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; }</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; }</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> &lt;= 0) {</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="comment">/* No more connections. We should quit */</span></div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; }</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; timeout.tv_sec = 0;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; timeout.tv_usec = 200000;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; FD_ZERO(&amp;<span class="keyword">set</span>);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; maxfd = 0;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>; i++) {</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i] &gt; maxfd) {</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; maxfd = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i];</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; FD_SET(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], &amp;<span class="keyword">set</span>);</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; }</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; ret = ssh_select(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a>, maxfd + 1, &amp;<span class="keyword">set</span>, &amp;timeout);</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">if</span> (!tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">if</span> (ret == SSH_EINTR) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="keywordflow">if</span> (ret == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; i = 0;</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">while</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> &amp;&amp; i &lt; tunnel-&gt;num_channels) {</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; disconnected = FALSE;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">if</span> (FD_ISSET(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], &amp;<span class="keyword">set</span>)) {</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keywordflow">while</span> (!disconnected &amp;&amp;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; (len = read(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a>)) &gt; 0) {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">for</span> (ptr = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a>, lenw = 0; len &gt; 0; len -= lenw, ptr += lenw) {</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; lenw = ssh_channel_write(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i], (<span class="keywordtype">char</span>*)ptr, len);</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">if</span> (lenw &lt;= 0) {</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;ssh_channel_write() returned an error: %s&quot;</span>);</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; }</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; }</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; }</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">if</span> (len == 0) {</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;read on tunnel listening socket returned an error: %s&quot;</span>);</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; }</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; }</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="keywordflow">if</span> (disconnected) {</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] tunnel has been disconnected. Reason: %s\n&quot;</span>, REMMINA_SSH(tunnel)-&gt;error);</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a">remmina_ssh_tunnel_remove_channel</a>(tunnel, i);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; }</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; i++;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; }</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <span class="keywordflow">if</span> (!tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; i = 0;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keywordflow">while</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> &amp;&amp; i &lt; tunnel-&gt;num_channels) {</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; disconnected = FALSE;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keywordflow">if</span> (!tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]) {</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; len = ssh_channel_poll(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i], 0);</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="keywordflow">if</span> (len == SSH_ERROR || len == SSH_EOF) {</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;ssh_channel_poll() returned an error : %s&quot;</span>);</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (len &gt; 0) {</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i] = <a class="code" href="remmina__ssh_8c.html#ae2c4f938ccb0f2b94e3ef8af9f69747a">remmina_ssh_tunnel_buffer_new</a>(len);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; len = ssh_channel_read_nonblocking(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i], tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>, len, 0);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) {</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;ssh_channel_read_nonblocking() returned an error : %s&quot;</span>);</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; }</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; }</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; }</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">if</span> (!disconnected &amp;&amp; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]) {</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">for</span> (lenw = 0; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> &gt; 0;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> -= lenw, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a> += lenw) {</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; lenw = write(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordflow">if</span> (lenw == -1 &amp;&amp; errno == EAGAIN &amp;&amp; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) {</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="comment">/* Sometimes we cannot write to a socket (always EAGAIN), probably because it&#39;s internal</span></div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment"> * buffer is full. We need read the pending bytes from the socket first. so here we simply</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="comment"> * break, leave the buffer there, and continue with other data */</span></div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; }</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">if</span> (lenw &lt;= 0) {</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;write on tunnel listening socket returned an error: %s&quot;</span>);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; }</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; }</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> &lt;= 0) {</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]);</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i] = NULL;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; }</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; }</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">if</span> (disconnected) {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] tunnel has been disconnected. Reason: %s\n&quot;</span>, REMMINA_SSH(tunnel)-&gt;error);</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a">remmina_ssh_tunnel_remove_channel</a>(tunnel, i);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; }</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; i++;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; }</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; }</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <a class="code" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7">remmina_ssh_tunnel_close_all_channels</a>(tunnel);</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;}</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="keyword">static</span> gpointer</div><div class="line"><a name="l01213"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6"> 1213</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;{</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel = (<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>*)data;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keywordflow">while</span> (TRUE) {</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2c47bcbe038c0d5a393a781c96a5a549">remmina_ssh_tunnel_main_thread_proc</a>(data);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> &lt; 0 || tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> == 0 || !tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; }</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;}</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ae9f52b1a3a545acae8c93007e20ec909"> 1229</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae9f52b1a3a545acae8c93007e20ec909">remmina_ssh_tunnel_cancel_accept</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel)</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;{</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> &gt;= 0) {</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a>);</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = -1;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; }</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;}</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;gboolean</div><div class="line"><a name="l01239"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53"> 1239</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a52b3f47eac79f2781ba81d61505f4f53">remmina_ssh_tunnel_open</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>* tunnel, <span class="keyword">const</span> gchar *host, gint port, gint local_port)</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;{</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; gint sock;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; gint sockopt = 1;</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keyword">struct </span>sockaddr_in sin;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a78cac65c66c1f72592488c7c5728ea14">REMMINA_SSH_TUNNEL_OPEN</a>;</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a> = g_strdup(host);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> = port;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> == 0) {</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Destination port has not been assigned&quot;</span>);</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; }</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="comment">/* Create the server socket that listens on the local port */</span></div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; sock = socket(AF_INET, SOCK_STREAM, 0);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordflow">if</span> (sock &lt; 0) {</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to create socket.&quot;</span>);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; }</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &amp;sockopt, <span class="keyword">sizeof</span>(sockopt));</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; sin.sin_family = AF_INET;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; sin.sin_port = htons(local_port);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; sin.sin_addr.s_addr = inet_addr(<span class="stringliteral">&quot;127.0.0.1&quot;</span>);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">if</span> (bind(sock, (<span class="keyword">struct</span> sockaddr *)&amp;sin, <span class="keyword">sizeof</span>(sin))) {</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to bind on local port.&quot;</span>);</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; close(sock);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; }</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="keywordflow">if</span> (listen(sock, 1)) {</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to listen on local port.&quot;</span>);</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; close(sock);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; }</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = sock;</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; }</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;}</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;gboolean</div><div class="line"><a name="l01290"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ac6d58beb4df141c6353e897c39748146"> 1290</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ac6d58beb4df141c6353e897c39748146">remmina_ssh_tunnel_x11</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, <span class="keyword">const</span> gchar *cmd)</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;{</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a> = g_strdup(cmd);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; }</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;}</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;gboolean</div><div class="line"><a name="l01306"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aba49db2ced40e21e8adfad69dcfda2c4"> 1306</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aba49db2ced40e21e8adfad69dcfda2c4">remmina_ssh_tunnel_xport</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, gboolean bindlocalhost)</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;{</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a>;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6fa916d3736cb8e2a0e6541f608c209b">bindlocalhost</a> = bindlocalhost;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; }</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;}</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;gboolean</div><div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ae47c8270267b02b9c0ff5b36074101c2"> 1322</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae47c8270267b02b9c0ff5b36074101c2">remmina_ssh_tunnel_reverse</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, gint port, gint local_port)</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;{</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> = port;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ae41b6af92643cfbcd3e13275f4281260">localport</a> = local_port;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; }</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;}</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;gboolean</div><div class="line"><a name="l01339"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aeb20d31243a4d30e469a34fe01684e38"> 1339</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aeb20d31243a4d30e469a34fe01684e38">remmina_ssh_tunnel_terminated</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>* tunnel)</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;{</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">return</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> == 0);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;}</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01346"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a223f8dd7a678bcec2ece40a2d8f7ea06"> 1346</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a223f8dd7a678bcec2ece40a2d8f7ea06">remmina_ssh_tunnel_free</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>* tunnel)</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;{</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; pthread_t thread;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; thread = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; <span class="keywordflow">if</span> (thread != 0) {</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = FALSE;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; pthread_cancel(thread);</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; pthread_join(thread, NULL);</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; }</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a> &amp;&amp; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> &gt; 0) {</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; ssh_forward_cancel(REMMINA_SSH (tunnel)-&gt;session, NULL, 6000 + tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a>);</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; }</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> &gt;= 0) {</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a>);</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = -1;</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; }</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <a class="code" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7">remmina_ssh_tunnel_close_all_channels</a>(tunnel);</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a>);</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a>);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>);</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a>);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(REMMINA_SSH(tunnel));</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;}</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="comment">* SSH sFTP *</span></div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>*</div><div class="line"><a name="l01383"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a3d7138d9cbbe44aea15440436ce85d6e"> 1383</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a3d7138d9cbbe44aea15440436ce85d6e">remmina_sftp_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;{</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; sftp = g_new(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>, 1);</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(REMMINA_SSH(sftp), remminafile);</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = NULL;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">return</span> sftp;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;}</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>*</div><div class="line"><a name="l01398"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1500d65d1f0751812f237c1cb4d15188"> 1398</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1500d65d1f0751812f237c1cb4d15188">remmina_sftp_new_from_ssh</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;{</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; sftp = g_new(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>, 1);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <a class="code" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d">remmina_ssh_init_from_ssh</a>(REMMINA_SSH(sftp), ssh);</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = NULL;</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keywordflow">return</span> sftp;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;}</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;gboolean</div><div class="line"><a name="l01413"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1e09b32044c240a7dce0ad8afcbf0ff2"> 1413</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1e09b32044c240a7dce0ad8afcbf0ff2">remmina_sftp_open</a>(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp)</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;{</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = sftp_new(sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#a7dab48a7603f1dd6671a8dd1efe1958e">ssh</a>.<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">if</span> (!sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>) {</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(sftp), _(<span class="stringliteral">&quot;Failed to create sftp session: %s&quot;</span>));</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; }</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="keywordflow">if</span> (sftp_init(sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>)) {</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(sftp), _(<span class="stringliteral">&quot;Failed to initialize sftp session: %s&quot;</span>));</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; }</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;}</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aaaf171c31b73f06f1026239253d9f6b9"> 1429</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aaaf171c31b73f06f1026239253d9f6b9">remmina_sftp_free</a>(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp)</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;{</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordflow">if</span> (sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>) {</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; sftp_free(sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>);</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = NULL;</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; }</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(REMMINA_SSH(sftp));</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;}</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;<span class="comment">* SSH Shell *</span></div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*</div><div class="line"><a name="l01444"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a30412e0b4302f5ae0b9be2749390a48d"> 1444</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a30412e0b4302f5ae0b9be2749390a48d">remmina_ssh_shell_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;{</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell;</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; shell = g_new0(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>, 1);</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; <a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(REMMINA_SSH(shell), remminafile);</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> = -1;</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> = -1;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;exec&quot;</span>));</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <span class="keywordflow">return</span> shell;</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;}</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*</div><div class="line"><a name="l01461"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ae0792ddb4adcaafefc1a4604cefdd8f4"> 1461</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae0792ddb4adcaafefc1a4604cefdd8f4">remmina_ssh_shell_new_from_ssh</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;{</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; shell = g_new0(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>, 1);</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; <a class="code" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d">remmina_ssh_init_from_ssh</a>(REMMINA_SSH(shell), ssh);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> = -1;</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> = -1;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; <span class="keywordflow">return</span> shell;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;}</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="keyword">static</span> gboolean</div><div class="line"><a name="l01477"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a99b659d38f12972157594e24d0f97a94"> 1477</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a99b659d38f12972157594e24d0f97a94">remmina_ssh_call_exit_callback_on_main_thread</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;{</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell = (<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*)data;</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <span class="keywordflow">if</span> ( shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> )</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a>( shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#adedb04066148973fed2de9f04b80286d">user_data</a> );</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;}</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;<span class="keyword">static</span> gpointer</div><div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#abef9f1315d5a79b1588ab898988e051a"> 1488</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#abef9f1315d5a79b1588ab898988e051a">remmina_ssh_shell_thread</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;{</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell = (<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*)data;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; fd_set fds;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="keyword">struct </span>timeval timeout;</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; ssh_channel channel = NULL;</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; ssh_channel ch[2], chout[2];</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; gchar *buf = NULL;</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; gint buf_len;</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; gint <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; gint i, ret;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="keywordflow">if</span> ((channel = ssh_channel_new(REMMINA_SSH(shell)-&gt;session)) == NULL ||</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; ssh_channel_open_session(channel)) {</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(shell), <span class="stringliteral">&quot;Failed to open channel : %s&quot;</span>);</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <span class="keywordflow">if</span> (channel) ssh_channel_free(channel);</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a> = 0;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; }</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; ssh_channel_request_pty(channel);</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a> &amp;&amp; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>[0]) {</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; ret = ssh_channel_request_exec(channel, shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>);</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; ret = ssh_channel_request_shell(channel);</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; }</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="keywordflow">if</span> (ret) {</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(shell), <span class="stringliteral">&quot;Failed to request shell : %s&quot;</span>);</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a> = 0;</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; }</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a> = channel;</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; buf_len = 1000;</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; buf = g_malloc(buf_len + 1);</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; ch[0] = channel;</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; ch[1] = NULL;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; <span class="keywordflow">while</span> (!shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a>) {</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; timeout.tv_sec = 1;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; timeout.tv_usec = 0;</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; FD_ZERO(&amp;fds);</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; FD_SET(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, &amp;fds);</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; ret = ssh_select(ch, chout, shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> + 1, &amp;fds, &amp;timeout);</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; <span class="keywordflow">if</span> (ret == SSH_EINTR) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <span class="keywordflow">if</span> (ret == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="keywordflow">if</span> (FD_ISSET(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, &amp;fds)) {</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; len = read(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, buf, buf_len);</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; ssh_channel_write(channel, buf, len);</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; }</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; len = ssh_channel_poll(channel, i);</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keywordflow">if</span> (len == SSH_ERROR || len == SSH_EOF) {</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a> = TRUE;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; }</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; <span class="keywordflow">if</span> (len &gt; buf_len) {</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; buf_len = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; buf = (gchar*)g_realloc(buf, buf_len + 1);</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; }</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; len = ssh_channel_read_nonblocking(channel, buf, len, i);</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) {</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a> = TRUE;</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; }</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="keywordflow">while</span> (len &gt; 0) {</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; ret = write(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, buf, len);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">if</span> (ret &lt;= 0) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; len -= ret;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; }</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; }</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; }</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a> = NULL;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; g_free(buf);</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a> = 0;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="keywordflow">if</span> ( shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> ) {</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; IDLE_ADD((GSourceFunc)<a class="code" href="remmina__ssh_8c.html#a99b659d38f12972157594e24d0f97a94">remmina_ssh_call_exit_callback_on_main_thread</a>, (gpointer)shell );</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; }</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;}</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;gboolean</div><div class="line"><a name="l01602"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1c095a955af21b3ed9952ba2ea94691b"> 1602</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1c095a955af21b3ed9952ba2ea94691b">remmina_ssh_shell_open</a>(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell, <a class="code" href="remmina__ssh_8h.html#a4c56936cde97775b102a3e7b48fe5a01">RemminaSSHExitFunc</a> exit_callback, gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;{</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; gchar *slavedevice;</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="keyword">struct </span>termios stermios;</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> = posix_openpt(O_RDWR | O_NOCTTY);</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> == -1 ||</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; grantpt(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a>) == -1 ||</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; unlockpt(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a>) == -1 ||</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; (slavedevice = ptsname(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a>)) == NULL ||</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> = open(slavedevice, O_RDWR | O_NOCTTY)) &lt; 0) {</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; REMMINA_SSH(shell)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to create pty device.&quot;</span>);</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; }</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="comment">/* As per libssh documentation */</span></div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; tcgetattr(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, &amp;stermios);</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; stermios.c_iflag &amp;= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; stermios.c_oflag &amp;= ~OPOST;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; stermios.c_lflag &amp;= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; stermios.c_cflag &amp;= ~(CSIZE | PARENB);</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; stermios.c_cflag |= CS8;</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; tcsetattr(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, TCSANOW, &amp;stermios);</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> = exit_callback;</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#adedb04066148973fed2de9f04b80286d">user_data</a> = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="comment">/* Once the process started, we should always TRUE and assume the pthread will be created always */</span></div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; pthread_create(&amp;shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#abef9f1315d5a79b1588ab898988e051a">remmina_ssh_shell_thread</a>, shell);</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;}</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01637"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ac2d3f3b6550e4d1fe4caabe1df6af508"> 1637</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ac2d3f3b6550e4d1fe4caabe1df6af508">remmina_ssh_shell_set_size</a>(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell, gint columns, gint rows)</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;{</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a>) {</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; ssh_channel_change_pty_size(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a>, columns, rows);</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; }</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;}</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01648"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a316f97b879e147ec52967344f6ad1d84"> 1648</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a316f97b879e147ec52967344f6ad1d84">remmina_ssh_shell_free</a>(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell)</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;{</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; pthread_t thread = shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a>;</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> = NULL;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="keywordflow">if</span> (thread) {</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a> = TRUE;</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; pthread_join(thread, NULL);</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; }</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; close(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>);</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>) {</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; g_free(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>);</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a> = NULL;</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; }</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="comment">/* It&#39;s not necessary to close shell-&gt;slave since the other end (vte) will close it */</span>;</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; <a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(REMMINA_SSH(shell));</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;}</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_LIBSSH */</span><span class="preprocessor"></span></div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;</div><div class="ttc" id="struct___remmina_s_s_h_tunnel_html"><div class="ttname"><a href="struct___remmina_s_s_h_tunnel.html">_RemminaSSHTunnel</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00129">remmina_ssh.h:129</a></div></div>
+<a href="remmina__ssh_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) 2009-2011 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-2017 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 &quot;<a class="code" href="config_8h.html">config.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#ifdef HAVE_LIBSSH</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;<span class="comment">/* Define this before stdlib.h to have posix_openpt */</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#define _XOPEN_SOURCE 600</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor">#define LIBSSH_STATIC 1</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#include &lt;libssh/libssh.h&gt;</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#include &lt;gdk/gdkx.h&gt;</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#include &lt;gtk/gtk.h&gt;</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#include &lt;glib/gi18n.h&gt;</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="preprocessor">#include &lt;stdlib.h&gt;</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#include &lt;signal.h&gt;</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#include &lt;time.h&gt;</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#include &lt;sys/types.h&gt;</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#include &lt;pthread.h&gt;</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor">#ifdef HAVE_NETDB_H</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#include &lt;netdb.h&gt;</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#ifdef HAVE_ARPA_INET_H</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#include &lt;arpa/inet.h&gt;</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_IN_H</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#include &lt;netinet/in.h&gt;</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#ifdef HAVE_SYS_SOCKET_H</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#include &lt;sys/socket.h&gt;</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#ifdef HAVE_FCNTL_H</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="preprocessor">#include &lt;fcntl.h&gt;</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="preprocessor">#ifdef HAVE_ERRNO_H</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#include &lt;errno.h&gt;</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#ifdef HAVE_TERMIOS_H</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#include &lt;termios.h&gt;</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#ifdef HAVE_UNISTD_H</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="preprocessor">#include &lt;unistd.h&gt;</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#ifdef HAVE_PTY_H</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#include &lt;pty.h&gt;</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</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="l00082"></a><span class="lineno"> 82</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__file_8h.html">remmina_file.h</a>&quot;</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</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="l00084"></a><span class="lineno"> 84</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="l00085"></a><span class="lineno"> 85</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="remmina__ssh_8h.html">remmina_ssh.h</a>&quot;</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</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="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="preprocessor">#include &lt;netinet/tcp.h&gt;</span></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;<span class="preprocessor">#if defined(__FreeBSD__) || defined(__OpenBSD__)</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#ifndef SOL_TCP</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor">#define SOL_TCP IPPROTO_TCP</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="preprocessor">#endif</span></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="preprocessor">#define SSH_SOCKET_TCP_KEEPIDLE 5</span></div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="preprocessor">#define SSH_SOCKET_TCP_KEEPCNT 3</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="preprocessor">#define SSH_SOCKET_TCP_KEEPINTVL 3</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;<span class="comment">/* Remember to lower SSH_SOCKET_TCP_USER_TIMEOUT to 4 when kernel bug 108191 will be fixed */</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#define SSH_SOCKET_TCP_USER_TIMEOUT 9</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="comment">* SSH Base *</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="preprocessor">#define LOCK_SSH(ssh) pthread_mutex_lock(&amp;REMMINA_SSH(ssh)-&gt;ssh_mutex);</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#define UNLOCK_SSH(ssh) pthread_mutex_unlock(&amp;REMMINA_SSH(ssh)-&gt;ssh_mutex);</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694"> 111</a></span>&#160;<span class="keyword">static</span> <span class="keyword">const</span> gchar *<a class="code" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694">common_identities</a>[] =</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="stringliteral">&quot;.ssh/id_ed25519&quot;</span>,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="stringliteral">&quot;.ssh/id_rsa&quot;</span>,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="stringliteral">&quot;.ssh/id_dsa&quot;</span>,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="stringliteral">&quot;.ssh/identity&quot;</span>,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; NULL</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;};</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;gchar*</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a72a58e416c4eeb9d17eaf76360ebee42"> 121</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh_identity_path</a>(<span class="keyword">const</span> gchar *<span class="keywordtype">id</span>)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == NULL) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span> (<span class="keywordtype">id</span>[0] == <span class="charliteral">&#39;/&#39;</span>) <span class="keywordflow">return</span> g_strdup(<span class="keywordtype">id</span>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> g_strdup_printf(<span class="stringliteral">&quot;%s/%s&quot;</span>, g_get_home_dir(), <span class="keywordtype">id</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;gchar*</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ab6d8bdad543b3caead2b2b0339484798"> 130</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ab6d8bdad543b3caead2b2b0339484798">remmina_ssh_find_identity</a>(<span class="keywordtype">void</span>)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; gchar *path;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; gint i;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span> (i = 0; <a class="code" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694">common_identities</a>[i]; i++) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; path = <a class="code" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh_identity_path</a>(<a class="code" href="remmina__ssh_8c.html#a8920b4663823da39661a108f04b33694">common_identities</a>[i]);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span> (g_file_test(path, G_FILE_TEST_IS_REGULAR | G_FILE_TEST_EXISTS)) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> path;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; g_free(path);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#abc556f0a4335083436f6e19c204fa553"> 147</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *fmt)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">const</span> gchar *err;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; err = ssh_get_error(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = g_strdup_printf(fmt, err);</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;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1f3297263703b4259c1c9607d710995d"> 157</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *fmt, ...)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; va_list args;</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"> 162</span>&#160; va_start(args, fmt);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = g_strdup_vprintf(fmt, args);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; va_end(args);</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"> 167</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a2ffcffe3320007cb0fc0b529f3e3b65a"> 168</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a2ffcffe3320007cb0fc0b529f3e3b65a">remmina_ssh_auth_interactive</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; gint ret;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; gint n;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; gint i;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; ret = SSH_AUTH_ERROR;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> == NULL) <span class="keywordflow">return</span> -1;</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; <span class="keywordflow">while</span> ((ret = ssh_userauth_kbdint(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, NULL)) == SSH_AUTH_INFO) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; n = ssh_userauth_kbdint_getnprompts(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; n; i++) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; ssh_userauth_kbdint_setanswer(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, i, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</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;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">/* We pass the control to remmina_ssh_auth_password */</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> 1;</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="keyword">static</span> gint</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#ab080906be227e35b5b29a9cfcc3e976c"> 196</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ab080906be227e35b5b29a9cfcc3e976c">remmina_ssh_auth_password</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; gint ret;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; ret = SSH_AUTH_ERROR;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> == NULL) <span class="keywordflow">return</span> -1;</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; ret = ssh_userauth_password(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH password authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</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="keyword">static</span> gint</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a1e78e9f453f0ad2b1f8c7f907d906010"> 216</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1e78e9f453f0ad2b1f8c7f907d906010">remmina_ssh_auth_pubkey</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; gint ret;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; ssh_key priv_key;</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> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> == NULL) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = g_strdup_printf(_(<span class="stringliteral">&quot;SSH public key authentication failed: %s&quot;</span>),</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; _(<span class="stringliteral">&quot;SSH Key file not yet set.&quot;</span>));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> 0;</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"> 230</span>&#160; <span class="keywordflow">if</span> ( ssh_pki_import_privkey_file( ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>, (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> ? ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> : <span class="stringliteral">&quot;&quot;</span>),</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; NULL, NULL, &amp;priv_key ) != SSH_OK ) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> == NULL || ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a>[0] == <span class="charliteral">&#39;\0&#39;</span>) <span class="keywordflow">return</span> -1;</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; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH public key authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; ret = ssh_userauth_publickey(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, priv_key);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; ssh_key_free(priv_key);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH public key authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> 0;</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; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;}</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00251"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#afd2145e2c27d0d3401aee66a76f57290"> 251</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#afd2145e2c27d0d3401aee66a76f57290">remmina_ssh_auth_auto_pubkey</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a>* ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; gint ret = ssh_userauth_publickey_auto(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH automatic public key authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> -1;</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;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a168073a50f4e5d4210bfa782d97bb231"> 266</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a168073a50f4e5d4210bfa782d97bb231">remmina_ssh_auth_agent</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a>* ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; gint ret;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; ret = ssh_userauth_agent(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL);</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="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH public key authentication with ssh agent failed: %s&quot;</span>));</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</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; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">return</span> 1;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;}</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="keyword">static</span> gint</div><div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a8a04317b54a776118e8224fbfa3a685c"> 282</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a8a04317b54a776118e8224fbfa3a685c">remmina_ssh_auth_gssapi</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; gint ret;</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; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>) <span class="keywordflow">return</span> 1;</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; ret = ssh_userauth_gssapi(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span> (ret != SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;SSH Kerberos/GSSAPI authentication failed: %s&quot;</span>));</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> 1;</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;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;gint</div><div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a85578987de99e1a7a28819960c445ee2"> 301</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a85578987de99e1a7a28819960c445ee2">remmina_ssh_auth</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *password)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;{</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; gint method;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; gint ret;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">/* Check known host again to ensure it&#39;s still the original server when user forks</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="comment"> a new session from existing one */</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">if</span> (ssh_is_server_known(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>) != SSH_SERVER_KNOWN_OK) {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(ssh, <span class="stringliteral">&quot;SSH public key has changed!&quot;</span>);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">return</span> 0;</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"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span> (password) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a>);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> = g_strdup(password);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> = g_strdup(password);</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;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; method = ssh_userauth_list(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">switch</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a>) {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a7d995a7868d2d2f81e9dd2f898b206fe">SSH_AUTH_PASSWORD</a>:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_INTERACTIVE || method &amp; SSH_AUTH_METHOD_PASSWORD) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; ret = <a class="code" href="remmina__ssh_8c.html#a2ffcffe3320007cb0fc0b529f3e3b65a">remmina_ssh_auth_interactive</a>(ssh);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span> (!ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a>)</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#ab080906be227e35b5b29a9cfcc3e976c">remmina_ssh_auth_password</a>(ssh);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> ret;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5aeba5f4ff7657d7b15519556793ee8930">SSH_AUTH_PUBLICKEY</a>:</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_PUBLICKEY)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#a1e78e9f453f0ad2b1f8c7f907d906010">remmina_ssh_auth_pubkey</a>(ssh);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a39a8dcea793c406f0fe90f3175c4318e">SSH_AUTH_AGENT</a>:</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#a168073a50f4e5d4210bfa782d97bb231">remmina_ssh_auth_agent</a>(ssh);</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; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a9f6024449a620d679eab2c09ea77877e">SSH_AUTH_AUTO_PUBLICKEY</a>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="comment">/* ssh_agent or none */</span></div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#afd2145e2c27d0d3401aee66a76f57290">remmina_ssh_auth_auto_pubkey</a>(ssh);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;<span class="preprocessor">#if 0</span></div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="comment">/* Not yet supported by libssh */</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">case</span> SSH_AUTH_HOSTBASED:</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_HOSTBASED)</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="comment">//return remmina_ssh_auth_hostbased;</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;<span class="preprocessor">#endif</span></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; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a6264a71469928ad51fa802f65f1a934a">SSH_AUTH_GSSAPI</a>:</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (method &amp; SSH_AUTH_METHOD_GSSAPI_MIC)</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> <a class="code" href="remmina__ssh_8c.html#a8a04317b54a776118e8224fbfa3a685c">remmina_ssh_auth_gssapi</a>(ssh);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</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;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;gint</div><div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ac4967b502c8b92ae9b948e8150df9267"> 366</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ac4967b502c8b92ae9b948e8150df9267">remmina_ssh_auth_gui</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <a class="code" href="struct___remmina_init_dialog.html">RemminaInitDialog</a> *dialog, <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</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; TRACE_CALL(__func__);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; gchar *tips;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; gchar *keyname;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; gchar *pwdtype;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; gint ret;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordtype">size_t</span> len;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; guchar *pubkey;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; ssh_key server_pubkey;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; gboolean disablepasswordstoring;</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; <span class="comment">/* Check if the server&#39;s public key is known */</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; ret = ssh_is_server_known(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">switch</span> (ret) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_KNOWN_OK:</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">break</span>; <span class="comment">/* ok */</span></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; <span class="keywordflow">case</span> SSH_SERVER_FILE_NOT_FOUND:</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">/* fallback to SSH_SERVER_NOT_KNOWN behavior */</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_NOT_KNOWN:</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_KNOWN_CHANGED:</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_FOUND_OTHER:</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span> ( ssh_get_publickey(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, &amp;server_pubkey) != SSH_OK ) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, <span class="stringliteral">&quot;ssh_get_publickey() has failed: %s&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span> ( ssh_get_publickey_hash(server_pubkey, SSH_PUBLICKEY_HASH_MD5, &amp;pubkey, &amp;len) != 0 ) {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; ssh_key_free(server_pubkey);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, <span class="stringliteral">&quot;ssh_get_publickey_hash() has failed: %s&quot;</span>);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">return</span> 0;</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; ssh_key_free(server_pubkey);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; keyname = ssh_get_hexa(pubkey, len);</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; <span class="keywordflow">if</span> (ret == SSH_SERVER_NOT_KNOWN || ret == SSH_SERVER_FILE_NOT_FOUND) {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; ret = <a class="code" href="remmina__init__dialog_8c.html#a1c2d938b96a52fa9a3c11ebc8a091d8b">remmina_init_dialog_serverkey_unknown</a>(dialog, keyname);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; ret = <a class="code" href="remmina__init__dialog_8c.html#a493c615103fc257d1783125745018f1a">remmina_init_dialog_serverkey_changed</a>(dialog, keyname);</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; ssh_string_free_char(keyname);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; ssh_clean_pubkey_hash(&amp;pubkey);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span> (ret != GTK_RESPONSE_OK) <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; ssh_write_knownhost(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">case</span> SSH_SERVER_ERROR:</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, <span class="stringliteral">&quot;SSH known host checking failed: %s&quot;</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> 0;</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;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">switch</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a>) {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a7d995a7868d2d2f81e9dd2f898b206fe">SSH_AUTH_PASSWORD</a>:</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; tips = _(<span class="stringliteral">&quot;Authenticating %s&#39;s password to SSH server %s...&quot;</span>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; keyname = _(<span class="stringliteral">&quot;SSH password&quot;</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; pwdtype = <span class="stringliteral">&quot;ssh_password&quot;</span>;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5aeba5f4ff7657d7b15519556793ee8930">SSH_AUTH_PUBLICKEY</a>:</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a39a8dcea793c406f0fe90f3175c4318e">SSH_AUTH_AGENT</a>:</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a9f6024449a620d679eab2c09ea77877e">SSH_AUTH_AUTO_PUBLICKEY</a>:</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; tips = _(<span class="stringliteral">&quot;Authenticating %s&#39;s identity to SSH server %s...&quot;</span>);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; keyname = _(<span class="stringliteral">&quot;SSH private key passphrase&quot;</span>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; pwdtype = <span class="stringliteral">&quot;ssh_passphrase&quot;</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__file_8h.html#a99fb83031ce9923c84392b4e92f956b5a6264a71469928ad51fa802f65f1a934a">SSH_AUTH_GSSAPI</a>:</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; tips = _(<span class="stringliteral">&quot;Authenticating %s&#39;s Kerberos to SSH server %s...&quot;</span>);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; keyname = _(<span class="stringliteral">&quot;SSH Kerberos/GSSAPI&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; pwdtype = <span class="stringliteral">&quot;kerberos_token&quot;</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> FALSE;</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; <span class="comment">/* Try empty password or existing password/passphrase first */</span></div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; ret = <a class="code" href="remmina__ssh_8c.html#a85578987de99e1a7a28819960c445ee2">remmina_ssh_auth</a>(ssh, <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, pwdtype));</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span> (ret &gt; 0) <span class="keywordflow">return</span> 1;</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; <span class="comment">/* Requested for a non-empty password */</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">if</span> (ret &lt; 0) {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span> (!dialog) <span class="keywordflow">return</span> -1;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="remmina__init__dialog_8c.html#a0091e150b446faa19e9af16f3d4de3cf">remmina_init_dialog_set_status</a>(dialog, tips, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; disablepasswordstoring = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;disablepasswordstoring&quot;</span>, FALSE);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; ret = <a class="code" href="remmina__init__dialog_8c.html#a755fc90b41b65cd6106915ab501433fa">remmina_init_dialog_authpwd</a>(dialog, keyname, !disablepasswordstoring);</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; <span class="keywordflow">if</span> (ret == GTK_RESPONSE_OK) {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span> (dialog-&gt;<a class="code" href="struct___remmina_init_dialog.html#a2a35558c458dad6c0405552b02571445">save_password</a>)</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <a class="code" href="remmina__file_8c.html#a85ca1ca2d0bf9ef29e490c6f4527a954">remmina_file_set_string</a>(remminafile, pwdtype, dialog-&gt;<a class="code" href="struct___remmina_init_dialog.html#aca19677d47a487f42d5b1707f8225e03">password</a>);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">return</span> -1;</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; ret = <a class="code" href="remmina__ssh_8c.html#a85578987de99e1a7a28819960c445ee2">remmina_ssh_auth</a>(ssh, dialog-&gt;<a class="code" href="struct___remmina_init_dialog.html#aca19677d47a487f42d5b1707f8225e03">password</a>);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span> (ret &lt;= 0) {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> 0;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">return</span> 1;</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;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a5a3191a46707e450ee51286976531225"> 469</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a5a3191a46707e450ee51286976531225">remmina_ssh_log_callback</a>(ssh_session session, <span class="keywordtype">int</span> priority, <span class="keyword">const</span> <span class="keywordtype">char</span> *message, <span class="keywordtype">void</span> *userdata)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;{</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] %s\n&quot;</span>, message);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;}</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;gboolean</div><div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a624b8ac30ddcd00ebda0b51d504f5a33"> 476</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a624b8ac30ddcd00ebda0b51d504f5a33">remmina_ssh_init_session</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; gint verbosity;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; gint rc;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; socket_t sshsock;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; gint optval;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a> = g_new0(<span class="keyword">struct</span> ssh_callbacks_struct, 1);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">/* Init &amp; startup the SSH session */</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = ssh_new();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_HOST, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_PORT, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="comment">/* When SSH_OPTIONS_USER is not set, the local user account is used */</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span> (*ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a> != 0)</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_USER, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> &amp;&amp; *ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> != 0) {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_IDENTITY, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_IDENTITY has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_IDENTITY is not set, by default identity, id_dsa and id_rsa are checked.\n&quot;</span>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;<span class="preprocessor">#ifdef SNAP_BUILD</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_SSH_DIR, g_strdup_printf(<span class="stringliteral">&quot;%s/.ssh&quot;</span>, g_getenv(<span class="stringliteral">&quot;SNAP_USER_COMMON&quot;</span>)));</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_KEY_EXCHANGE, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_KEY_EXCHANGE has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_KEY_EXCHANGE does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_CIPHERS_C_S, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_CIPHERS_C_S has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_CIPHERS_C_S does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_HOSTKEYS, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_HOSTKEYS has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_HOSTKEYS does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_PROXYCOMMAND, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_PROXYCOMMAND has been set to: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_PROXYCOMMAND does not have a valid value: %s\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; rc = ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_STRICTHOSTKEYCHECK, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span> (rc == 0) {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_STRICTHOSTKEYCHECK has been set to: %d\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] SSH_OPTIONS_STRICTHOSTKEYCHECK does not have a valid value: %d\n&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; ssh_callbacks_init(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__log_8c.html#a96f5bb72acbdcbf8793b4a5f4a6132b5">remmina_log_running</a>()) {</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; verbosity = <a class="code" href="remmina__connection__window_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#aac4f34f297a653052752b571777bc001">ssh_loglevel</a>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; ssh_options_set(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, SSH_OPTIONS_LOG_VERBOSITY, &amp;verbosity);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>-&gt;log_function = <a class="code" href="remmina__ssh_8c.html#a5a3191a46707e450ee51286976531225">remmina_ssh_log_callback</a>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="comment">/* Reset libssh legacy userdata. This is a workaround for a libssh bug */</span></div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; ssh_set_log_userdata(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>-&gt;userdata = ssh;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; ssh_set_callbacks(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">/* As the latest parse the ~/.ssh/config file */</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span> (<a class="code" href="remmina__connection__window_8c.html#a29701ae152ba15f6d8921f395174d2df">remmina_pref</a>.<a class="code" href="struct___remmina_pref.html#a1d7deb091e0d51a8d7885ad9e22dc9a7">ssh_parseconfig</a>) {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; ssh_options_parse_config(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">if</span> (ssh_connect(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>)) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(ssh, _(<span class="stringliteral">&quot;Failed to startup SSH session: %s&quot;</span>));</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;<span class="preprocessor">#ifdef HAVE_NETINET_TCP_H</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="comment">/* Set keepalive on ssh socket, so we can keep firewalls awaken and detect</span></div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="comment"> * when we loss the tunnel */</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; sshsock = ssh_get_fd(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span> (sshsock &gt;= 0) {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; optval = 1;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, SOL_SOCKET, SO_KEEPALIVE, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP KeepAlive not set\n&quot;</span>);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;<span class="preprocessor">#ifdef TCP_KEEPIDLE</span></div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; optval = SSH_SOCKET_TCP_KEEPIDLE;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPIDLE, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_KEEPIDLE not set\n&quot;</span>);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;<span class="preprocessor">#ifdef TCP_KEEPCNT</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; optval = SSH_SOCKET_TCP_KEEPCNT;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPCNT, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_KEEPCNT not set\n&quot;</span>);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;<span class="preprocessor">#ifdef TCP_KEEPINTVL</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; optval = SSH_SOCKET_TCP_KEEPINTVL;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_KEEPINTVL, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_KEEPINTVL not set\n&quot;</span>);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;<span class="preprocessor">#ifdef TCP_USER_TIMEOUT</span></div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; optval = SSH_SOCKET_TCP_USER_TIMEOUT;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">if</span> (setsockopt(sshsock, IPPROTO_TCP, TCP_USER_TIMEOUT, &amp;optval, <span class="keyword">sizeof</span>(optval)) &lt; 0) {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] TCP_USER_TIMEOUT not set\n&quot;</span>);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; }</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="comment">/* Try the &quot;none&quot; authentication */</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">if</span> (ssh_userauth_none(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>, NULL) == SSH_AUTH_SUCCESS) {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = TRUE;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;}</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;gboolean</div><div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a029fc6b0f826502181196254e8ba511a"> 603</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;{</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">const</span> gchar *ssh_server;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keyword">const</span> gchar *ssh_username;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keyword">const</span> gchar *ssh_privatekey;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keyword">const</span> gchar *server;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; gchar *s;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = NULL;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a> = NULL;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = FALSE;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = NULL;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa34e103281dafaa073d2a676b3368529">passphrase</a> = NULL;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; pthread_mutex_init(&amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a547feb6e46dfb8e37a4eb338c17d7b52">ssh_mutex</a>, NULL);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">/* Parse the address and port */</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; ssh_server = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_server&quot;</span>);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; ssh_username = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_username&quot;</span>);</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; ssh_privatekey = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_privatekey&quot;</span>);</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; server = <a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;server&quot;</span>);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">if</span> (ssh_server) {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>(ssh_server, 22, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a>);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>[0] == <span class="charliteral">&#39;\0&#39;</span>) {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>(server, 0, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>, NULL);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (server == NULL) {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a> = g_strdup(<span class="stringliteral">&quot;localhost&quot;</span>);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a> = 22;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <a class="code" href="remmina__public_8c.html#adc8b77823386e00e610527d6b0b61149">remmina_public_get_server_port</a>(server, 0, &amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>, NULL);</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a> = 22;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a> = g_strdup(ssh_username ? ssh_username : g_get_user_name());</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> = NULL;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a> = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_auth&quot;</span>, 0);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_charset&quot;</span>));</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_kex_algorithms&quot;</span>));</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_ciphers&quot;</span>));</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_hostkeytypes&quot;</span>));</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;ssh_proxycommand&quot;</span>));</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a> = <a class="code" href="remmina__file_8c.html#a4884356c195dcfb4ceacf641a1e74e66">remmina_file_get_int</a>(remminafile, <span class="stringliteral">&quot;ssh_stricthostkeycheck&quot;</span>, 0);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="comment">/* Public/Private keys */</span></div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; s = (ssh_privatekey ? g_strdup(ssh_privatekey) : <a class="code" href="remmina__ssh_8c.html#ab6d8bdad543b3caead2b2b0339484798">remmina_ssh_find_identity</a>());</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">if</span> (s) {</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> = <a class="code" href="remmina__ssh_8c.html#a72a58e416c4eeb9d17eaf76360ebee42">remmina_ssh_identity_path</a>(s);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; g_free(s);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> = NULL;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;}</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="keyword">static</span> gboolean</div><div class="line"><a name="l00661"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d"> 661</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d">remmina_ssh_init_from_ssh</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> <a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh_src)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;{</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = NULL;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac148c436afa70f426d665b4ddd2d8f4d">authenticated</a> = FALSE;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a> = NULL;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; pthread_mutex_init(&amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a547feb6e46dfb8e37a4eb338c17d7b52">ssh_mutex</a>, NULL);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a> = ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa064626a7fd528e7d8c1fc34d1bd8dfc">port</a>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a> = ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#abf5a73c3444790177635a6eab6417d03">auth</a>;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#ac03e015f09baa46d4a9a118c606736af">proxycommand</a>);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae4f1ed5a4852134afb89a00530601ae6">kex_algorithms</a>);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b3e071eb2c6011efdcea3f65f8e7fa0">ciphers</a>);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a> = g_strdup(ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a69e209a1ee77d6dfe5d87961e2a50a6a">hostkeytypes</a>);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a> = ssh_src-&gt;<a class="code" href="struct___remmina_s_s_h.html#a62e6a209747daa65061273243e830ae9">stricthostkeycheck</a>;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160;}</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160;gchar*</div><div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a09bd4aee40b6e8d6ba8ffaa84dc95330"> 686</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a09bd4aee40b6e8d6ba8ffaa84dc95330">remmina_ssh_convert</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *from)</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;{</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; gchar *to = NULL;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> &amp;&amp; from) {</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; to = g_convert(from, -1, <span class="stringliteral">&quot;UTF-8&quot;</span>, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>, NULL, NULL, NULL);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">if</span> (!to) to = g_strdup(from);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> to;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;}</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;gchar*</div><div class="line"><a name="l00699"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aeccf94afb57bcad37b4241d45fcb3fea"> 699</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aeccf94afb57bcad37b4241d45fcb3fea">remmina_ssh_unconvert</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh, <span class="keyword">const</span> gchar *from)</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;{</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; gchar *to = NULL;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a> &amp;&amp; from) {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; to = g_convert(from, -1, ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>, <span class="stringliteral">&quot;UTF-8&quot;</span>, NULL, NULL, NULL);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">if</span> (!to) to = g_strdup(from);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">return</span> to;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;}</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#acdb9f57d2f9b47913715a8d8a0ea0c02"> 712</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;{</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">if</span> (ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>) {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; ssh_disconnect(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; ssh_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a> = NULL;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#aa8e75d0a635b3390100218bee6b49378">callback</a>);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#ae396f0b535e2e92d640a0eb971aa082b">server</a>);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3a8dc7679e22208bbdf076c520f25bbb">user</a>);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#adedb385c39effff9c9dd5767250f8c89">password</a>);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#af9f34b088c5af320708cf02dfc45d59e">privkeyfile</a>);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a0b35a5a573abb5e8b8a27a91434a00a5">charset</a>);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; g_free(ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a3aaebd7f03b7d8601818fabc46b787ed">error</a>);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; pthread_mutex_destroy(&amp;ssh-&gt;<a class="code" href="struct___remmina_s_s_h.html#a547feb6e46dfb8e37a4eb338c17d7b52">ssh_mutex</a>);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; g_free(ssh);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;}</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;<span class="comment">* SSH Tunnel *</span></div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l00734"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html"> 734</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">_RemminaSSHTunnelBuffer</a> {</div><div class="line"><a name="l00735"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b"> 735</a></span>&#160; gchar *<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>;</div><div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394"> 736</a></span>&#160; gchar *<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a>;</div><div class="line"><a name="l00737"></a><span class="lineno"><a class="line" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c"> 737</a></span>&#160; ssize_t <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;};</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;<span class="keyword">static</span> <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>*</div><div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#ae2c4f938ccb0f2b94e3ef8af9f69747a"> 741</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae2c4f938ccb0f2b94e3ef8af9f69747a">remmina_ssh_tunnel_buffer_new</a>(ssize_t <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>)</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;{</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a> *buffer;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; buffer = g_new(<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>, 1);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a> = (gchar*)g_malloc(len);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a> = buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">return</span> buffer;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;}</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00754"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c"> 754</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a> *buffer)</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;{</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span> (buffer) {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; g_free(buffer-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; g_free(buffer);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;}</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>*</div><div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#abf04fd329ab77bbd4f6aa1cb1eaa349d"> 764</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#abf04fd329ab77bbd4f6aa1cb1eaa349d">remmina_ssh_tunnel_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;{</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; tunnel = g_new(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>, 1);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(REMMINA_SSH(tunnel), remminafile);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = -1;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a> = NULL;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a> = NULL;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a> = NULL;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> = 0;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a> = 0;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a> = NULL;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = FALSE;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = -1;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a> = NULL;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> = 0;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a> = NULL;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a> = 0;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a> = NULL;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> = 0;</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a> = NULL;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> = NULL;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa904bb1d9f643f6fde2b0eea4a8b1660">connect_func</a> = NULL;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a> = NULL;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a> = NULL;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">return</span> tunnel;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;}</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00799"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7"> 799</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7">remmina_ssh_tunnel_close_all_channels</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel)</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;{</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordtype">int</span> i;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>; i++) {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i]);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; ssh_channel_close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i]);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; ssh_channel_send_eof(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i]);</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; ssh_channel_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i]);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a> = NULL;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a> = NULL;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>);</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a> = NULL;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> = 0;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a> = 0;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>) {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; ssh_channel_close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>);</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; ssh_channel_send_eof(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; ssh_channel_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a> = NULL;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; }</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;}</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a"> 831</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a">remmina_ssh_tunnel_remove_channel</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, gint n)</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160;{</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; ssh_channel_close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n]);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; ssh_channel_send_eof(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n]);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; ssh_channel_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n]);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[n]);</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[n]);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>--;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[n] = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>];</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>] = NULL;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[n] = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>];</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[n] = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>];</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;}</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;<span class="comment">/* Register the new channel/socket pair */</span></div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="keyword">static</span> <span class="keywordtype">void</span></div><div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5"> 848</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5">remmina_ssh_tunnel_add_channel</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, ssh_channel channel, gint sock)</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;{</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; gint flags;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; gint i;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; i = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>++;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> &gt; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a>) {</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="comment">/* Allocate an extra NULL pointer in channels for ssh_select */</span></div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a> = (ssh_channel*)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>,</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keyword">sizeof</span>(ssh_channel) * (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> + 1));</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a> = (gint*)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>,</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keyword">sizeof</span>(gint) * tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a> = (<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>**)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>,</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keyword">sizeof</span>(<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html">RemminaSSHTunnelBuffer</a>*) * tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>);</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6a184c6ca8fa267012d86986dac396c6">max_channels</a> = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a> = (ssh_channel*)g_realloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a>,</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keyword">sizeof</span>(ssh_channel) * (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> + 1));</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i] = channel;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i + 1] = NULL;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i] = sock;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i] = NULL;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; flags = fcntl(sock, F_GETFL, 0);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; fcntl(sock, F_SETFL, flags | O_NONBLOCK);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;}</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;<span class="keyword">static</span> gpointer</div><div class="line"><a name="l00878"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a2c47bcbe038c0d5a393a781c96a5a549"> 878</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a2c47bcbe038c0d5a393a781c96a5a549">remmina_ssh_tunnel_main_thread_proc</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;{</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel = (<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>*)data;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; gchar *<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a>;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; ssize_t <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> = 0, lenw = 0;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; fd_set <span class="keyword">set</span>;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keyword">struct </span>timeval timeout;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; GTimeVal t1, t2;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; glong diff;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; ssh_channel channel = NULL;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; gboolean first = TRUE;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; gboolean disconnected;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; gint sock;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; gint maxfd;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; gint i;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; gint ret;</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keyword">struct </span>sockaddr_in sin;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; g_get_current_time(&amp;t1);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; t2 = t1;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">switch</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a>) {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a78cac65c66c1f72592488c7c5728ea14">REMMINA_SSH_TUNNEL_OPEN</a>:</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="comment">/* Accept a local connection */</span></div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; sock = accept(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a>, NULL, NULL);</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">if</span> (sock &lt; 0) {</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to accept local socket&quot;</span>);</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160;</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">if</span> ((channel = ssh_channel_new(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad9887ee0673a2b0b03b091746ae02d23">ssh</a>.<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>)) == NULL) {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; close(sock);</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to create channel : %s&quot;</span>);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; }</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="comment">/* Request the SSH server to connect to the destination */</span></div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span> (ssh_channel_open_forward(channel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>, <span class="stringliteral">&quot;127.0.0.1&quot;</span>, 0) != SSH_OK) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; close(sock);</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), _(<span class="stringliteral">&quot;Failed to connect to the SSH tunnel destination: %s&quot;</span>));</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; }</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5">remmina_ssh_tunnel_add_channel</a>(tunnel, channel, sock);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>:</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="keywordflow">if</span> ((tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a> = ssh_channel_new(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad9887ee0673a2b0b03b091746ae02d23">ssh</a>.<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>)) == NULL) {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to create channel : %s&quot;</span>);</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; }</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordflow">if</span> (!<a class="code" href="remmina__public_8c.html#a12ba081432e5f32cf8287231d4779ecf">remmina_public_get_xauth_cookie</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a>, &amp;ptr)) {</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;%s&quot;</span>, ptr);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; g_free(ptr);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">if</span> (ssh_channel_open_session(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>) ||</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; ssh_channel_request_x11(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, TRUE, NULL, ptr,</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; gdk_x11_screen_get_screen_number(gdk_screen_get_default()))) {</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; g_free(ptr);</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to open channel : %s&quot;</span>);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; }</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; g_free(ptr);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">if</span> (ssh_channel_request_exec(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>)) {</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; ptr = g_strdup_printf(_(<span class="stringliteral">&quot;Failed to execute %s on SSH server : %%s&quot;</span>), tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>);</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), ptr);</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; g_free(ptr);</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; }</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> &amp;&amp;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; !(*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>)) {</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; }</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a>:</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="comment">/* Detect the next available port starting from 6010 on the server */</span></div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">for</span> (i = 10; i &lt;= MAX_X_DISPLAY_NUMBER; i++) {</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordflow">if</span> (ssh_forward_listen(REMMINA_SSH(tunnel)-&gt;session, (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6fa916d3736cb8e2a0e6541f608c209b">bindlocalhost</a> ? <span class="stringliteral">&quot;localhost&quot;</span> : NULL), 6000 + i, NULL)) {</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> = i;</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; }</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; }</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> &lt; 1) {</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), _(<span class="stringliteral">&quot;Failed to request port forwarding : %s&quot;</span>));</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> &amp;&amp;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; !(*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>)) {</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; }</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">case</span> <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>:</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keywordflow">if</span> (ssh_forward_listen(REMMINA_SSH(tunnel)-&gt;session, NULL, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>, NULL)) {</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH (tunnel), _(<span class="stringliteral">&quot;Failed to request port forwarding : %s&quot;</span>));</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; }</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a> &amp;&amp;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; !(*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a8066492c4a0181f1b39b2fb2098fb56d">init_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>)) {</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; }</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; }</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; }</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a> = 10240;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a> = g_malloc(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a>);</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="comment">/* Start the tunnel data transmittion */</span></div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keywordflow">while</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) {</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a> ||</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a> ||</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">if</span> (first) {</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; first = FALSE;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="comment">/* Wait for a period of time for the first incoming connection */</span></div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>) {</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; channel = ssh_channel_accept_x11(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, 15000);</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; channel = ssh_channel_accept_forward(REMMINA_SSH(tunnel)-&gt;session, 15000, &amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>);</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; }</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordflow">if</span> (!channel) {</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), _(<span class="stringliteral">&quot;No response from the server.&quot;</span>));</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>) {</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a19fed9a85494d40d3f2ae2ae1d1bc18c">disconnect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; }</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; }</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa904bb1d9f643f6fde2b0eea4a8b1660">connect_func</a>) {</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; (*tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa904bb1d9f643f6fde2b0eea4a8b1660">connect_func</a>)(tunnel, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6f2cd8a2535e180e7bd428e84030ffb6">callback_data</a>);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; }</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="comment">/* For reverse tunnel, we only need one connection. */</span></div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; ssh_forward_cancel(REMMINA_SSH (tunnel)-&gt;session, NULL, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>);</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> != <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="comment">/* Poll once per some period of time if no incoming connections.</span></div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;<span class="comment"> * Don&#39;t try to poll continuously as it will significantly slow down the loop */</span></div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; g_get_current_time(&amp;t1);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; diff = (t1.tv_sec - t2.tv_sec) * 10 + (t1.tv_usec - t2.tv_usec) / 100000;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">if</span> (diff &gt; 1) {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>) {</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; channel = ssh_channel_accept_x11(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a069b886ad870cb318693fe1022179b3d">x11_channel</a>, 0);</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; channel = ssh_channel_accept_forward(REMMINA_SSH(tunnel)-&gt;session, 0, &amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a>);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keywordflow">if</span> (channel == NULL) {</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; t2 = t1;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; }</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; }</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; }</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">if</span> (channel) {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>) {</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; sin.sin_family = AF_INET;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; sin.sin_port = htons(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ae41b6af92643cfbcd3e13275f4281260">localport</a>);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; sin.sin_addr.s_addr = inet_addr(<span class="stringliteral">&quot;127.0.0.1&quot;</span>);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; sock = socket(AF_INET, SOCK_STREAM, 0);</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordflow">if</span> (connect(sock, (<span class="keyword">struct</span> sockaddr *)&amp;sin, <span class="keyword">sizeof</span>(sin)) &lt; 0) {</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel),</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="stringliteral">&quot;Cannot connect to local port %i.&quot;</span>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ae41b6af92643cfbcd3e13275f4281260">localport</a>);</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; close(sock);</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; sock = -1;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; sock = <a class="code" href="remmina__public_8c.html#a52656bbe00a83068f36337f449bdc767">remmina_public_open_xdisplay</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a>);</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; }</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">if</span> (sock &gt;= 0) {</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <a class="code" href="remmina__ssh_8c.html#adaef1d3421eb94d12d1b5df1fb88f9b5">remmina_ssh_tunnel_add_channel</a>(tunnel, channel, sock);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="comment">/* Failed to create unix socket. Will this happen? */</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; channel = NULL;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; }</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; }</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a> &lt;= 0) {</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="comment">/* No more connections. We should quit */</span></div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; }</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; timeout.tv_sec = 0;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; timeout.tv_usec = 200000;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; FD_ZERO(&amp;<span class="keyword">set</span>);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; maxfd = 0;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#abb17dc2972e189660c20eff7ec0fe513">num_channels</a>; i++) {</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i] &gt; maxfd) {</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; maxfd = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i];</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; FD_SET(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], &amp;<span class="keyword">set</span>);</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; }</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; ret = ssh_select(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a>, maxfd + 1, &amp;<span class="keyword">set</span>, &amp;timeout);</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">if</span> (!tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">if</span> (ret == SSH_EINTR) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="keywordflow">if</span> (ret == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; i = 0;</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <span class="keywordflow">while</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> &amp;&amp; i &lt; tunnel-&gt;num_channels) {</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; disconnected = FALSE;</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">if</span> (FD_ISSET(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], &amp;<span class="keyword">set</span>)) {</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keywordflow">while</span> (!disconnected &amp;&amp;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; (len = read(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a88ae4fb816713bd90d8e452b5e7ef0bb">buffer_len</a>)) &gt; 0) {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">for</span> (ptr = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a>, lenw = 0; len &gt; 0; len -= lenw, ptr += lenw) {</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; lenw = ssh_channel_write(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i], (<span class="keywordtype">char</span>*)ptr, len);</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">if</span> (lenw &lt;= 0) {</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;ssh_channel_write() returned an error: %s&quot;</span>);</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; }</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; }</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; }</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">if</span> (len == 0) {</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;read on tunnel listening socket returned an error: %s&quot;</span>);</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; }</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; }</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; <span class="keywordflow">if</span> (disconnected) {</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] tunnel has been disconnected. Reason: %s\n&quot;</span>, REMMINA_SSH(tunnel)-&gt;error);</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a">remmina_ssh_tunnel_remove_channel</a>(tunnel, i);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; }</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; i++;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; }</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <span class="keywordflow">if</span> (!tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; i = 0;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keywordflow">while</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> &amp;&amp; i &lt; tunnel-&gt;num_channels) {</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; disconnected = FALSE;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keywordflow">if</span> (!tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]) {</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; len = ssh_channel_poll(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i], 0);</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="keywordflow">if</span> (len == SSH_ERROR || len == SSH_EOF) {</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;ssh_channel_poll() returned an error : %s&quot;</span>);</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; }<span class="keywordflow">else</span> <span class="keywordflow">if</span> (len &gt; 0) {</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i] = <a class="code" href="remmina__ssh_8c.html#ae2c4f938ccb0f2b94e3ef8af9f69747a">remmina_ssh_tunnel_buffer_new</a>(len);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; len = ssh_channel_read_nonblocking(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ab11c1bcc8549ce8b154f65f9009c65d4">channels</a>[i], tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>, len, 0);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) {</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;ssh_channel_read_nonblocking() returned an error : %s&quot;</span>);</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; }</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; }</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; }</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">if</span> (!disconnected &amp;&amp; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]) {</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">for</span> (lenw = 0; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> &gt; 0;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> -= lenw, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a> += lenw) {</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; lenw = write(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa9ab1684349da8bfd6b84cc135c053b3">sockets</a>[i], tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#abf97a0278fdbd49f34e67ff3e9df5394">ptr</a>, tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordflow">if</span> (lenw == -1 &amp;&amp; errno == EAGAIN &amp;&amp; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) {</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="comment">/* Sometimes we cannot write to a socket (always EAGAIN), probably because it&#39;s internal</span></div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;<span class="comment"> * buffer is full. We need read the pending bytes from the socket first. so here we simply</span></div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;<span class="comment"> * break, leave the buffer there, and continue with other data */</span></div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; }</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">if</span> (lenw &lt;= 0) {</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;write on tunnel listening socket returned an error: %s&quot;</span>);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; disconnected = TRUE;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; }</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; }</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a> &lt;= 0) {</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a>(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i]);</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a27cb79f54113bb4aa46ea163717087b1">socketbuffers</a>[i] = NULL;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; }</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; }</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">if</span> (disconnected) {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <a class="code" href="remmina__log_8c.html#ac7848510c1fe1990c992e28cd31af9d8">remmina_log_printf</a>(<span class="stringliteral">&quot;[SSH] tunnel has been disconnected. Reason: %s\n&quot;</span>, REMMINA_SSH(tunnel)-&gt;error);</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1788658f417dd6b5c3a71b5d0816ec1a">remmina_ssh_tunnel_remove_channel</a>(tunnel, i);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; }</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; i++;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; }</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; }</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <a class="code" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7">remmina_ssh_tunnel_close_all_channels</a>(tunnel);</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160;</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;}</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;<span class="keyword">static</span> gpointer</div><div class="line"><a name="l01213"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6"> 1213</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;{</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel = (<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>*)data;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keywordflow">while</span> (TRUE) {</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <a class="code" href="remmina__ssh_8c.html#a2c47bcbe038c0d5a393a781c96a5a549">remmina_ssh_tunnel_main_thread_proc</a>(data);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> &lt; 0 || tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> == 0 || !tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a>) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; }</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;}</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01229"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ae9f52b1a3a545acae8c93007e20ec909"> 1229</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae9f52b1a3a545acae8c93007e20ec909">remmina_ssh_tunnel_cancel_accept</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel)</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;{</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> &gt;= 0) {</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a>);</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = -1;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; }</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160;}</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160;</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;gboolean</div><div class="line"><a name="l01239"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a52b3f47eac79f2781ba81d61505f4f53"> 1239</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a52b3f47eac79f2781ba81d61505f4f53">remmina_ssh_tunnel_open</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>* tunnel, <span class="keyword">const</span> gchar *host, gint port, gint local_port)</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;{</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; gint sock;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; gint sockopt = 1;</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keyword">struct </span>sockaddr_in sin;</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a78cac65c66c1f72592488c7c5728ea14">REMMINA_SSH_TUNNEL_OPEN</a>;</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a> = g_strdup(host);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> = port;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> == 0) {</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Destination port has not been assigned&quot;</span>);</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; }</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="comment">/* Create the server socket that listens on the local port */</span></div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; sock = socket(AF_INET, SOCK_STREAM, 0);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordflow">if</span> (sock &lt; 0) {</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to create socket.&quot;</span>);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; }</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &amp;sockopt, <span class="keyword">sizeof</span>(sockopt));</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; sin.sin_family = AF_INET;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; sin.sin_port = htons(local_port);</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; sin.sin_addr.s_addr = inet_addr(<span class="stringliteral">&quot;127.0.0.1&quot;</span>);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keywordflow">if</span> (bind(sock, (<span class="keyword">struct</span> sockaddr *)&amp;sin, <span class="keyword">sizeof</span>(sin))) {</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to bind on local port.&quot;</span>);</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; close(sock);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; }</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="keywordflow">if</span> (listen(sock, 1)) {</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; REMMINA_SSH(tunnel)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to listen on local port.&quot;</span>);</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; close(sock);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; }</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = sock;</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; }</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;}</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160;gboolean</div><div class="line"><a name="l01290"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ac6d58beb4df141c6353e897c39748146"> 1290</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ac6d58beb4df141c6353e897c39748146">remmina_ssh_tunnel_x11</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, <span class="keyword">const</span> gchar *cmd)</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;{</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562a57b0a0c05bcbc57fc8bc384524803a91">REMMINA_SSH_TUNNEL_X11</a>;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a> = g_strdup(cmd);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; }</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;}</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;gboolean</div><div class="line"><a name="l01306"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aba49db2ced40e21e8adfad69dcfda2c4"> 1306</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aba49db2ced40e21e8adfad69dcfda2c4">remmina_ssh_tunnel_xport</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, gboolean bindlocalhost)</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;{</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a>;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a6fa916d3736cb8e2a0e6541f608c209b">bindlocalhost</a> = bindlocalhost;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; }</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;}</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;gboolean</div><div class="line"><a name="l01322"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ae47c8270267b02b9c0ff5b36074101c2"> 1322</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae47c8270267b02b9c0ff5b36074101c2">remmina_ssh_tunnel_reverse</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a> *tunnel, gint port, gint local_port)</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160;{</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> = <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562ae14c0d50235951946ca18866a1329459">REMMINA_SSH_TUNNEL_REVERSE</a>;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ad883561d61ee8d32d2201e642b0ab9cc">port</a> = port;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ae41b6af92643cfbcd3e13275f4281260">localport</a> = local_port;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = TRUE;</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; <span class="keywordflow">if</span> (pthread_create(&amp;tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a>, tunnel)) {</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; <a class="code" href="remmina__ssh_8c.html#a1f3297263703b4259c1c9607d710995d">remmina_ssh_set_application_error</a>(REMMINA_SSH(tunnel), <span class="stringliteral">&quot;Failed to initialize pthread.&quot;</span>);</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; }</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160;}</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160;gboolean</div><div class="line"><a name="l01339"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aeb20d31243a4d30e469a34fe01684e38"> 1339</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aeb20d31243a4d30e469a34fe01684e38">remmina_ssh_tunnel_terminated</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>* tunnel)</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160;{</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">return</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> == 0);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;}</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160;</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01346"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a223f8dd7a678bcec2ece40a2d8f7ea06"> 1346</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a223f8dd7a678bcec2ece40a2d8f7ea06">remmina_ssh_tunnel_free</a>(<a class="code" href="struct___remmina_s_s_h_tunnel.html">RemminaSSHTunnel</a>* tunnel)</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;{</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; pthread_t thread;</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; thread = tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a>;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; <span class="keywordflow">if</span> (thread != 0) {</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a956cb7289e147875ae5f745b33514ebd">running</a> = FALSE;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; pthread_cancel(thread);</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; pthread_join(thread, NULL);</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#aa496acab4967f380e3520aeb9dae2bbd">thread</a> = 0;</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; }</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#ac86d0d359e5d97d8d60fac69c9af69df">tunnel_type</a> == <a class="code" href="remmina__ssh_8h.html#a1f9aebf1de3ebbf4283a4dcf73308562afbca41cd7b252c2594e1d53cd081b326">REMMINA_SSH_TUNNEL_XPORT</a> &amp;&amp; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a> &gt; 0) {</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; G_GNUC_BEGIN_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; ssh_forward_cancel(REMMINA_SSH (tunnel)-&gt;session, NULL, 6000 + tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#af670e0b0960c3e71e9f0b8b797ef9c28">remotedisplay</a>);</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; G_GNUC_END_IGNORE_DEPRECATIONS</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; }</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; <span class="keywordflow">if</span> (tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> &gt;= 0) {</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; close(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a>);</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a7fd94fc8f610d86eb71a7a7fa1500d69">server_sock</a> = -1;</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; }</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; <a class="code" href="remmina__ssh_8c.html#a0a0aff99448b4eec63bf11d7a4bb9ab7">remmina_ssh_tunnel_close_all_channels</a>(tunnel);</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a155d773294b0671aac4e710e97d90047">buffer</a>);</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a37244b9fafd3ab48c0f11ad0b8cfdf91">channels_out</a>);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">dest</a>);</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; g_free(tunnel-&gt;<a class="code" href="struct___remmina_s_s_h_tunnel.html#a071153b511500c3faa6804ebd76aeba1">localdisplay</a>);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160;</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; <a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(REMMINA_SSH(tunnel));</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160;}</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="comment">* SSH sFTP *</span></div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>*</div><div class="line"><a name="l01383"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a3d7138d9cbbe44aea15440436ce85d6e"> 1383</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a3d7138d9cbbe44aea15440436ce85d6e">remmina_sftp_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;{</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; sftp = g_new(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>, 1);</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(REMMINA_SSH(sftp), remminafile);</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160;</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = NULL;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160;</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">return</span> sftp;</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;}</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>*</div><div class="line"><a name="l01398"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1500d65d1f0751812f237c1cb4d15188"> 1398</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1500d65d1f0751812f237c1cb4d15188">remmina_sftp_new_from_ssh</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;{</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; sftp = g_new(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a>, 1);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <a class="code" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d">remmina_ssh_init_from_ssh</a>(REMMINA_SSH(sftp), ssh);</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = NULL;</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160;</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keywordflow">return</span> sftp;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;}</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;gboolean</div><div class="line"><a name="l01413"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1e09b32044c240a7dce0ad8afcbf0ff2"> 1413</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1e09b32044c240a7dce0ad8afcbf0ff2">remmina_sftp_open</a>(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp)</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;{</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = sftp_new(sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#a7dab48a7603f1dd6671a8dd1efe1958e">ssh</a>.<a class="code" href="struct___remmina_s_s_h.html#a46cdb47db9c0ce8c1ac267cb3d10bbb3">session</a>);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keywordflow">if</span> (!sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>) {</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(sftp), _(<span class="stringliteral">&quot;Failed to create sftp session: %s&quot;</span>));</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; }</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="keywordflow">if</span> (sftp_init(sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>)) {</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(sftp), _(<span class="stringliteral">&quot;Failed to initialize sftp session: %s&quot;</span>));</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; }</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;}</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01429"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#aaaf171c31b73f06f1026239253d9f6b9"> 1429</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#aaaf171c31b73f06f1026239253d9f6b9">remmina_sftp_free</a>(<a class="code" href="struct___remmina_s_f_t_p.html">RemminaSFTP</a> *sftp)</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;{</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordflow">if</span> (sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>) {</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; sftp_free(sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a>);</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; sftp-&gt;<a class="code" href="struct___remmina_s_f_t_p.html#adef92bcfa7b9a86debf0531d0239a5df">sftp_sess</a> = NULL;</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; }</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; <a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(REMMINA_SSH(sftp));</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160;}</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160;</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;<span class="comment">/*-----------------------------------------------------------------------------*</span></div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160;<span class="comment">* SSH Shell *</span></div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;<span class="comment">*-----------------------------------------------------------------------------*/</span></div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*</div><div class="line"><a name="l01444"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a30412e0b4302f5ae0b9be2749390a48d"> 1444</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a30412e0b4302f5ae0b9be2749390a48d">remmina_ssh_shell_new_from_file</a>(<a class="code" href="types_8h.html#a112d7cc6c755209cabb68cf2a62ad515">RemminaFile</a> *remminafile)</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160;{</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell;</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; shell = g_new0(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>, 1);</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160;</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; <a class="code" href="remmina__ssh_8c.html#a029fc6b0f826502181196254e8ba511a">remmina_ssh_init_from_file</a>(REMMINA_SSH(shell), remminafile);</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160;</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> = -1;</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> = -1;</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a> = g_strdup(<a class="code" href="remmina__file_8c.html#a8eb1b213d9d08c6ad13683ce05f4355e">remmina_file_get_string</a>(remminafile, <span class="stringliteral">&quot;exec&quot;</span>));</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <span class="keywordflow">return</span> shell;</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;}</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*</div><div class="line"><a name="l01461"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ae0792ddb4adcaafefc1a4604cefdd8f4"> 1461</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ae0792ddb4adcaafefc1a4604cefdd8f4">remmina_ssh_shell_new_from_ssh</a>(<a class="code" href="struct___remmina_s_s_h.html">RemminaSSH</a> *ssh)</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;{</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; shell = g_new0(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>, 1);</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; <a class="code" href="remmina__ssh_8c.html#aa5915469eff4864d8d7dad218bfcf15d">remmina_ssh_init_from_ssh</a>(REMMINA_SSH(shell), ssh);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> = -1;</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> = -1;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; <span class="keywordflow">return</span> shell;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;}</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160;<span class="keyword">static</span> gboolean</div><div class="line"><a name="l01477"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#a99b659d38f12972157594e24d0f97a94"> 1477</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a99b659d38f12972157594e24d0f97a94">remmina_ssh_call_exit_callback_on_main_thread</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160;{</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell = (<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*)data;</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <span class="keywordflow">if</span> ( shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> )</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a>( shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#adedb04066148973fed2de9f04b80286d">user_data</a> );</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160;}</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;<span class="keyword">static</span> gpointer</div><div class="line"><a name="l01488"></a><span class="lineno"><a class="line" href="remmina__ssh_8c.html#abef9f1315d5a79b1588ab898988e051a"> 1488</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#abef9f1315d5a79b1588ab898988e051a">remmina_ssh_shell_thread</a>(gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;{</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; <a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell = (<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a>*)data;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; fd_set fds;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; <span class="keyword">struct </span>timeval timeout;</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160; ssh_channel channel = NULL;</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; ssh_channel ch[2], chout[2];</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; gchar *buf = NULL;</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; gint buf_len;</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; gint <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; gint i, ret;</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160;</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; <span class="keywordflow">if</span> ((channel = ssh_channel_new(REMMINA_SSH(shell)-&gt;session)) == NULL ||</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; ssh_channel_open_session(channel)) {</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(shell), <span class="stringliteral">&quot;Failed to open channel : %s&quot;</span>);</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <span class="keywordflow">if</span> (channel) ssh_channel_free(channel);</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a> = 0;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; }</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; ssh_channel_request_pty(channel);</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a> &amp;&amp; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>[0]) {</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; ret = ssh_channel_request_exec(channel, shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>);</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; }<span class="keywordflow">else</span> {</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160; ret = ssh_channel_request_shell(channel);</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; }</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="keywordflow">if</span> (ret) {</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <a class="code" href="remmina__ssh_8c.html#abc556f0a4335083436f6e19c204fa553">remmina_ssh_set_error</a>(REMMINA_SSH(shell), <span class="stringliteral">&quot;Failed to request shell : %s&quot;</span>);</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a> = 0;</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; }</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160;</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a> = channel;</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160;</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160;</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; buf_len = 1000;</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; buf = g_malloc(buf_len + 1);</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160;</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; ch[0] = channel;</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; ch[1] = NULL;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160;</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; <span class="keywordflow">while</span> (!shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a>) {</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; timeout.tv_sec = 1;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; timeout.tv_usec = 0;</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; FD_ZERO(&amp;fds);</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; FD_SET(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, &amp;fds);</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160;</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; ret = ssh_select(ch, chout, shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> + 1, &amp;fds, &amp;timeout);</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; <span class="keywordflow">if</span> (ret == SSH_EINTR) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <span class="keywordflow">if</span> (ret == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="keywordflow">if</span> (FD_ISSET(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, &amp;fds)) {</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; len = read(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, buf, buf_len);</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; ssh_channel_write(channel, buf, len);</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; }</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keywordflow">for</span> (i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; len = ssh_channel_poll(channel, i);</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keywordflow">if</span> (len == SSH_ERROR || len == SSH_EOF) {</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a> = TRUE;</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; }</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) <span class="keywordflow">continue</span>;</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160; <span class="keywordflow">if</span> (len &gt; buf_len) {</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; buf_len = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#a7ce9340c21e2a3fe1eeb85a8961f638c">len</a>;</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; buf = (gchar*)g_realloc(buf, buf_len + 1);</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; }</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; len = ssh_channel_read_nonblocking(channel, buf, len, i);</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; <span class="keywordflow">if</span> (len &lt;= 0) {</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a> = TRUE;</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; }</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; <span class="keywordflow">while</span> (len &gt; 0) {</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; ret = write(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, buf, len);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; <span class="keywordflow">if</span> (ret &lt;= 0) <span class="keywordflow">break</span>;</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; len -= ret;</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; }</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; }</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; }</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160;</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a> = NULL;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; ssh_channel_close(channel);</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; ssh_channel_send_eof(channel);</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; ssh_channel_free(channel);</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; g_free(buf);</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a> = 0;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; <span class="keywordflow">if</span> ( shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> ) {</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; IDLE_ADD((GSourceFunc)<a class="code" href="remmina__ssh_8c.html#a99b659d38f12972157594e24d0f97a94">remmina_ssh_call_exit_callback_on_main_thread</a>, (gpointer)shell );</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; }</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160;}</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160;</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160;gboolean</div><div class="line"><a name="l01602"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a1c095a955af21b3ed9952ba2ea94691b"> 1602</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a1c095a955af21b3ed9952ba2ea94691b">remmina_ssh_shell_open</a>(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell, <a class="code" href="remmina__ssh_8h.html#a4c56936cde97775b102a3e7b48fe5a01">RemminaSSHExitFunc</a> exit_callback, gpointer <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>)</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160;{</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; gchar *slavedevice;</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="keyword">struct </span>termios stermios;</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160;</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> = posix_openpt(O_RDWR | O_NOCTTY);</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a> == -1 ||</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; grantpt(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a>) == -1 ||</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; unlockpt(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a>) == -1 ||</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; (slavedevice = ptsname(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#ab02f57e79ea0ba35f8a3788ef01a707f">master</a>)) == NULL ||</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a> = open(slavedevice, O_RDWR | O_NOCTTY)) &lt; 0) {</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; REMMINA_SSH(shell)-&gt;error = g_strdup(<span class="stringliteral">&quot;Failed to create pty device.&quot;</span>);</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; <span class="keywordflow">return</span> FALSE;</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; }</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160;</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; <span class="comment">/* As per libssh documentation */</span></div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; tcgetattr(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, &amp;stermios);</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; stermios.c_iflag &amp;= ~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON);</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; stermios.c_oflag &amp;= ~OPOST;</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; stermios.c_lflag &amp;= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN);</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; stermios.c_cflag &amp;= ~(CSIZE | PARENB);</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; stermios.c_cflag |= CS8;</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; tcsetattr(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>, TCSANOW, &amp;stermios);</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160;</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> = exit_callback;</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#adedb04066148973fed2de9f04b80286d">user_data</a> = <a class="code" href="struct___remmina_s_s_h_tunnel_buffer.html#aab12cbfe0268a594634bbb56ae52208b">data</a>;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; <span class="comment">/* Once the process started, we should always TRUE and assume the pthread will be created always */</span></div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; pthread_create(&amp;shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a>, NULL, <a class="code" href="remmina__ssh_8c.html#abef9f1315d5a79b1588ab898988e051a">remmina_ssh_shell_thread</a>, shell);</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; <span class="keywordflow">return</span> TRUE;</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;}</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160;</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01637"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#ac2d3f3b6550e4d1fe4caabe1df6af508"> 1637</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#ac2d3f3b6550e4d1fe4caabe1df6af508">remmina_ssh_shell_set_size</a>(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell, gint columns, gint rows)</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160;{</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; LOCK_SSH(shell)</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a>) {</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; ssh_channel_change_pty_size(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a7c546634f855c217faa75ab4d4c7c2e2">channel</a>, columns, rows);</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; }</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; UNLOCK_SSH(shell)</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;}</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160;</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;<span class="keywordtype">void</span></div><div class="line"><a name="l01648"></a><span class="lineno"><a class="line" href="remmina__ssh_8h.html#a316f97b879e147ec52967344f6ad1d84"> 1648</a></span>&#160;<a class="code" href="remmina__ssh_8c.html#a316f97b879e147ec52967344f6ad1d84">remmina_ssh_shell_free</a>(<a class="code" href="struct___remmina_s_s_h_shell.html">RemminaSSHShell</a> *shell)</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;{</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; TRACE_CALL(__func__);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; pthread_t thread = shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a878854125f24a8de520ec91066d0d226">thread</a>;</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160;</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a88090ecb372853a19640c883f5bf606a">exit_callback</a> = NULL;</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="keywordflow">if</span> (thread) {</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a6b2e8c1d9705b4c5b64a0e07a1159e80">closed</a> = TRUE;</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; pthread_join(thread, NULL);</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; }</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; close(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a78edb0cd27564e88b6c92b425a383df6">slave</a>);</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; <span class="keywordflow">if</span> (shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>) {</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; g_free(shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a>);</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; shell-&gt;<a class="code" href="struct___remmina_s_s_h_shell.html#a2d56befd61e28b83f90fe3eff0e6dfe7">exec</a> = NULL;</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; }</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="comment">/* It&#39;s not necessary to close shell-&gt;slave since the other end (vte) will close it */</span>;</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; <a class="code" href="remmina__ssh_8c.html#acdb9f57d2f9b47913715a8d8a0ea0c02">remmina_ssh_free</a>(REMMINA_SSH(shell));</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;}</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* HAVE_LIBSSH */</span><span class="preprocessor"></span></div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160;</div><div class="ttc" id="struct___remmina_s_s_h_tunnel_html"><div class="ttname"><a href="struct___remmina_s_s_h_tunnel.html">_RemminaSSHTunnel</a></div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00129">remmina_ssh.h:129</a></div></div>
<div class="ttc" id="struct___remmina_s_s_h_tunnel_html_a4d61f0c0926686f8451dcf49d2d857da"><div class="ttname"><a href="struct___remmina_s_s_h_tunnel.html#a4d61f0c0926686f8451dcf49d2d857da">_RemminaSSHTunnel::dest</a></div><div class="ttdeci">gchar * dest</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8h_source.html#l00150">remmina_ssh.h:150</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_a2dc66f410992afe4c2b9ad5bda770d6c"><div class="ttname"><a href="remmina__ssh_8c.html#a2dc66f410992afe4c2b9ad5bda770d6c">remmina_ssh_tunnel_buffer_free</a></div><div class="ttdeci">static void remmina_ssh_tunnel_buffer_free(RemminaSSHTunnelBuffer *buffer)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l00754">remmina_ssh.c:754</a></div></div>
<div class="ttc" id="remmina__ssh_8c_html_a879c1981a3b643529d64107a653016a6"><div class="ttname"><a href="remmina__ssh_8c.html#a879c1981a3b643529d64107a653016a6">remmina_ssh_tunnel_main_thread</a></div><div class="ttdeci">static gpointer remmina_ssh_tunnel_main_thread(gpointer data)</div><div class="ttdef"><b>Definition:</b> <a href="remmina__ssh_8c_source.html#l01213">remmina_ssh.c:1213</a></div></div>
diff --git a/docs/remmina__ssh__plugin_8c.html b/docs/remmina__ssh__plugin_8c.html
index 8dc929465..f6dafef31 100644
--- a/docs/remmina__ssh__plugin_8c.html
+++ b/docs/remmina__ssh__plugin_8c.html
@@ -1270,8 +1270,6 @@ Here is the caller graph for this function:</div>
Here is the call graph for this function:</div>
<div class="dyncontent">
<div class="center"><img src="remmina__ssh__plugin_8c_a6f594d157e09639e09b1f32a420da96c_cgraph.png" border="0" usemap="#remmina__ssh__plugin_8c_a6f594d157e09639e09b1f32a420da96c_cgraph" alt=""/></div>
-<map name="remmina__ssh__plugin_8c_a6f594d157e09639e09b1f32a420da96c_cgraph" id="remmina__ssh__plugin_8c_a6f594d157e09639e09b1f32a420da96c_cgraph">
-</map>
</div>
<div class="dynheader">
Here is the caller graph for this function:</div>