内藤です。 FreeBSD 9.0-Rの環境でproxyを使用している場合、 時々fetch(1)が失敗するので調べていましたところ、 どうもhttpsを指定している時に失敗することが分かりました。
最近、portsのアップデートで下記URLを取得しようとしていたところで fetchコマンドがエラーになっていました。 fetch https://ftp.mozilla.org/pub/mozilla.org/security/nss/releases/NSS_3_13_4_RTM/src/nss-3.13.4.tar.gz よくよく見てみると、どうもhttpsの場合はproxyを使用せずに 直接 ftp.mozilla.org に接続しようとしているようです。 ソース上、確かにsrc/lib/libfetch/http.cのhttp_connect()関数内で httpsの場合はproxyを使用せずに直接接続しに行くコードになっていました。 とりあえず、手元の環境ではproxyを使用してくれないと困りますので、 ちょっと修正してみました。 添付のpatchを src/lib/libfetch の下で当てると、 httpsの場合でも proxy 経由で接続してくれるようになります。 ただし、Authorizationヘッダに対応していませんため、 認証の必要なproxyサーバは利用できません。 なお、よくよくソースを見てみると、 AuthorizationヘッダをProxyが返してきた場合にはTCPコネクションを切断しているように 思いますため、9.0Rの実装では環境変数HTTP_PROXY_AUTHが効かないように思います。 残念ながら私の手元には認証の必要なProxyサーバがありませんため、 確認ができません。 この話題が既に出ているのか、 Googleで探した限りでは見つからなかったのですが、 不完全なパッチでもsend-prして良いものなのでしょうか? -- 内藤 祐一郎 naito.yuich...@gmail.com
libfetch.diff
Description: Binary data