{"id":944,"date":"2010-08-17T13:50:29","date_gmt":"2010-08-17T11:50:29","guid":{"rendered":"http:\/\/linux.leunen.com\/?p=944"},"modified":"2010-08-17T13:50:29","modified_gmt":"2010-08-17T11:50:29","slug":"un-bug-dans-le-screenlet-sysmonitor","status":"publish","type":"post","link":"https:\/\/www.leunen.com\/linux\/2010\/08\/un-bug-dans-le-screenlet-sysmonitor\/","title":{"rendered":"Un bug dans le screenlet sysmonitor"},"content":{"rendered":"<p>Si vous utilisez les Screenlets pour agr\u00e9menter votre desktop, vous aurez peut-\u00eatre remarqu\u00e9 que le Screenlet Sysmonitor n&rsquo;affiche pas l&rsquo;adresse IP de votre PC.<br \/>\n<center><img loading=\"lazy\" src=\"http:\/\/linux.leunen.com\/wp-content\/uploads\/2010\/08\/screenlets.png\" alt=\"Screenlets\" title=\"Screenlets\" width=\"379\" height=\"493\" class=\"size-full wp-image-945\" srcset=\"https:\/\/www.leunen.com\/linux\/wp-content\/uploads\/2010\/08\/screenlets.png 379w, https:\/\/www.leunen.com\/linux\/wp-content\/uploads\/2010\/08\/screenlets-230x300.png 230w\" sizes=\"(max-width: 379px) 100vw, 379px\" \/><\/center><br \/>\nLa cause de ce bug se trouve dans le fichier <em>\/usr\/share\/pyshared\/screenlets\/sensors.py<\/em>. Le code litigieux est affich\u00e9 ci-dessous et vous pouvez voir que cette fonction, sens\u00e9e retourner l&rsquo;adresse IP de votre PC, utilise la commande <em>ifconfig<\/em>:<\/p>\n<pre class=\"codesource\">\r\n<span class=\"reservedname\">def<\/span> net_get_ip(): <span class=\"codecomment\"># by Whise<\/span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"codecomment\">\"\"\"Returns ip if it can\"\"\"<\/span>\r\n&nbsp;&nbsp;&nbsp;&nbsp;ip = commands.getoutput(\"ifconfig\")\r\n&nbsp;&nbsp;&nbsp;&nbsp;x = 0\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"reservedname\">while<\/span> True:\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[ip.find(\"inet addr:\"):]\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[10:]\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ipc = ip[:ip.find(chr(32))]\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"reservedname\">if<\/span> ipc != '127.0.0.1' and ipc != None and ipc !='1': \r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"reservedname\">return<\/span> ipc\r\n&nbsp;&nbsp;&nbsp;&nbsp;<span class=\"reservedname\">return<\/span> _('Cannot get ip')\r\n<\/pre>\n<p>La commande <em>ifconfig<\/em>qui vous donne l&rsquo;\u00e9tat et la configuration de vos interfaces r\u00e9seau retourne un string de donn\u00e9es ressemblant \u00e0 celui-ci:<\/p>\n<pre class=\"codesource\">\r\n$ ifconfig\r\neth0      Link encap:Ethernet  HWaddr 00:25:b3:c0:b6:86  \r\n          <b>inet adr:<\/b>10.224.66.135  Bcast:10.224.66.255  Masque:255.255.255.0\r\n          adr inet6: fe80::225:b3ff:fec0:b686\/64 Scope:Lien\r\n          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1\r\n          Packets re\u00e7us:34235 erreurs:0 :0 overruns:0 frame:0\r\n          TX packets:23840 errors:0 dropped:0 overruns:0 carrier:0\r\n          collisions:0 lg file transmission:100 \r\n          Octets re\u00e7us:33282663 (33.2 MB) Octets transmis:3990859 (3.9 MB)\r\n          M\u00e9moire:98400000-98420000 \r\n<\/pre>\n<p>Or, la fonction <em>net_get_ip()<\/em> recherche la cha\u00eene de caract\u00e8res contenant <em>inet addr<\/em> pour localiser l&rsquo;adresse IP. Le seul probl\u00e8me c&rsquo;est que cette cha\u00eene de caract\u00e8res est introuvable dans ce que retourne la commande <em>ifconfig<\/em> \u00e0 cause d&rsquo;un <em>d<\/em> de trop. La cha\u00eene de caract\u00e8res est en effet<em> inet_adr<\/em> et non pas <em>inet_addr<\/em>. <\/p>\n<p>Pour contourner le bug en attendant qu&rsquo;une mise \u00e0 jour corrige le probl\u00e8me, vous pouvez \u00e9diter le fichier <em>\/usr\/share\/pyshared\/screenlets\/sensors.py<\/em> et modifier le fichier vous m\u00eame:<\/p>\n<pre class=\"codesource\">\r\n$ gksudo gedit \/usr\/share\/pyshared\/screenlets\/sensors.py\r\n<\/pre>\n<p>Changez les lignes concern\u00e9es pour qu&rsquo;elles soient semblables \u00e0 ceci:<\/p>\n<pre class=\"codesource\">\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[ip.find(\"inet adr:\"):]\r\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ip = ip[9:]\r\n<\/pre>\n<p>Sauvez le fichier et dans le gestionnaire de Screenlets, cliquez sur le bouton Tout red\u00e9marrer. L&rsquo;adresse IP doit maintenant appara\u00eetre.<br \/>\nNotez que j&rsquo;ai signal\u00e9 ce bug sur Launchpad. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si vous utilisez les Screenlets pour agr\u00e9menter votre desktop, vous aurez peut-\u00eatre remarqu\u00e9 que le Screenlet Sysmonitor n&rsquo;affiche pas l&rsquo;adresse IP de votre PC. La cause de ce bug se trouve dans le fichier \/usr\/share\/pyshared\/screenlets\/sensors.py. Le code litigieux est affich\u00e9 ci-dessous et vous pouvez voir que cette fonction, sens\u00e9e retourner l&rsquo;adresse IP de votre PC, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[15,5],"tags":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/944"}],"collection":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/comments?post=944"}],"version-history":[{"count":8,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/944\/revisions"}],"predecessor-version":[{"id":953,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/posts\/944\/revisions\/953"}],"wp:attachment":[{"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/media?parent=944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/categories?post=944"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.leunen.com\/linux\/wp-json\/wp\/v2\/tags?post=944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}