privoxy 3.0.13 vs w3m, etc.
_ [comp] privoxy 3.0.13 vs w3m
privoxy 3.0.13 にしてから、w3m でうまくアクセスできないサイトが出てくるようになった。strace で w3m を追ってみると、どうも読み込みで止まってるっぽい。これはもしかして Keep-Alive 関係?と思って privoxy の changelog を見てみると、
** Version 3.0.13 Beta **
:
- Added client-side keep-alive support.
ref. /usr/share/doc/privoxy/changelog.gz
やっぱり。古い config と 3.0.13 の config の diff を取ってみると、
keep-alive-timeout 300
というのが増えてる。こいつをコメントアウトしたところ、w3m で詰まることがなくなった。けど、w3m 以外でも使ってるわけだし…。とりあえず Keep-Alive しないように、HTTP リクエストで Connection: close を送ってやるように w3m のほうを変更。これで keep-alive-timeout を生かしたままで w3m が詰まらなくなった。
--- CVS/url.c.orig 2007-05-24 10:30:17.000000000 +0900
+++ CVS/url.c 2009-07-03 12:29:07.000000000 +0900
@@ -1291,6 +1291,8 @@ otherinfo(ParsedURL *target, ParsedURL *
Strcat_m_charp(s, "Accept-Encoding: ", AcceptEncoding, "\r\n", NULL);
Strcat_m_charp(s, "Accept-Language: ", AcceptLang, "\r\n", NULL);
+ Strcat_charp(s, "Connection: close\r\n");
+
if (target->host) {
Strcat_charp(s, "Host: ");
Strcat_charp(s, target->host);
けど、w3m は HTTP/1.0 クライアントなので本当は Connection: close というものがあること自体知らない。HTTP/1.0 クライアントであるにも関わらず、HTTP/1.1 のデフォルトである Keep-Alive 動作を行っている privoxy のほうの問題?
_ [debian] privoxy 3.0.13 変
ということで #535545 に送った。
つづき: