ます’s Blog - どうでもいい記事100選

どうでもいい記事100選

Apacheモジュール(2.2系統用)

久々に技術系っぽい話題。。。なのですが、内容は全然ヘタれ系で恐縮です。
ものすごーく以前の話ですが()、2年くらい軽く放置してたら(サボってたら)ツケが回ってきたようで、ここ数日間で本丸対応(移植)を急ぐハメになってしまいました。_| ̄|○

移植の手順はApache1.3系統とApache2.2系統のソースをgrepしまくって対比を見つつ、以下のファイルを参考がてらに進行していきました。

/usr/local/src/httpd-2.2.11/include/httpd.h
/usr/local/src/httpd-2.2.11/include/httpd_log.h
/usr/local/src/httpd-2.2.11/modules/aaa/mod_auth_basic.c
/usr/local/src/httpd-2.2.11/modules/experimental/mod_example.c
/usr/local/src/httpd-2.2.11/modules/metadata/mod_usertrack.c
/usr/local/src/httpd-2.2.11/modules/metadata/mod_unique_id.c
/usr/local/src/httpd-2.2.11/modules/metadata/mod_mime_magic.c
/usr/local/src/httpd-2.2.11/modules/proxy/mod_proxy_balancer.c

行き詰ったキーワードでググってみたりと、主にこの辺()のページを参考にさせてもらいました。このような有益な情報を公開していただき感謝です。
hookの仕方が結構変わっていて、そこに気づくまでが一番ハマったのですが、それ以外は比較的スムーズに移植できました。
っていうか、先にマニュアル等々は目を通しておけよな!って感じでした。相変わらず体当たりしまくりで、全然成長していない自分に脱帽です。効率悪スギ。_| ̄|○
mod_example.cの中身(void x_register_hooks関数)を見ていただけると分かりますが、hook登録用の関数が沢山用意されているので、目的の位置で関数を登録すればよい。。。と。今回の場合はap_hook_access_checker関数を使えば目的は達成できました。後は関数のプレフィックスを「ap_」から「apr_」に変えた程度。


結局、関係者全員で協議した結果、本丸対応をしなくても良くなったのですが、個人的には色々と勉強になりました。特にaprのライブラリは(もうちょっと)深追いしてみようか。。。という気になりました。
で、昔に作った練習用モジュールの存在を思い出したので、復習がてら移植を行ってみました。
以前と比べたら「apache モジュール 作成」で検索結果に該当したページの充実ぶりが良い感じです。。。っていうか、Apacheモジュールなんて(ネタ的には)今更な感じもしますけどね。24周遅れで(ようやく)到達です。(w