[5.2] 23333e3 Remove irrelevant limits that were caused by VSC
PÃ¥l Hermunn Johansen
hermunn at varnish-software.com
Thu Sep 7 06:59:08 UTC 2017
commit 23333e3c60e8803b9b17a70694ba4cc833a93530
Author: Dridi Boukelmoune <dridi.boukelmoune at gmail.com>
Date: Tue Sep 5 19:39:38 2017 +0200
Remove irrelevant limits that were caused by VSC
Closes #2406
Refs #2157
diff --git a/bin/varnishd/storage/mgt_stevedore.c b/bin/varnishd/storage/mgt_stevedore.c
index f6ce78e..4d04728 100644
--- a/bin/varnishd/storage/mgt_stevedore.c
+++ b/bin/varnishd/storage/mgt_stevedore.c
@@ -143,11 +143,11 @@ stv_check_ident(const char *spec, const char *ident)
void
STV_Config(const char *spec)
{
- char **av;
+ char **av, buf[8];
const char *name;
struct stevedore *stv;
const struct stevedore *stv2;
- int ac, l;
+ int ac;
static unsigned seq = 0;
av = MGT_NamedArg(spec, &name, "-s");
@@ -174,16 +174,13 @@ STV_Config(const char *spec)
*stv = *stv2;
AN(stv->name);
- if (name == NULL)
- bprintf(stv->ident, "s%u", seq++);
- else {
- /* XXX: no need for truncation once VSM ident becomes dynamic */
- l = strlen(name);
- if (l > sizeof stv->ident - 1)
- l = sizeof stv->ident - 1;
- bprintf(stv->ident, "%.*s", l, name);
+ if (name == NULL) {
+ bprintf(buf, "s%u", seq++);
+ name = buf;
}
+ stv->ident = strdup(name);
+ AN(stv->ident);
stv_check_ident(spec, stv->ident);
if (stv->init != NULL)
diff --git a/bin/varnishd/storage/storage.h b/bin/varnishd/storage/storage.h
index 8b78326..0a61d8d 100644
--- a/bin/varnishd/storage/storage.h
+++ b/bin/varnishd/storage/storage.h
@@ -119,7 +119,7 @@ struct stevedore {
void *priv;
VTAILQ_ENTRY(stevedore) list;
- char ident[16]; /* XXX: match VSM_chunk.ident */
+ char *ident;
char *vclname;
};
diff --git a/bin/varnishtest/tests/r02406.vtc b/bin/varnishtest/tests/r02406.vtc
new file mode 100644
index 0000000..3f3d018
--- /dev/null
+++ b/bin/varnishtest/tests/r02406.vtc
@@ -0,0 +1,12 @@
+varnishtest "Long backend and storage names"
+
+varnish v1 -arg "-s acme_example_com_static_assets_malloc_storage=malloc"
+
+varnish v1 -vcl {
+ backend be_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789 {
+ .host = "${bad_backend}";
+ }
+} -start
+
+varnish v1 -expect SMA.acme_example_com_static_assets_malloc_storage.c_req == 0
+varnish v1 -expect VBE.vcl1.be_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789_0123456789.req == 0
diff --git a/lib/libvcc/vcc_backend.c b/lib/libvcc/vcc_backend.c
index bc0c096..54458d8 100644
--- a/lib/libvcc/vcc_backend.c
+++ b/lib/libvcc/vcc_backend.c
@@ -469,16 +469,6 @@ vcc_ParseBackend(struct vcc *tl)
vcc_ExpectVid(tl, "backend"); /* ID: name */
ERRCHK(tl);
- /* XXX: lift this limit once VSM ident becomes dynamic */
- if (tl->t->e - tl->t->b > MAX_BACKEND_NAME) {
- VSB_printf(tl->sb,
- "Name of %.*s too long (max %d, is %zu):\n",
- PF(t_first), MAX_BACKEND_NAME,
- (size_t)(tl->t->e - tl->t->b));
- vcc_ErrWhere(tl, tl->t);
- return;
- }
-
t_be = tl->t;
vcc_NextToken(tl);
diff --git a/lib/libvcc/vcc_compile.h b/lib/libvcc/vcc_compile.h
index 547b2bc..79f9a02 100644
--- a/lib/libvcc/vcc_compile.h
+++ b/lib/libvcc/vcc_compile.h
@@ -234,7 +234,6 @@ void vcc_Acl_Hack(struct vcc *tl, char *b, size_t bl);
int vcc_ParseAction(struct vcc *tl);
/* vcc_backend.c */
-#define MAX_BACKEND_NAME 64
struct fld_spec;
void vcc_ParseProbe(struct vcc *tl);
More information about the varnish-commit
mailing list