Fossil SCM

Add the ability for an admin to create a web-cache from the web interface.

drh 2025-04-09 11:23 trunk
Commit 7de57f400e2f64307961872338568af9f83bc0b7116cabeafa98e6933c1df106
1 file changed +8 -2
+8 -2
--- src/cache.c
+++ src/cache.c
@@ -399,21 +399,27 @@
399399
** WEBPAGE: cachestat
400400
**
401401
** Show information about the webpage cache. Requires Setup privilege.
402402
*/
403403
void cache_page(void){
404
- sqlite3 *db;
404
+ sqlite3 *db = 0;
405405
sqlite3_stmt *pStmt;
406
+ int doInit;
406407
char zBuf[100];
407408
408409
login_check_credentials();
409410
if( !g.perm.Setup ){ login_needed(0); return; }
410411
style_set_current_feature("cache");
411412
style_header("Web Cache Status");
412
- db = cacheOpen(0);
413
+ doInit = P("init")!=0 && cgi_csrf_safe(2);
414
+ db = cacheOpen(doInit);
413415
if( db==0 ){
416
+ @ <form method="post">
417
+ login_insert_csrf_secret();
414418
@ The web-page cache is disabled for this repository
419
+ @ <input type="submit" name="init" value="Enable">
420
+ @ </form>
415421
}else{
416422
char *zDbName = cacheName();
417423
cache_register_sizename(db);
418424
pStmt = cacheStmt(db,
419425
"SELECT key, sz, nRef, datetime(tm,'unixepoch')"
420426
--- src/cache.c
+++ src/cache.c
@@ -399,21 +399,27 @@
399 ** WEBPAGE: cachestat
400 **
401 ** Show information about the webpage cache. Requires Setup privilege.
402 */
403 void cache_page(void){
404 sqlite3 *db;
405 sqlite3_stmt *pStmt;
 
406 char zBuf[100];
407
408 login_check_credentials();
409 if( !g.perm.Setup ){ login_needed(0); return; }
410 style_set_current_feature("cache");
411 style_header("Web Cache Status");
412 db = cacheOpen(0);
 
413 if( db==0 ){
 
 
414 @ The web-page cache is disabled for this repository
 
 
415 }else{
416 char *zDbName = cacheName();
417 cache_register_sizename(db);
418 pStmt = cacheStmt(db,
419 "SELECT key, sz, nRef, datetime(tm,'unixepoch')"
420
--- src/cache.c
+++ src/cache.c
@@ -399,21 +399,27 @@
399 ** WEBPAGE: cachestat
400 **
401 ** Show information about the webpage cache. Requires Setup privilege.
402 */
403 void cache_page(void){
404 sqlite3 *db = 0;
405 sqlite3_stmt *pStmt;
406 int doInit;
407 char zBuf[100];
408
409 login_check_credentials();
410 if( !g.perm.Setup ){ login_needed(0); return; }
411 style_set_current_feature("cache");
412 style_header("Web Cache Status");
413 doInit = P("init")!=0 && cgi_csrf_safe(2);
414 db = cacheOpen(doInit);
415 if( db==0 ){
416 @ <form method="post">
417 login_insert_csrf_secret();
418 @ The web-page cache is disabled for this repository
419 @ <input type="submit" name="init" value="Enable">
420 @ </form>
421 }else{
422 char *zDbName = cacheName();
423 cache_register_sizename(db);
424 pStmt = cacheStmt(db,
425 "SELECT key, sz, nRef, datetime(tm,'unixepoch')"
426

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button