1

我第一次编写 Apache 模块,我刚刚完成了我的 hello world 程序。

我必须得到以下值:

  • 1个请求长度(我假设它是URi的长度,r->uri)如果我错了请纠正我
  • 2 响应长度
  • 3 请求数据
  • 4 响应数据

并将其存储在日志文件中。

我已经完成了所有基本结构 server_rec、request_rec、connection 和 process,但我不确定如何完成。

我知道这是基本的,但找不到任何可以给我上述结果的文章:(

下面是我的hello world 示例

/* The simplest HelloWorld module */
#include <httpd.h>
#include <http_protocol.h>
#include <http_config.h>
static int helloworld_handler(request_rec *r)
{
if (!r->handler || strcmp(r->handler, "helloworld")) {
return DECLINED;
}
if (r->method_number != M_GET) {
return HTTP_METHOD_NOT_ALLOWED;
}
ap_set_content_type(r, "text/html;charset=ascii");
ap_rputs("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\">\n",
r);
ap_rputs("<html><head><title>Apache HelloWorld "
"Module</title></head>", r);
ap_rputs("<body><h1>Hello World!</h1>", r);
ap_rputs("<p>This is the Apache HelloWorld module!</p>", r);
ap_rputs("</body></html>", r);
return OK;
}
static void helloworld_hooks(apr_pool_t *pool)
{
ap_hook_handler(helloworld_handler, NULL, NULL, APR_HOOK_MIDDLE);
}
module AP_MODULE_DECLARE_DATA helloworld_module = {
STANDARD20_MODULE_STUFF,
NULL,
NULL,
NULL,
NULL,
NULL,
helloworld_hooks
} ;

我能够将输出存储在文本文件中,但无法获取上述字段。

4

0 回答 0