[master] d771942 Hide backends and directors implementation details
Federico Schwindt
fgsch at lodoss.net
Mon Aug 24 11:37:36 CEST 2015
As I mentioned to Dridi I'm not too thrilled about this.
This pollutes cache.h and causes artificial breakages. I'd prefer, if we
really want to do this, to take the _int.h approach.
I also had a chat with Martin not so long ago and one of the things that
came in that discussion is the possibility of installing all the includes.
This is a step backwards from that.
On Sun, Aug 23, 2015 at 11:35 AM, Dridi Boukelmoune <
dridi.boukelmoune at gmail.com> wrote:
>
> commit d771942c0c6f151e267b63bbc548a4d4371b25be
> Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
> Date: Sun Aug 23 12:29:29 2015 +0200
>
> Hide backends and directors implementation details
>
> Don't install cache_backend.h and cache_director.h, they expose more
> than what a VMOD needs to see.
>
> The VRT API jumps directly from struct vrt_backend to struct director,
> which makes struct backend more than simply opaque, it is completely
> invisible. However struct director needs to be visible and has been
> moved to cache.h along with its functions definitions.
>
> diff --git a/bin/varnishd/Makefile.am b/bin/varnishd/Makefile.am
> index dd2bae2..eb01348 100644
> --- a/bin/varnishd/Makefile.am
> +++ b/bin/varnishd/Makefile.am
> @@ -99,6 +99,8 @@ varnishd_SOURCES = \
>
> noinst_HEADERS = \
> builtin_vcl.h \
> + cache/cache_backend.h \
> + cache/cache_director.h \
> cache/cache_esi.h \
> cache/cache_pool.h \
> common/heritage.h \
> @@ -116,8 +118,6 @@ noinst_HEADERS = \
> nobase_pkginclude_HEADERS = \
> cache/cache.h \
> cache/cache_filter.h \
> - cache/cache_backend.h \
> - cache/cache_director.h \
> common/common.h \
> common/params.h \
> waiter/waiter.h
> diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
> index 648dad4..ed72296 100644
> --- a/bin/varnishd/cache/cache.h
> +++ b/bin/varnishd/cache/cache.h
> @@ -190,6 +190,47 @@ struct http {
> };
>
> /*--------------------------------------------------------------------
> + * Director public APIs
> + */
> +
> +typedef unsigned vdi_healthy_f(const struct director *, const struct
> busyobj *,
> + double *changed);
> +
> +typedef const struct director *vdi_resolve_f(const struct director *,
> + struct worker *, struct busyobj *);
> +
> +typedef int vdi_gethdrs_f(const struct director *, struct worker *,
> + struct busyobj *);
> +typedef int vdi_getbody_f(const struct director *, struct worker *,
> + struct busyobj *);
> +typedef const struct suckaddr *vdi_getip_f(const struct director *,
> + struct worker *, struct busyobj *);
> +typedef void vdi_finish_f(const struct director *, struct worker *,
> + struct busyobj *);
> +
> +typedef void vdi_http1pipe_f(const struct director *, struct req *,
> + struct busyobj *);
> +
> +typedef void vdi_panic_f(const struct director *, struct vsb *);
> +
> +struct director {
> + unsigned magic;
> +#define DIRECTOR_MAGIC 0x3336351d
> + const char *name;
> + char *vcl_name;
> + vdi_http1pipe_f *http1pipe;
> + vdi_healthy_f *healthy;
> + vdi_resolve_f *resolve;
> + vdi_gethdrs_f *gethdrs;
> + vdi_getbody_f *getbody;
> + vdi_getip_f *getip;
> + vdi_finish_f *finish;
> + vdi_panic_f *panic;
> + void *priv;
> + const void *priv2;
> +};
> +
> +/*--------------------------------------------------------------------
> * VFP filter state
> */
>
> diff --git a/bin/varnishd/cache/cache_director.h
> b/bin/varnishd/cache/cache_director.h
> index cf20dc1..3bccf80 100644
> --- a/bin/varnishd/cache/cache_director.h
> +++ b/bin/varnishd/cache/cache_director.h
> @@ -37,49 +37,6 @@
> *
> */
>
> -/*--------------------------------------------------------------------
> - * A director is a piece of code which selects one of possibly multiple
> - * backends to use.
> - */
> -
> -
> -typedef unsigned vdi_healthy_f(const struct director *, const struct
> busyobj *,
> - double *changed);
> -
> -typedef const struct director *vdi_resolve_f(const struct director *,
> - struct worker *, struct busyobj *);
> -
> -typedef int vdi_gethdrs_f(const struct director *, struct worker *,
> - struct busyobj *);
> -typedef int vdi_getbody_f(const struct director *, struct worker *,
> - struct busyobj *);
> -typedef const struct suckaddr *vdi_getip_f(const struct director *,
> - struct worker *, struct busyobj *);
> -typedef void vdi_finish_f(const struct director *, struct worker *,
> - struct busyobj *);
> -
> -typedef void vdi_http1pipe_f(const struct director *, struct req *,
> - struct busyobj *);
> -
> -typedef void vdi_panic_f(const struct director *, struct vsb *);
> -
> -struct director {
> - unsigned magic;
> -#define DIRECTOR_MAGIC 0x3336351d
> - const char *name;
> - char *vcl_name;
> - vdi_http1pipe_f *http1pipe;
> - vdi_healthy_f *healthy;
> - vdi_resolve_f *resolve;
> - vdi_gethdrs_f *gethdrs;
> - vdi_getbody_f *getbody;
> - vdi_getip_f *getip;
> - vdi_finish_f *finish;
> - vdi_panic_f *panic;
> - void *priv;
> - const void *priv2;
> -};
> -
> /* cache_director.c */
>
> int VDI_GetHdr(struct worker *, struct busyobj *);
> diff --git a/lib/libvmod_directors/vdir.c b/lib/libvmod_directors/vdir.c
> index 411df34..1738bcf 100644
> --- a/lib/libvmod_directors/vdir.c
> +++ b/lib/libvmod_directors/vdir.c
> @@ -31,7 +31,6 @@
> #include <stdlib.h>
>
> #include "cache/cache.h"
> -#include "cache/cache_director.h"
>
> #include "vrt.h"
> #include "vbm.h"
>
> _______________________________________________
> varnish-commit mailing list
> varnish-commit at varnish-cache.org
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.varnish-cache.org/lists/pipermail/varnish-dev/attachments/20150824/4e211ad4/attachment.html>
More information about the varnish-dev
mailing list