• Dridi Boukelmoune's avatar
    varnishtest: New tunnel command · e1e52264
    Dridi Boukelmoune authored
    The tunnel acts like a client and a server and forwards bytes between
    two parties. It can then pause in the middle of a session and control
    how much data can go in either direction. Combined with barriers it can
    be used to trigger socket timeouts, possibly in the middle of protocol
    frames.
    
    A tunnel works with two threads: one to execute its spec and one to poll
    both parties and transfer data accordingly. The two threads synchronize
    via basic pthread primitives and follow a very simplistic state machine:
    
        ACCEPT -> RUNNING <-> PAUSED -> SPEC DONE -> POLL DONE -> STOPPED
    
    Despite being simplistic, the coordination of two threads would likely
    complicate the implementation of a `-repeat` action, but it is still
    possible to `start` a tunnel again as shown in the c106 test case that
    exercises basic coverage involving a varnish instance.
    
    Usage is documented in the vtc(7) manual.
    e1e52264
Name
Last commit
Last update
.circleci Loading commit data...
.github Loading commit data...
bin Loading commit data...
doc Loading commit data...
etc Loading commit data...
include Loading commit data...
lib Loading commit data...
m4 Loading commit data...
man Loading commit data...
tools Loading commit data...
vmod Loading commit data...
.dir-locals.el Loading commit data...
.gitignore Loading commit data...
.lgtm.yml Loading commit data...
.syntastic_c_config Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING Loading commit data...
ChangeLog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
Makefile.am Loading commit data...
README.Packaging Loading commit data...
README.rst Loading commit data...
autogen.des Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
flint.lnt Loading commit data...
varnish-legacy.m4 Loading commit data...
varnish.m4 Loading commit data...
varnishapi-uninstalled.pc.in Loading commit data...
varnishapi.pc.in Loading commit data...
vtc.am Loading commit data...
wflags.py Loading commit data...