Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
U
unique-xids
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
uplex-varnish
unique-xids
Commits
e810830a
Commit
e810830a
authored
Mar 11, 2013
by
Poul-Henning Kamp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fallback is spelled without an hyphen.
parent
1ccba69c
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
24 deletions
+28
-24
r01091.vtc
bin/varnishtest/tests/r01091.vtc
+9
-5
v00036.vtc
bin/varnishtest/tests/v00036.vtc
+1
-1
fall_back.c
lib/libvmod_directors/fall_back.c
+17
-17
vmod.vcc
lib/libvmod_directors/vmod.vcc
+1
-1
No files found.
bin/varnishtest/tests/r01091.vtc
View file @
e810830a
...
...
@@ -14,12 +14,16 @@ server s2 {
} -start
varnish v1 -vcl+backend {
director f1 fallback {
{ .backend = s1; }
{ .backend = s2; }
}
import directors from "${topbuild}/lib/libvmod_directors/.libs/libvmod_directors.so" ;
sub vcl_init {
new f1 = directors.fallback();
f1.add_backend(s1);
f1.add_backend(s2);
}
sub vcl_recv {
set req.backend = f1;
set req.backend = f1
.backend()
;
}
sub vcl_fetch {
if(req.restarts < 1) {
...
...
bin/varnishtest/tests/v00036.vtc
View file @
e810830a
...
...
@@ -19,7 +19,7 @@ varnish v1 -vcl+backend {
import directors from "${topbuild}/lib/libvmod_directors/.libs/libvmod_directors.so" ;
sub vcl_init {
new fb1 = directors.fall
_
back();
new fb1 = directors.fallback();
fb1.add_backend(s1);
fb1.add_backend(s2);
fb1.add_backend(s3);
...
...
lib/libvmod_directors/fall_back.c
View file @
e810830a
...
...
@@ -38,29 +38,29 @@
#include "vdir.h"
struct
vmod_directors_fall
_
back
{
struct
vmod_directors_fallback
{
unsigned
magic
;
#define VMOD_DIRECTORS_FALL
_
BACK_MAGIC 0xad4e26ba
#define VMOD_DIRECTORS_FALLBACK_MAGIC 0xad4e26ba
struct
vdir
*
vd
;
};
static
unsigned
__match_proto__
(
vdi_healthy
)
vmod_rr_healthy
(
const
struct
director
*
dir
,
const
struct
req
*
req
)
{
struct
vmod_directors_fall
_
back
*
rr
;
struct
vmod_directors_fallback
*
rr
;
CAST_OBJ_NOTNULL
(
rr
,
dir
->
priv
,
VMOD_DIRECTORS_FALL
_
BACK_MAGIC
);
CAST_OBJ_NOTNULL
(
rr
,
dir
->
priv
,
VMOD_DIRECTORS_FALLBACK_MAGIC
);
return
(
vdir_any_healthy
(
rr
->
vd
,
req
));
}
static
struct
vbc
*
__match_proto__
(
vdi_getfd_f
)
vmod_rr_getfd
(
const
struct
director
*
dir
,
struct
req
*
req
)
{
struct
vmod_directors_fall
_
back
*
rr
;
struct
vmod_directors_fallback
*
rr
;
unsigned
u
;
VCL_BACKEND
be
=
NULL
;
CAST_OBJ_NOTNULL
(
rr
,
dir
->
priv
,
VMOD_DIRECTORS_FALL
_
BACK_MAGIC
);
CAST_OBJ_NOTNULL
(
rr
,
dir
->
priv
,
VMOD_DIRECTORS_FALLBACK_MAGIC
);
vdir_lock
(
rr
->
vd
);
for
(
u
=
0
;
u
<
rr
->
vd
->
n_backend
;
u
++
)
{
be
=
rr
->
vd
->
backend
[
u
];
...
...
@@ -75,47 +75,47 @@ vmod_rr_getfd(const struct director *dir, struct req *req)
}
VCL_VOID
__match_proto__
()
vmod_fall
_back__init
(
struct
req
*
req
,
struct
vmod_directors_fall_
back
**
rrp
,
vmod_fall
back__init
(
struct
req
*
req
,
struct
vmod_directors_fall
back
**
rrp
,
const
char
*
vcl_name
)
{
struct
vmod_directors_fall
_
back
*
rr
;
struct
vmod_directors_fallback
*
rr
;
AZ
(
req
);
AN
(
rrp
);
AZ
(
*
rrp
);
ALLOC_OBJ
(
rr
,
VMOD_DIRECTORS_FALL
_
BACK_MAGIC
);
ALLOC_OBJ
(
rr
,
VMOD_DIRECTORS_FALLBACK_MAGIC
);
AN
(
rr
);
*
rrp
=
rr
;
vdir_new
(
&
rr
->
vd
,
vcl_name
,
vmod_rr_healthy
,
vmod_rr_getfd
,
rr
);
}
VCL_VOID
__match_proto__
()
vmod_fall
_back__fini
(
struct
req
*
req
,
struct
vmod_directors_fall_
back
**
rrp
)
vmod_fall
back__fini
(
struct
req
*
req
,
struct
vmod_directors_fall
back
**
rrp
)
{
struct
vmod_directors_fall
_
back
*
rr
;
struct
vmod_directors_fallback
*
rr
;
AZ
(
req
);
rr
=
*
rrp
;
*
rrp
=
NULL
;
CHECK_OBJ_NOTNULL
(
rr
,
VMOD_DIRECTORS_FALL
_
BACK_MAGIC
);
CHECK_OBJ_NOTNULL
(
rr
,
VMOD_DIRECTORS_FALLBACK_MAGIC
);
vdir_delete
(
&
rr
->
vd
);
FREE_OBJ
(
rr
);
}
VCL_VOID
__match_proto__
()
vmod_fall
_
back_add_backend
(
struct
req
*
req
,
struct
vmod_directors_fall
_
back
*
rr
,
VCL_BACKEND
be
)
vmod_fallback_add_backend
(
struct
req
*
req
,
struct
vmod_directors_fallback
*
rr
,
VCL_BACKEND
be
)
{
(
void
)
req
;
CHECK_OBJ_NOTNULL
(
rr
,
VMOD_DIRECTORS_FALL
_
BACK_MAGIC
);
CHECK_OBJ_NOTNULL
(
rr
,
VMOD_DIRECTORS_FALLBACK_MAGIC
);
(
void
)
vdir_add_backend
(
rr
->
vd
,
be
,
0
.
0
);
}
VCL_BACKEND
__match_proto__
()
vmod_fall
_back_backend
(
struct
req
*
req
,
struct
vmod_directors_fall_
back
*
rr
)
vmod_fall
back_backend
(
struct
req
*
req
,
struct
vmod_directors_fall
back
*
rr
)
{
(
void
)
req
;
CHECK_OBJ_NOTNULL
(
rr
,
VMOD_DIRECTORS_FALL
_
BACK_MAGIC
);
CHECK_OBJ_NOTNULL
(
rr
,
VMOD_DIRECTORS_FALLBACK_MAGIC
);
return
(
rr
->
vd
->
dir
);
}
lib/libvmod_directors/vmod.vcc
View file @
e810830a
...
...
@@ -32,7 +32,7 @@ Object round_robin() {
Method BACKEND .backend()
}
Object fall
_
back() {
Object fallback() {
Method VOID .add_backend(BACKEND)
Method BACKEND .backend()
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment