【问题标题】:Upgrade to varnish v4升级到清漆 v4
【发布时间】:2014-09-29 09:49:27
【问题描述】:

我们已将 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:";

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

提前致谢!

克里斯托夫

【问题讨论】:

    标签: varnish varnish-vcl


    【解决方案1】:

    这应该可以解决问题:

    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

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      相关资源
      最近更新 更多