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
在lighttpd.conf中加一行:
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\n"));
con->http_status = 200;
con->file_finished = 1;
return HANDLER_FINISHED;
reference:
http://redmine.lighttpd.net/wiki/lighttpd/HowToWriteALighttpdPlugin