diff --git a/etc/noosfero/varnish-accept-language.vcl b/etc/noosfero/varnish-accept-language.vcl index 7a4ed43..647d354 100644 --- a/etc/noosfero/varnish-accept-language.vcl +++ b/etc/noosfero/varnish-accept-language.vcl @@ -23,7 +23,7 @@ C{ #include #define DEFAULT_LANGUAGE "en" -#define SUPPORTED_LANGUAGES ":de:eo:es:fr:hy:it:pt:ru:" +#define SUPPORTED_LANGUAGES ":en:cs:de:eo:es:fr:hy:it:pt:ru:" #define vcl_string char #define LANG_LIST_SIZE 16 @@ -162,20 +162,21 @@ void select_language(const vcl_string *incoming_header, char *lang) { } /* Reads req.http.Accept-Language and writes X-Varnish-Accept-Language */ -void vcl_rewrite_accept_language(const struct sess *sp) { +void vcl_rewrite_accept_language(const struct vrt_ctx *ctx) { vcl_string *in_hdr; vcl_string lang[LANG_MAXLEN]; + const struct gethdr_s hdr = { HDR_REQ, "\020Accept-Language:" }; + const struct gethdr_s hdrUpd = { HDR_REQ, "\032X-Varnish-Accept-Language:"}; /* Get Accept-Language header from client */ - in_hdr = VRT_GetHdr(sp, HDR_REQ, "\020Accept-Language:"); + in_hdr = VRT_GetHdr(ctx, &hdr); /* Normalize and filter out by list of supported languages */ memset(lang, 0, sizeof(lang)); select_language(in_hdr, lang); /* By default, use a different header name: don't mess with backend logic */ - VRT_SetHdr(sp, HDR_REQ, "\032X-Varnish-Accept-Language:", lang, vrt_magic_string_end); - + VRT_SetHdr(ctx, &hdrUpd, lang, vrt_magic_string_end); return; } @@ -188,15 +189,14 @@ void vcl_rewrite_accept_language(const struct sess *sp) { sub vcl_recv { C{ - vcl_rewrite_accept_language(sp); + vcl_rewrite_accept_language(ctx); }C } -sub vcl_fetch { +sub vcl_backend_response { if (beresp.http.Vary) { set beresp.http.Vary = beresp.http.Vary + ", X-Varnish-Accept-Language"; } else { set beresp.http.Vary = "X-Varnish-Accept-Language"; } } - diff --git a/etc/noosfero/varnish-noosfero.vcl b/etc/noosfero/varnish-noosfero.vcl index 8fd054f..103a363 100644 --- a/etc/noosfero/varnish-noosfero.vcl +++ b/etc/noosfero/varnish-noosfero.vcl @@ -1,5 +1,7 @@ +vcl 4.0; + sub vcl_recv { - if (req.request == "GET" || req.request == "HEAD") { + if (req.method == "GET" || req.method == "HEAD") { if (req.http.Cookie) { # We only care about the "_noosfero_.*" cookies, used by Noosfero if (req.http.Cookie !~ "_noosfero_.*" ) { @@ -17,10 +19,10 @@ sub vcl_deliver { } } -sub vcl_error { - set obj.http.Content-Type = "text/html; charset=utf-8"; +sub vcl_backend_error { + set beresp.http.Content-Type = "text/html; charset=utf-8"; - synthetic {" + synthetic({" @@ -52,7 +54,7 @@ sub vcl_error {
- "}; + "}); return(deliver); } -- libgit2 0.21.2