Apache模块,确定传递给函数的配置文件的名称

时间:2013-05-17 22:10:54

标签: c apache2 apache-modules


不,我不是在问哪里可以找到httpd.conf


我已经获得了一个模块的代码,我需要修补它,因为我找不到任何关于这个问题的好文档。

const char* receiver_set_config_path(cmd_parms* cmd, void* cfg, const char* arg)
{
    receiver_config_path = arg;
    return NULL;
}

在这段代码中传入了一个cfg。我想确定传入的这个特定cfg文件的名称,以便我可以记录该名称。我该怎么做呢?此功能在我的receiver_directives []中设置。

static const command_rec        receiver_directives[] =
{
    AP_INIT_TAKE1("ReceiverPath", receiver_set_config_path, NULL, RSRC_CONF, "The path the receiver will put files"),
    { NULL }
};

非常感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这样做:

const char* receiver_set_config_path(cmd_parms* cmd, void* cfg, const char* arg)
{
#ifdef DEBUG
  fprintf(stderr, "DEBUG %s, %d: %s(..., arg='%s')\n", __FILE__, __LINE__, __FUNCTION__, arg);
#endif   
  receiver_config_path = arg;
  return NULL;
}

使用附加选项-DDEBUG进行编译,您将获得打印到stderr的内容,如下所示:

DEBUG mymodule.c, 42: receiver_set_config_path(..., arg='mypath')