Использование C для изменения ответа в VCL - PullRequest
0 голосов
/ 05 мая 2020

В varni sh docs говорится, что мы можем включать C фрагменты в файл VCL, например

sub vcl_hash {
    C{
            int i = /* Some logic to get a number */
    }C
}

Но теперь как я могу использовать значение целого числа i, чтобы задать заголовок ответа, или приготовить ie

Ответы [ 3 ]

1 голос
/ 19 мая 2020

См. varni sh .v cc

И функции:

в varni sh 4 для контекста определена ctx variabl (в отличие от sp в varni sh 3) ( источник )

пример:

sub vcl_hash {
    C{
        const char *hash = calc_hash(...);
        const struct gethdr_s hdr = { 
            HDR_BERESP,
            "\010X-Hash:" // length prefixed string, in octal 
        };
        VRT_SetHdr(ctx, &hdr, hash, vrt_magic_string_end);
    }C
}

см. здесь для другого примера

0 голосов
/ 23 мая 2020

Я бы посоветовал вам написать vmod напрямую, это будет намного удобнее. Вы можете найти (старое, но все еще актуальное) руководство здесь: https://info.varnish-software.com/blog/creating-a-vmod-vmod-str

0 голосов
/ 06 мая 2020

Почему бы вам просто не использовать VCL? set resp.http.x-header = header, чтобы установить любой заголовок, который вы хотите установить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...