Apache筛选器请求主机名比较不起作用

时间:2012-08-21 06:14:50

标签: c apache filter hostname

我是新手编写apache输出过滤器,甚至更多用c编写它们。我已经采用了一个示例过滤器(mod_substitute)源代码,并且只有在请求针对特定主机时才尝试使其工作。我需要将其作为一个编程功能而不是出于我自己原因的配置。

我使用以下代码试试这个:

request_rec *req = f->r;

ngf_module_ctx *ctx = f->ctx;


/* Test to see if this is a domain that needs optimization */
if (req->hostname != "localhost") {
    ap_pass_brigade(f->next, bb);
    return APR_SUCCESS;
}

使用调试打印我看到req-> hostname值确实显示为localhost,但比较本身失败。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您正在使用指针相等运算符(!=)来比较字符串。这是C,请记住 - 您必须使用strcmp之类的函数来比较字符串。

如果您之前没有使用过C语言,那么编写Apache模块可能不是一个好的开始。备份并首先熟悉该语言。