portsnapの罠

先日の日記でも少し触れたportsnap。日記ではさらりと書いているが実はすごく苦労した。
最終的にあのような結論に至った訳だが、今回、別のマシンに6.0-RELEASEを入れて分かったことがある。もう少し早く気づけばよかった。


6.0-RELEASEのportsnapでは、認証が必要なPROXY越えは出来ない。


その後、いくつか修正が入ったものの、本当の意味で使えるようになったのは6.1-RELEASEから。


5系列では、5.4-RELEASE、および3/9より以前の5-STABLEも同様にPROXY越え不可。


6系列におけるphttpget.cのバージョンを下記に示す。

6.0-RELEASEのもの。
__FBSDID("$FreeBSD: src/usr.sbin/portsnap/phttpget/phttpget.c,v 1.4.2.1 2005/08/15 20:24:08 cperciva Exp $");


6.1-RELEASEのもの。
__FBSDID("$FreeBSD: src/usr.sbin/portsnap/phttpget/phttpget.c,v 1.4.2.5 2006/03/09 17:08:41 ume Exp $");


http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/portsnap/phttpget/phttpget.c

上記リンクを参照すると分かるが、認証要PROXYに対応したのは1.4.2.2から。

ただしHTTP_PROXY_AUTHについて、誤った書式をもとに読み込んでいるため、正しく動かない。
ここを修正したのが1.4.2.5。

もちろん、1.4.2.5より前のphttpget.cでも上記の情報をもとに修正すれば問題なく動く。