r2988 - trunk/varnish-cache/bin/varnishd

petter at projects.linpro.no petter at projects.linpro.no
Tue Jul 22 11:42:07 CEST 2008


Author: petter
Date: 2008-07-22 11:42:06 +0200 (Tue, 22 Jul 2008)
New Revision: 2988

Modified:
   trunk/varnish-cache/bin/varnishd/storage_file.c
   trunk/varnish-cache/bin/varnishd/varnishd.c
Log:
Added granularity as a subargument to the options for file storage:
-s file,<dir_or_file>,<size>,<granularity>
Fixes #244



Modified: trunk/varnish-cache/bin/varnishd/storage_file.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/storage_file.c	2008-07-22 09:02:17 UTC (rev 2987)
+++ trunk/varnish-cache/bin/varnishd/storage_file.c	2008-07-22 09:42:06 UTC (rev 2988)
@@ -244,19 +244,27 @@
 	struct stat st;
 	struct smf_sc *sc;
 	unsigned u;
+	uintmax_t page_size;
 
 	AZ(av[ac]);
 
 	fn = default_filename;
 	size = default_size;
+	page_size = getpagesize();
 
-	if (ac > 2)
+	if (ac > 3)
 		ARGV_ERR("(-sfile) too many arguments\n");
 	if (ac > 0 && *av[0] != '\0')
 		fn = av[0];
 	if (ac > 1 && *av[1] != '\0')
 		size = av[1];
+	if (ac > 2 && *av[2] != '\0') {
 
+		q = str2bytes(av[2], &page_size, 0);
+		if (q != NULL)
+			ARGV_ERR("(-sfile) granularity \"%s\": %s\n", av[2], q);
+	}
+
 	AN(fn);
 	AN(size);
 
@@ -266,7 +274,7 @@
 	for (u = 0; u < NBUCKET; u++)
 		VTAILQ_INIT(&sc->free[u]);
 	VTAILQ_INIT(&sc->used);
-	sc->pagesize = getpagesize();
+	sc->pagesize = page_size;
 
 	parent->priv = sc;
 

Modified: trunk/varnish-cache/bin/varnishd/varnishd.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/varnishd.c	2008-07-22 09:02:17 UTC (rev 2987)
+++ trunk/varnish-cache/bin/varnishd/varnishd.c	2008-07-22 09:42:06 UTC (rev 2988)
@@ -204,6 +204,7 @@
 	fprintf(stderr, FMT, "", "  -s file  [default: use /tmp]");
 	fprintf(stderr, FMT, "", "  -s file,<dir_or_file>");
 	fprintf(stderr, FMT, "", "  -s file,<dir_or_file>,<size>");
+	fprintf(stderr, FMT, "", "  -s file,<dir_or_file>,<size>,<granularity>");
 	fprintf(stderr, FMT, "-t", "Default TTL");
 	fprintf(stderr, FMT, "-T address:port",
 	    "Telnet listen address and port");




More information about the varnish-commit mailing list