write a lighttpd plugin
詳細
lighttpd modステップ 1. copy src: 2. modify Makefile.am 3. reconfig 4. lighttpd.conf
reference:
ステップ
1. copy src:
2. modify Makefile.am
and add some lines to the src/Makefile.am to tell the build system about your new plugin:
lib_LTLIBRARIES += mod_counter.la mod_counter_la_SOURCES = mod_counter.c mod_counter_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined mod_counter_la_LIBADD = $(common_libadd)
3. reconfig
autoreconf -fi ./configure ...
4. lighttpd.conf
ここにいるconfに1行追加:server.modules = ( ... "mod_ipswitch", ...)
コード:
1.パラメータを得る
uri: con->uri.path->ptr
query string: con->uri.query->ptr
2.フィルタリングが必要かどうかを判断する
if (strncmp("/xxx", con->uri.path->ptr, 4))
return HANDLER_GO_ON;
3.結果を返す
buffer * b = chunkqueue_get_append_buffer(con->write_queue);
buffer_copy_string_len(b, CONST_STR_LEN("abcd - ning"));
con->http_status = 200;
con->file_finished = 1;
return HANDLER_FINISHED;
reference:
http://redmine.lighttpd.net/wiki/lighttpd/HowToWriteALighttpdPlugin
lighttpd mod
ステップ
1. copy src:
$ cd src/
$ cp mod_skeleton.c mod_counter.c
$ vi mod_counter.c
:%s/skeleton/counter/g
2. modify Makefile.am
and add some lines to the src/Makefile.am to tell the build system about your new plugin:
lib_LTLIBRARIES += mod_counter.la mod_counter_la_SOURCES = mod_counter.c mod_counter_la_LDFLAGS = -module -export-dynamic -avoid-version -no-undefined mod_counter_la_LIBADD = $(common_libadd)
3. reconfig
autoreconf -fi ./configure ...
4. lighttpd.conf
ここにいるconfに1行追加:server.modules = ( ... "mod_ipswitch", ...)
コード:
1.パラメータを得る
uri: con->uri.path->ptr
query string: con->uri.query->ptr
2.フィルタリングが必要かどうかを判断する
if (strncmp("/xxx", con->uri.path->ptr, 4))
return HANDLER_GO_ON;
3.結果を返す
buffer * b = chunkqueue_get_append_buffer(con->write_queue);
buffer_copy_string_len(b, CONST_STR_LEN("abcd - ning"));
con->http_status = 200;
con->file_finished = 1;
return HANDLER_FINISHED;
reference:
http://redmine.lighttpd.net/wiki/lighttpd/HowToWriteALighttpdPlugin