write a lighttpd plugin


詳細
lighttpd mod
  • ステップ
  • 1. copy src:
  • 2. modify Makefile.am
  • 3. reconfig
  • 4. lighttpd.conf

  • reference:

  • ステップ
    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