Namazu-users-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mknmz-squid 実行時にメディアタイプの取得に失敗し停止



> $$contref =~ s/^([^\r\n]+\r\n)+\r\n//s;
>
> とりあえずこの式で、http://tat6.ice.ous.ac.jp/akita/filez/000000A7 
> から squid cache header の除去に成功しているようなんですが... 問題あり
> ますか?
問題ありません。ただ、空行は大抵のファイルに存在するので
非欲張り型のマッチングの方が安全かと思っただけです。
あと、バックトラックをしない正規表現が高速化出来ると思っています。

そういうわけで、ヘッダを取り除く正規表現の問題は解決しているといえます。
問題があるといえば add_magic です。
AddSpecialsを多少変更して認識率を上げました。多くの場合うまくいくようです。

$magic->addSpecials("application/x-squid-cache; x-type=squid-cache", "HTTP/1.\d+\s+200\s+OK","^Server:", "^Last-Modified:", "^Connection:", "^Content-Type:\s+text", "^ETag:");

そう思った矢先にキャッシュの中に心憎いファイルが存在していました。
addSpecials内のキーワードをすべて含む”テキストファイル”です。
ヘッダを取り除いた状態のものが以下のファイルです。

http://tat6.ice.ous.ac.jp/akita/filez/0000163E.txt

上のようなファイルがある限り確実な判別は不可能と思ったので、
Squidのヘッダを再び解析しました。
まだ確証はありませんが、ファイルの先頭のバイナリは以下のようになっている
と思われます。
03 ?? 00 00 00 03 10 00 00 00 ?? …………
これをAddSpecials内に導入すればいいのだが、
$mm->addSpecials("application/x-squid-cache","^\x03.\x00\x00\x00\x03\x10\x00\x00\x00");
これだと、何故かメディアタイプが表示されない。途中経過ですがこのような状態です。
--
Kazuki AKita(秋田一輝)
kai13@xxxxxxxxxxxxxxxxxxxx
http://tat6.ice.ous.ac.jp/akita/memo/memo.cgi?view=mknmz-squid.thtml