VMOD_STD(3)

NAME
vmod_std - Varnish Standard Module

SYNOPSIS

import std

DESCRIPTION

The Varnish standard module contains useful, generic function that don't quite fit in the VCL core, but are still considered very useful to a broad audience.

FUNCTIONS

  toupper

Prototype
    toupper(STRING s)

Return value
    String

Description
    Converts the string s to upper case.

Example
    set beresp.http.x-scream = std.toupper("yes!");

  tolower

Prototype
    tolower(STRING s)

Return value
    String

Description
    Converts the string s to lower case.

Example
    set beresp.http.x-nice = std.tolower("VerY");

  set_ip_tos

Prototype
    set_ip_tos(INT i)

Return value
    Void

Description
    Sets the Type-of-Service flag for the current session. Please note that the TOS flag is not removed by the end of the request so probably want to set it on every request should you utilize it.

Example
    if (req.url ~ ^/slow/) {
    std.set_ip_tos(0x0);
    }

  random

Prototype
    random(REAL a, REAL b)

Return value
    Real

Description
    Returns a random REAL number between a and b.

Example
    set beresp.http.x-random-number = std.random(1, 100);

  log

Prototype
    log(STRING string)

Return value
    Void

Description
    Logs string to the shared memory log.

Example
    std.log("Something fishy is going on with the vhost " + req.host);

  syslog

Prototype
    syslog(INT priority, STRING string)

Return value
    Void

Description
    Logs string to syslog marked with priority.

Example
    std.syslog( LOG_USER|LOG_ALERT, "There is serious troble");

  fileread

Prototype
    fileread(STRING filename)

Return value
    String

Description
    Reads a file and returns a string with the content. Please note that it is not recommended to send variables to this function the caching in the function doesn't take this into account. Also, files are not re-read.

Example
    set beresp.http.x-served-by = std.fileread("/etc/hostname");

  duration

Prototype
    duration(STRING s, DURATION fallback)

Return value
    Duration

Description
    Converts the string s to seconds. s can be quantified with the usual s (seconds), m (minutes), h (hours), d (days) and w (weeks) units. If s fails to parse, fallback will be used.

Example
    set beresp.ttl = std.duration("1w", 3600s);

  integer

Prototype
    integer(STRING s, INT fallback)

Return value
    Int

Description
    Converts the string s to an integer. If s fails to parse, fallback will be used

Example
    if (std.integer(beresp.http.x-foo, 0) > 5) { ... }

  collect

Prototype
    collect(HEADER header)

Return value
    Void

Description
    Collapses the header, joining the headers into one.

Example
    std.collect(req.http.cookie); This will collapse several Cookie: headers into one, long cookie header.

SEE ALSO

•   vcl(7)

•   varnishd(1)

HISTORY

The Varnish standard module was released along with Varnish Cache 3.0. This manual page was written by Per Buer with help from Martin Blix Grydeland.

COPYRIGHT

This document is licensed under the same licence as Varnish itself. See LICENCE for details.

•   Copyright (c) 2011 Varnish Software

AUTHOR
Per Buer