mod_perl の Apache::OK

今まで知らなかったんだけど。mod_perl2 の Apache2::Const (1.99 は Apache::Const) の Apache::OK は 200 ではなく 0 を返す。ハンドラから 200 を返した場合は Internal Redirection が一回動いて、Apache 組み込みの 200 画面 (OK とかでるやつ) を返す。

はてなフレームワークmod_perl と密結合してて嫌んな感じだったので、それを分離するために Apache2::Const を使わずにステータスコードを生の数字で扱うようにしたら、この Internal Redirection が起こってはまってしまいました。200 のときは 0、というか Apache::OK を返さないと、コンテンツの後ろ側に Apache 組み込みの 200 画面がおまけでついてきます。

てっきり Apache::OK は 200 を返す代物だと思っていた。CatalystApache を Engine にしたときに 200 を 0 とか Apache::OK に変換する処理が、ぱっと見みつからないんだけど、どこでやってんだろ。