<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Solaris on Marcello Barnaba</title>
    <link>https://sindro.me/it/tags/solaris/</link>
    <description>Recent content in Solaris on Marcello Barnaba</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Fri, 25 Jan 2008 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://sindro.me/it/tags/solaris/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>urllib2 di Python2.4 rotto di default su Solaris Express 5.11</title>
      <link>https://sindro.me/it/posts/2008-01-25-python2-4-s-urllib2-broken-by-default-on-solaris-express-5-11/</link>
      <pubDate>Fri, 25 Jan 2008 00:00:00 +0000</pubDate>
      <guid>https://sindro.me/it/posts/2008-01-25-python2-4-s-urllib2-broken-by-default-on-solaris-express-5-11/</guid>
      <description>&lt;p&gt;Mentre installavo allegramente i prerequisiti per compilare un&amp;rsquo;applicazione su&#xA;&lt;a href=&#34;http://sun.com/software/solaris&#34; target=&#34;_blank&#34;&gt;Solaris 11&lt;/a&gt;, ho apprezzato il fatto di&#xA;trovare &lt;a href=&#34;http://selenic.com/mercurial&#34; target=&#34;_blank&#34;&gt;Mercurial&lt;/a&gt; già installato nel sistema&#xA;base&amp;hellip; tranne per un GROSSO problema: la digest authentication era rotta. Ho&#xA;fatto un &lt;code&gt;tcpdump&lt;/code&gt; del traffico scambiato tra il client Mercurial e il server&#xA;CGI e ho visto che non veniva inviato nessun header Authorization, e&#xA;ovviamente il server si rifiutava di servire il repository hg.&lt;/p&gt;&#xA;&lt;p&gt;Prima di reinstallare Python, magari da sorgente e sostituendo l&amp;rsquo;installazione&#xA;di default oppure tenendo affiancate due versioni diverse, con le conseguenti&#xA;seccature e sporcizia nel sistema, ho provato un patch davvero minuscolo a&#xA;urllib2.py che&amp;hellip; con mio divertimento, ha risolto il problema:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;--- urllib2.py~ Fri Jan 25 02:35:59 2008&#xA;+++ urllib2.py  Fri Jan 25 03:27:52 2008&#xA;@@ -815,7 +815,7 @@&#xA;             auth_val = &amp;#39;Digest %s&amp;#39; % auth&#xA;             if req.headers.get(self.auth_header, None) == auth_val:&#xA;                 return None&#xA;-            req.add_unredirected_header(self.auth_header, auth_val)&#xA;+            req.add_header(self.auth_header, auth_val)&#xA;             resp = self.parent.open(req)&#xA;             return resp&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Non sono un ca**o di esperto Python (ma il linguaggio è interessante), quindi&#xA;non chiedetemi PERCHÉ funziona: ho semplicemente seguito il commento di&#xA;&lt;code&gt;add_header&lt;/code&gt; che diceva &amp;ldquo;questo metodo è utile per aggiungere header di&#xA;autenticazione&amp;rdquo; e ho sostituito il metodo &lt;code&gt;unredirected_header&lt;/code&gt; con il primo.&#xA;Non ho proprio idea del perché con urllib2 di Python2.5 &amp;ldquo;tutto funziona&amp;rdquo; anche&#xA;con quel metodo; qualcosa deve essere rotto da qualche altra parte. Un diff&#xA;tra le due urllib non mi ha dato niente, dovrei davvero imparare Python prima&#xA;o poi.&lt;/p&gt;&#xA;&lt;p&gt;Non ho trovato nessuna informazione googlando parole chiave come &amp;laquo;solaris&#xA;&amp;ldquo;http {authorization,authentication}&amp;rdquo; {urllib2,python} {broken,not working}&#xA;mercurial&amp;raquo; (shell interpolation intesa), quindi spero che questo post sia&#xA;utile a qualcuno ;).&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
