升级到清漆v4

时间:2014-08-06 12:42:42

标签: varnish varnish-vcl

我们已将varnish v3升级到v4,我目前正致力于转换我的vcl。

在v3版本中,我们使用内联C来设置和读取具有以下功能的标题:

VRT_GetHdr(sp, HDR_REQ, header);    
VRT_SetHdr(sp, HDR_REQ, header, value , vrt_magic_string_end);

然而,在版本4中,这些功能稍有改变。 经过一些搜索,我们发现我们需要使用一种结构来定义标题。

VCL_HEADER hdrdef;
hdrdef->where = HDR_REQ;
hdrdef->what = "\005Test:";

使用它时,我们得到一个编译器失败的消息,它无法分配给只读对象。 有人知道我们如何利用/填充这个结构吗?

提前致谢!

克里斯托夫

1 个答案:

答案 0 :(得分:2)

这应该可以解决问题:

C{
static const struct gethdr_s VGC_HDR_REQ_hdrdef = { HDR_REQ, "\005Test:" };
}C

C{
VRT_SetHdr(ctx, &VGC_HDR_REQ_hdrdef, value, vrt_magic_string_end);
}C

请参阅:https://github.com/varnish/Varnish-Cache/blob/master/bin/varnishtest/tests/r01406.vtc