configを設定するには...
config_values_t cv[] = { ... }に追記する。
構造体の第1引数がconfigに記述するシンボルそのもの。
"hoge.url"とか書けばいい。次は気にせずNULL、3つめは
T_CONFIG_{ARRAY|STRING}あたり。urlを指定するなら文字列で
いいと思われるのでT_CONFIG_STRING。最後は、connectinごとか
server固有になるのかを指定する。今回はT_CONFIG_SCOPE_SERVER。
あらかじめ、plugin_configにメンバを追加しておく。
T_CONFIG_STRINGならbuffer *hoge_urlのように追記。
結果、
typedef struct {
buffer *hoge_url;
} plugin_config;
config_values_cv[] = {
{ "hoge.my-url", NULL, T_CONFIG_STRING, T_CONFIG_SCOPE_SERVER },
{ NULL, NULL, T_CONFIG_UNSET, T_CONFIG_SCOPE_UNSET }
}
で、config_insert_values_global()でplugin_configに登録する。
実際に使用するときは、PATCH()でシンボルを引っ張ってきて使うのが流儀。
日曜日, 11月 26, 2006
木曜日, 11月 23, 2006
pluginわかんNE-
巷で話題のlighttpd。pluginを作ろうと思ってみたんだけど全くわかんね。
やった手順はdocument通り。
本当なら、static linkしてdebugした方が楽なんだろうけど面倒くさいのでこのまま作業する。
まずは起動まで。
1)
tar ballを展開する。
2)
lighttpd-1.4.13/src/mod_skeketon.cをcopyしてmod_hoge.cを作る。
mod_hoge.cの中のskeletonという文字列を全てhogeに変更。
3)
lighttpd-1.4.13/src/Makefileに追記
lib_LTLIBRARIES += mod_hoge.la
mod_hoge_la_SOURCES = mod_hoge.c
mod_hoge_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_hoge_la_LIBADD = $(common_libadd)
4)
top directoryでconfigure実行
$ ./configure --enable-maintainer-mode --prefix=/tmp/httpd
これで、/tmp/httpdにinstallされるので動かす事ができる。
5)
lighttpd.confを修正してmod_hogeを追加。
面倒なので /tmp/httpd/sbinにlighttpd.conを置く。
/tmp/httpd/logsを掘り、access.logとerror.logを吐くようにlighttpd.confを修正。
6)
/tmp/httpd/sbinでllighttpd起動
$ sudo ./lighttpd -D -f ./lighttpd.conf
次がmoduleの修正
まずは初期値の設定で腕試し。
お試しでlighttpd.confに以下のディレクティブを追加してみる。
hoge.my-url = "HOGEHOGE"
(あとでちゃんと書く)
plugin_dataに追記。
constなtableに追記。
_init()で解析結果を保持するようにする。
plugin_dataはconnection毎に持つらしい。
handler内でmy-urlを拾えるようにする。
やった手順はdocument通り。
本当なら、static linkしてdebugした方が楽なんだろうけど面倒くさいのでこのまま作業する。
まずは起動まで。
1)
tar ballを展開する。
2)
lighttpd-1.4.13/src/mod_skeketon.cをcopyしてmod_hoge.cを作る。
mod_hoge.cの中のskeletonという文字列を全てhogeに変更。
3)
lighttpd-1.4.13/src/Makefileに追記
lib_LTLIBRARIES += mod_hoge.la
mod_hoge_la_SOURCES = mod_hoge.c
mod_hoge_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined
mod_hoge_la_LIBADD = $(common_libadd)
4)
top directoryでconfigure実行
$ ./configure --enable-maintainer-mode --prefix=/tmp/httpd
これで、/tmp/httpdにinstallされるので動かす事ができる。
5)
lighttpd.confを修正してmod_hogeを追加。
面倒なので /tmp/httpd/sbinにlighttpd.conを置く。
/tmp/httpd/logsを掘り、access.logとerror.logを吐くようにlighttpd.confを修正。
6)
/tmp/httpd/sbinでllighttpd起動
$ sudo ./lighttpd -D -f ./lighttpd.conf
次がmoduleの修正
まずは初期値の設定で腕試し。
お試しでlighttpd.confに以下のディレクティブを追加してみる。
hoge.my-url = "HOGEHOGE"
(あとでちゃんと書く)
plugin_dataに追記。
constなtableに追記。
_init()で解析結果を保持するようにする。
plugin_dataはconnection毎に持つらしい。
handler内でmy-urlを拾えるようにする。
登録:
投稿 (Atom)