Commit 727872bf authored by Geoff Simmons's avatar Geoff Simmons

Add the log_checks parameter to the reader constructor.

parent 40400658
...@@ -56,7 +56,8 @@ varnish v1 -vcl { ...@@ -56,7 +56,8 @@ varnish v1 -vcl {
backend b { .host = "${bad_ip}"; } backend b { .host = "${bad_ip}"; }
sub vcl_init { sub vcl_init {
new rdr = file.reader("${tmpdir}/file", ttl=0.1s); new rdr = file.reader("${tmpdir}/file", ttl=0.1s,
log_checks=true);
} }
sub vcl_recv { sub vcl_recv {
...@@ -85,6 +86,12 @@ client c1 { ...@@ -85,6 +86,12 @@ client c1 {
expect resp.http.Get == "quux baz bar foo" expect resp.http.Get == "quux baz bar foo"
} -run } -run
logexpect l1 -v v1 -d 1 -g raw -q "Debug" {
expect * * Debug {^vmod file: rdr: check for \S+ running at}
expect * * Debug {^vmod file: rdr: updating \S+ at}
expect * * Debug {^vmod file: rdr: check for \S+ finished successfully at}
} -run
shell {rm -f ${tmpdir}/file} shell {rm -f ${tmpdir}/file}
delay .1 delay .1
......
...@@ -67,6 +67,7 @@ struct file_info { ...@@ -67,6 +67,7 @@ struct file_info {
size_t len; size_t len;
dev_t dev; dev_t dev;
ino_t ino; ino_t ino;
VCL_BOOL log_checks;
}; };
#define RDR_INITIALIZED (1 << 0) #define RDR_INITIALIZED (1 << 0)
...@@ -95,6 +96,7 @@ check(union sigval val) ...@@ -95,6 +96,7 @@ check(union sigval val)
struct stat st; struct stat st;
int fd; int fd;
void *addr; void *addr;
char timbuf[VTIM_FORMAT_SIZE];
CAST_OBJ_NOTNULL(rdr, val.sival_ptr, FILE_READER_MAGIC); CAST_OBJ_NOTNULL(rdr, val.sival_ptr, FILE_READER_MAGIC);
CHECK_OBJ_NOTNULL(rdr->info, FILE_INFO_MAGIC); CHECK_OBJ_NOTNULL(rdr->info, FILE_INFO_MAGIC);
...@@ -103,6 +105,12 @@ check(union sigval val) ...@@ -103,6 +105,12 @@ check(union sigval val)
AN(rdr->errbuf); AN(rdr->errbuf);
AN(info->path); AN(info->path);
if (info->log_checks) {
VTIM_format(VTIM_real(), timbuf);
VSL(SLT_Debug, 0, "vmod file: %s: check for %s running at %s",
rdr->vcl_name, info->path, timbuf);
}
AZ(pthread_rwlock_wrlock(&rdr->lock)); AZ(pthread_rwlock_wrlock(&rdr->lock));
errno = 0; errno = 0;
...@@ -130,6 +138,12 @@ check(union sigval val) ...@@ -130,6 +138,12 @@ check(union sigval val)
goto out; goto out;
} }
if (info->log_checks) {
VTIM_format(VTIM_real(), timbuf);
VSL(SLT_Debug, 0, "vmod file: %s: updating %s at %s",
rdr->vcl_name, info->path, timbuf);
}
if (rdr->flags & RDR_MAPPED) { if (rdr->flags & RDR_MAPPED) {
AN(rdr->addr); AN(rdr->addr);
if (munmap(rdr->addr, info->len) != 0) { if (munmap(rdr->addr, info->len) != 0) {
...@@ -186,13 +200,21 @@ check(union sigval val) ...@@ -186,13 +200,21 @@ check(union sigval val)
out: out:
AZ(pthread_rwlock_unlock(&rdr->lock)); AZ(pthread_rwlock_unlock(&rdr->lock));
if (info->log_checks) {
VTIM_format(VTIM_real(), timbuf);
VSL(SLT_Debug, 0,
"vmod file: %s: check for %s finished successfully at %s",
rdr->vcl_name, info->path, timbuf);
}
return; return;
} }
VCL_VOID VCL_VOID
vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp, vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp,
const char *vcl_name, struct vmod_priv *priv, const char *vcl_name, struct vmod_priv *priv,
VCL_STRING name, VCL_STRING path, VCL_DURATION ttl) VCL_STRING name, VCL_STRING path, VCL_DURATION ttl,
VCL_BOOL log_checks)
{ {
struct VPFX(file_reader) *rdr; struct VPFX(file_reader) *rdr;
struct file_info *info; struct file_info *info;
...@@ -233,6 +255,7 @@ vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp, ...@@ -233,6 +255,7 @@ vmod_reader__init(VRT_CTX, struct VPFX(file_reader) **rdrp,
rdr->info = info; rdr->info = info;
rdr->vcl_name = strdup(vcl_name); rdr->vcl_name = strdup(vcl_name);
info->log_checks = log_checks;
if (*name == '/') if (*name == '/')
info->path = strdup(name); info->path = strdup(name);
......
...@@ -36,7 +36,7 @@ XXX ... ...@@ -36,7 +36,7 @@ XXX ...
$Object reader(PRIV_VCL, STRING name, $Object reader(PRIV_VCL, STRING name,
STRING path="/usr/local/etc/varnish:/usr/local/share/varnish/vcl:/usr/etc/varnish:/usr/share/varnish/vcl", STRING path="/usr/local/etc/varnish:/usr/local/share/varnish/vcl:/usr/etc/varnish:/usr/share/varnish/vcl",
DURATION ttl=120) DURATION ttl=120, BOOL log_checks=0)
XXX ... XXX ...
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment