在模块内将自定义头设置为apache响应

在模块内将自定义头设置为apache响应,apache,apache-modules,Apache,Apache Modules,我正在创建一个使用AES加密数据的apache模块。 我的最终目标是为每个请求使用不同的AES密钥,生成一个16字节的新密钥,用于AES加密文件,并将使用RSA加密的密钥作为自定义头发送 问题是,我找不到任何文档以编程方式设置自定义标题 我期待着像ap_set_handlerHeaderName,content这样的东西 我只找到了使用此函数的文件: 问题是,在源代码中包含它会给我一个函数“ap_set_header”错误的隐式声明,即使我包含了该文件的相同.h文件 我很确定这是可以做到的,但

我正在创建一个使用AES加密数据的apache模块。 我的最终目标是为每个请求使用不同的AES密钥,生成一个16字节的新密钥,用于AES加密文件,并将使用RSA加密的密钥作为自定义头发送

问题是,我找不到任何文档以编程方式设置自定义标题

我期待着像ap_set_handlerHeaderName,content这样的东西

我只找到了使用此函数的文件:

问题是,在源代码中包含它会给我一个函数“ap_set_header”错误的隐式声明,即使我包含了该文件的相同.h文件


我很确定这是可以做到的,但我真的不知道在哪里搜索。经过两天的努力,我找到了如何搜索的方法。我查看了mod_头的源代码,否则在文档中几乎不可能在不知道的情况下找到它

实际上,Apache在处理程序中提供的请求\u rec*r实例有一个非常有用的r->headers\u外场

您可以在此处找到“文档”:

r->headers\u out是一个apr\u表,因此您可以使用适当的函数对其进行修改:

/* Add header at the end of table */
ap_table_mergen(r->headers_out, "NameField", "value");
/* Overwrite value of "NameField" header or add it (if not existing) */
ap_table_setn(r->headers_out, "NameField", "value");
/* Unset header */
ap_table_unset(r->headers_out, "NameField");

经过两天的努力,我通过查看mod_头文件的源代码发现了如何做到这一点,否则在文档中几乎不可能在不知道的情况下找到它

实际上,Apache在处理程序中提供的请求\u rec*r实例有一个非常有用的r->headers\u外场

您可以在此处找到“文档”:

r->headers\u out是一个apr\u表,因此您可以使用适当的函数对其进行修改:

/* Add header at the end of table */
ap_table_mergen(r->headers_out, "NameField", "value");
/* Overwrite value of "NameField" header or add it (if not existing) */
ap_table_setn(r->headers_out, "NameField", "value");
/* Unset header */
ap_table_unset(r->headers_out, "NameField");