各フックで動くモジュールのファイル一覧の出し方

Apache2.2の各フックで動くモジュールのファイル一覧 - no strict; no life;

とても参考になるエントリがあったもので、ソースを確認したところ、このリストの出し方として別にモジュールを作らなくても一個ファイルを編集すればいいことが発覚。

SHOW_HOOKS="1"
export SHOW_HOOKS

なんでこれでできるかというと、config.c に以下のように環境変数を拾って、apr_hook_debug_enabled に 1 を代入するから。

  • server/config.c
 418 AP_DECLARE(void) ap_register_hooks(module *m, apr_pool_t *p)
 419 {
 420     if (m->register_hooks) {
 421         if (getenv("SHOW_HOOKS")) {
 422             printf("Registering hooks for %s\n", m->name);
 423             apr_hook_debug_enabled = 1;
 424         }
 425
 426         apr_hook_debug_current = m->name;
 427         m->register_hooks(p);
 428     }
 429 }

何はともあれ、これは便利そうです。