diff options
| -rw-r--r-- | cgit.c | 15 | ||||
| -rw-r--r-- | cgit.h | 1 | ||||
| -rw-r--r-- | cgitrc.5.txt | 28 | 
3 files changed, 31 insertions, 13 deletions
| @@ -211,6 +211,8 @@ static void config_cb(const char *name, const char *value)  		ctx.cfg.cache_static_ttl = atoi(value);  	else if (!strcmp(name, "cache-dynamic-ttl"))  		ctx.cfg.cache_dynamic_ttl = atoi(value); +	else if (!strcmp(name, "cache-about-ttl")) +		ctx.cfg.cache_about_ttl = atoi(value);  	else if (!strcmp(name, "case-sensitive-sort"))  		ctx.cfg.case_sensitive_sort = atoi(value);  	else if (!strcmp(name, "about-filter")) @@ -351,12 +353,13 @@ static void prepare_context(struct cgit_context *ctx)  	ctx->cfg.agefile = "info/web/last-modified";  	ctx->cfg.nocache = 0;  	ctx->cfg.cache_size = 0; -	ctx->cfg.cache_dynamic_ttl = 5;  	ctx->cfg.cache_max_create_time = 5; -	ctx->cfg.cache_repo_ttl = 5;  	ctx->cfg.cache_root = CGIT_CACHE_ROOT; +	ctx->cfg.cache_about_ttl = 15; +	ctx->cfg.cache_repo_ttl = 5;  	ctx->cfg.cache_root_ttl = 5;  	ctx->cfg.cache_scanrc_ttl = 15; +	ctx->cfg.cache_dynamic_ttl = 5;  	ctx->cfg.cache_static_ttl = -1;  	ctx->cfg.case_sensitive_sort = 1;  	ctx->cfg.branch_sort = 0; @@ -922,6 +925,9 @@ static int calc_ttl()  	if (!ctx.qry.page)  		return ctx.cfg.cache_repo_ttl; +	if (!strcmp(ctx.qry.page, "about")) +		return ctx.cfg.cache_about_ttl; +  	if (ctx.qry.has_symref)  		return ctx.cfg.cache_dynamic_ttl; @@ -973,7 +979,10 @@ int main(int argc, const char **argv)  	}  	ttl = calc_ttl(); -	ctx.page.expires += ttl * 60; +	if (ttl < 0) +		ctx.page.expires += 10 * 365 * 24 * 60 * 60; /* 10 years */ +	else +		ctx.page.expires += ttl * 60;  	if (ctx.env.request_method && !strcmp(ctx.env.request_method, "HEAD"))  		ctx.cfg.nocache = 1;  	if (ctx.cfg.nocache) @@ -200,6 +200,7 @@ struct cgit_config {  	int cache_root_ttl;  	int cache_scanrc_ttl;  	int cache_static_ttl; +	int cache_about_ttl;  	int case_sensitive_sort;  	int embedded;  	int enable_filter_overrides; diff --git a/cgitrc.5.txt b/cgitrc.5.txt index b4603ef..9d0c089 100644 --- a/cgitrc.5.txt +++ b/cgitrc.5.txt @@ -50,32 +50,40 @@ cache-root::  	Path used to store the cgit cache entries. Default value:  	"/var/cache/cgit". See also: "MACRO EXPANSION". +cache-static-ttl:: +	Number which specifies the time-to-live, in minutes, for the cached +	version of repository pages accessed with a fixed SHA1. Negative +	values have infinite ttl. Default value: -1". +  cache-dynamic-ttl::  	Number which specifies the time-to-live, in minutes, for the cached -	version of repository pages accessed without a fixed SHA1. Default -	value: "5". +	version of repository pages accessed without a fixed SHA1. Negative +	values have infinite ttl. Default value: "5".  cache-repo-ttl::  	Number which specifies the time-to-live, in minutes, for the cached -	version of the repository summary page. Default value: "5". +	version of the repository summary page. Negative values have infinite +	ttl. Default value: "5".  cache-root-ttl::  	Number which specifies the time-to-live, in minutes, for the cached -	version of the repository index page. Default value: "5". +	version of the repository index page. Negative values have infinite +	ttl. Default value: "5".  cache-scanrc-ttl::  	Number which specifies the time-to-live, in minutes, for the result -	of scanning a path for git repositories. Default value: "15". +	of scanning a path for git repositories. Negative values have infinite +	ttl. Default value: "15". + +cache-about-ttl:: +	Number which specifies the time-to-live, in minutes, for the cached +	version of the repository about page. Negative values have infinite +	ttl. Default value: "15".  cache-size::  	The maximum number of entries in the cgit cache. Default value: "0"  	(i.e. caching is disabled). -cache-static-ttl:: -	Number which specifies the time-to-live, in minutes, for the cached -	version of repository pages accessed with a fixed SHA1. Default value: -	"5". -  case-sensitive-sort::  	Sort items in the repo list case sensitively. Default value: "1".  	See also: repository-sort, section-sort. | 
