[PATCH] Expose the backend of a simple director
Kristian Lyngstol
kristian at varnish-software.com
Mon Apr 12 14:38:52 CEST 2010
This is needed if a director (like the dns director) needs a closer look at
each backend to determine which to use. IE: Look at the IP or similar.
PS: It seems a bit wrong to expose vdi_simple_SOMETHING directly, but it
also seemed strange to do VBE_Something. More semantics than anything,
though.
---
varnish-cache/bin/varnishd/cache.h | 1 +
varnish-cache/bin/varnishd/cache_backend.c | 14 ++++++++++++++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/varnish-cache/bin/varnishd/cache.h b/varnish-cache/bin/varnishd/cache.h
index 2561a0d..35e286d 100644
--- a/varnish-cache/bin/varnishd/cache.h
+++ b/varnish-cache/bin/varnishd/cache.h
@@ -464,6 +464,7 @@ void VBE_ClosedFd(struct sess *sp);
void VBE_RecycleFd(struct sess *sp);
void VBE_AddHostHeader(const struct sess *sp);
void VBE_Poll(void);
+struct backend *vdi_simple_get_backend(const struct director *d);
/* cache_backend_cfg.c */
void VBE_Init(void);
diff --git a/varnish-cache/bin/varnishd/cache_backend.c b/varnish-cache/bin/varnishd/cache_backend.c
index ed35fec..a0c54c6 100644
--- a/varnish-cache/bin/varnishd/cache_backend.c
+++ b/varnish-cache/bin/varnishd/cache_backend.c
@@ -498,6 +498,20 @@ vdi_simple_healthy(double now, const struct director *d, uintptr_t target)
return (vbe_Healthy(now, target, vs->backend));
}
+/* Reveals the real backend of a simple director if needed. */
+struct backend *
+vdi_simple_get_backend(const struct director *d)
+{
+ CHECK_OBJ_NOTNULL(d, DIRECTOR_MAGIC);
+ struct vdi_simple *vs, *vs2;
+
+ vs2 = d->priv;
+ if (vs2->magic != VDI_SIMPLE_MAGIC)
+ return NULL;
+ CAST_OBJ_NOTNULL(vs, d->priv, VDI_SIMPLE_MAGIC);
+ return vs->backend;
+}
+
/*lint -e{818} not const-able */
static void
vdi_simple_fini(struct director *d)
--
1.5.4.3
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: not available
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-dev/attachments/20100412/e2aa6b20/attachment-0003.pgp>
More information about the varnish-dev
mailing list