Apache2.2の各フックで動くモジュールのファイル一覧
フックの順番はてきとう(処理順ではない)です。(あとで気が向いたら直します。)
↑なるべく順番になるように直してみた。けど順番は無保証にしときます。
あとたぶん標準のモジュールだけのはずだけどなんかが紛れ込んでるかも。
これの出しかたはエントリ下に書いておきます。
hook | source file |
---|---|
pre_config | mod_logio.c mod_log_config.c prefork.c mod_rewrite.c mod_headers.c mod_dbd.c mod_proxy.c |
test_config | mod_so.c |
open_logs | prefork.c core.c mod_log_config.c |
post_config | mod_include.c mod_cgi.c core.c mod_ext_filter.c mod_headers.c mod_proxy.c mod_proxy_balancer.c mod_mime.c mod_dav.c mod_status.c mod_rewrite.c mod_auth_digest.c mod_dbd.c |
child_init | mod_rewrite.c mod_auth_digest.c mod_dbd.c mod_log_config.c mod_proxy.c mod_proxy_balancer.c mod_status.c core.c |
create_connection | core.c |
process_connection | http_core.c |
pre_connection | mod_dumpio.c mod_logio.c core.c |
pre_mpm | core.c |
create_request | core.c http_core.c |
post_read_request | mod_headers.c mod_proxy.c mod_auth_digest.c mod_setenvif.c |
translate_name | mod_rewrite.c mod_proxy.c mod_alias.c mod_userdir.c mod_vhost_alias.c core.c |
map_to_storage | mod_proxy.c http_core.c http_core.c core.c |
header_parser | mod_setenvif.c |
access_checker | mod_authz_host.c core.c |
check_user_id | mod_auth_basic.c mod_auth_digest.c mod_authn_default.c |
auth_checker | mod_authz_owner.c mod_authz_groupfile.c mod_authz_user.c mod_authz_dbm.c mod_authz_default.c |
type_checker | mod_negotiation.c mod_mime.c core.c |
fixups | core.c mod_proxy.c mod_rewrite.c mod_dav.c mod_auth_digest.c mod_env.c mod_negotiation.c mod_alias.c mod_dir.c mod_speling.c mod_rewrite.c mod_headers.c mod_include.c |
insert_filter | core.c mod_filter.c mod_expires.c mod_headers.c |
handler | mod_proxy.c mod_proxy_balancer.c mod_hiload_cache.c mod_autoindex.c mod_asis.c mod_cgi.c mod_negotiation.c mod_imagemap.c mod_info.c mod_dav.c mod_status.c mod_rewrite.c mod_actions.c core.c |
log_transaction | mod_log_config.c mod_logio.c |
ちなみにどうやって出したかというと、適当なモジュールを作って下記のようにapr_hook_debug_enabledにtrue値を入れるだけです。
apr_hook_debug_enabled = 1;
なんでこれで表示されるのかというと、srclib/apr-util/include/apr_hooks.h の 82 行目あたりの APR_IMPLEMENT_EXTERNAL_HOOK_BASE の定義の中に書いてあります。
83 if(apr_hook_debug_enabled) \ 84 apr_hook_debug_show(#name,aszPre,aszSucc); \ 85 } \
隠しコマンドみたいだなぁ。
APRのapr_time_tはmicrosecondsだぜ
time_tは秒数だけど、apr_time_tはマイクロ秒数なのね。
秒数を取るには apr_time_sec(変数) ってやらないとだめみたい。
int interval_sec = 10; apr_time_t start = apr_time_now(); // do something apr_time_t end = apr_time_now(); if (end - start > interval) { }
↑これは間違い。
interval_secが秒数なのに、end - start がマイクロ秒数だから。
int interval_sec = 10; apr_time_t start = apr_time_now(); // do something apr_time_t end = apr_time_now(); if (apr_time_sec(end) - apr_time_sec(start) > interval) { }
ってやらないと秒数にならない。
gitって
なんて読むの?
共有メモリやらセマフォ
を必要に迫られて調べちう。
あけましておめでとうございます。今年も宜しくお願いします。
略してあけおめことよろ!
OpenID 2.0 で setup_needed が返ってきたときにどうすればいいか
昨日の記事で、OpenID 1.1 の際にsetup_neededを返す場合にはuser_setup_urlを返せばいいんだよっていうのをid:ZIGOROuさんから教えてもらったのですが、OpenID 2.0 でsetup_neededが返ってきた場合にはuser_setup_urlがないのでどうしたらいいのかがわかりません。
と思ったのですが下記のURLの説明を見ると、その場合にはRPは「checkid_setupモードでやりなおすべきである」って書いてありました。
でも自信がない…。この理解で合ってるんだろうか…。
http://openid.net/specs/openid-authentication-2_0.html#rfc.section.10.2
もしそうであれば、Net::OpenID::ServerのSYNOPSISは下のようにuser_setup_urlが取れなかった場合のsetup_needed modeの際にcheckid_setupをやりなおす分岐を示してやるべき(だと思うんだですがどうでしょう)。
if (my $setup_url = $csr->user_setup_url) { # redirect/link/popup user to $setup_url } elsif ($csr->message->mode eq 'setup_needed') { # re-construct checkid_setup mode } elsif ($csr->user_cancel) { # restore web app state to prior to check_url } elsif (my $vident = $csr->verified_identity) { my $verified_url = $vident->url; print "You are $verified_url !"; } else { die "Error validating identity: " . $csr->err; }
ちなみに、mixiなどはOpenID 2.0でcheckid_immediateしても、setup_neededとuser_setup_urlが返ってくることから、おそらくNet::OpenID::Serverのバージョン1.1を使ってるんじゃまいか(あくまで予想)。