[4.1] 8fabd4a Add a VSL variant that takes uses stdarg(3)
Lasse Karstensen
lkarsten at varnish-software.com
Tue Jun 14 11:46:10 CEST 2016
commit 8fabd4aa60d68ee63bd743dea2b09b6eefae574f
Author: Federico G. Schwindt <fgsch at lodoss.net>
Date: Mon May 16 14:59:48 2016 +0100
Add a VSL variant that takes uses stdarg(3)
diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 39bdef7..0e0ca6f 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -957,6 +957,7 @@ void *VSM_Alloc(unsigned size, const char *class, const char *type,
const char *ident);
void VSM_Free(void *ptr);
#ifdef VSL_ENDMARKER
+void VSLv(enum VSL_tag_e tag, uint32_t vxid, const char *fmt, va_list va);
void VSL(enum VSL_tag_e tag, uint32_t vxid, const char *fmt, ...)
__v_printflike(3, 4);
void VSLbv(struct vsl_log *, enum VSL_tag_e tag, const char *fmt, va_list va);
diff --git a/bin/varnishd/cache/cache_shmlog.c b/bin/varnishd/cache/cache_shmlog.c
index e733686..789e902 100644
--- a/bin/varnishd/cache/cache_shmlog.c
+++ b/bin/varnishd/cache/cache_shmlog.c
@@ -207,9 +207,8 @@ vslr(enum VSL_tag_e tag, uint32_t vxid, const char *b, unsigned len)
*/
void
-VSL(enum VSL_tag_e tag, uint32_t vxid, const char *fmt, ...)
+VSLv(enum VSL_tag_e tag, uint32_t vxid, const char *fmt, va_list ap)
{
- va_list ap;
unsigned n, mlen = cache_param->vsl_reclen;
char buf[mlen];
@@ -217,18 +216,26 @@ VSL(enum VSL_tag_e tag, uint32_t vxid, const char *fmt, ...)
if (vsl_tag_is_masked(tag))
return;
-
if (strchr(fmt, '%') == NULL) {
vslr(tag, vxid, fmt, strlen(fmt) + 1);
} else {
- va_start(ap, fmt);
n = vsnprintf(buf, mlen, fmt, ap);
- va_end(ap);
if (n > mlen - 1)
n = mlen - 1;
buf[n++] = '\0'; /* NUL-terminated */
vslr(tag, vxid, buf, n);
}
+
+}
+
+void
+VSL(enum VSL_tag_e tag, uint32_t vxid, const char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ VSLv(tag, vxid, fmt, ap);
+ va_end(ap);
}
/*--------------------------------------------------------------------*/
More information about the varnish-commit
mailing list