Fossil SCM

ETAG caching of artifact downloads.

drh 2020-07-20 00:16 trunk
Commit 70bf9a6bf75880510ec7da706751ba6c4c33adfc27daadfa2e71ec1bdd461079
1 file changed +3
+3
--- src/info.c
+++ src/info.c
@@ -1783,10 +1783,11 @@
17831783
}
17841784
login_check_credentials();
17851785
if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
17861786
if( rid==0 ) fossil_redirect_home();
17871787
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
1788
+ etag_check(ETAG_HASH, zUuid);
17881789
if( fossil_strcmp(P("name"), zUuid)==0 && login_is_nobody() ){
17891790
g.isConst = 1;
17901791
}
17911792
free(zUuid);
17921793
deliver_artifact(rid, P("m"));
@@ -1939,10 +1940,11 @@
19391940
style_submenu_element("Shun", "%s/shun?shun=%s#addshun", g.zTop, zUuid);
19401941
}
19411942
}
19421943
style_header("Hex Artifact Content");
19431944
zUuid = db_text("?","SELECT uuid FROM blob WHERE rid=%d", rid);
1945
+ etag_check(ETAG_HASH, zUuid);
19441946
@ <h2>Artifact
19451947
style_copy_button(1, "hash-ar", 0, 2, "%s", zUuid);
19461948
if( g.perm.Setup ){
19471949
@ (%d(rid)):</h2>
19481950
}else{
@@ -2235,10 +2237,11 @@
22352237
if( descOnly || P("verbose")!=0 ){
22362238
url_add_parameter(&url, "verbose", "1");
22372239
objdescFlags |= OBJDESC_DETAIL;
22382240
}
22392241
zUuid = db_text("?", "SELECT uuid FROM blob WHERE rid=%d", rid);
2242
+ etag_check(ETAG_HASH, zUuid);
22402243
22412244
asText = P("txt")!=0;
22422245
if( isFile ){
22432246
if( zCI==0 || fossil_strcmp(zCI,"tip")==0 ){
22442247
zCI = "tip";
22452248
--- src/info.c
+++ src/info.c
@@ -1783,10 +1783,11 @@
1783 }
1784 login_check_credentials();
1785 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
1786 if( rid==0 ) fossil_redirect_home();
1787 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
 
1788 if( fossil_strcmp(P("name"), zUuid)==0 && login_is_nobody() ){
1789 g.isConst = 1;
1790 }
1791 free(zUuid);
1792 deliver_artifact(rid, P("m"));
@@ -1939,10 +1940,11 @@
1939 style_submenu_element("Shun", "%s/shun?shun=%s#addshun", g.zTop, zUuid);
1940 }
1941 }
1942 style_header("Hex Artifact Content");
1943 zUuid = db_text("?","SELECT uuid FROM blob WHERE rid=%d", rid);
 
1944 @ <h2>Artifact
1945 style_copy_button(1, "hash-ar", 0, 2, "%s", zUuid);
1946 if( g.perm.Setup ){
1947 @ (%d(rid)):</h2>
1948 }else{
@@ -2235,10 +2237,11 @@
2235 if( descOnly || P("verbose")!=0 ){
2236 url_add_parameter(&url, "verbose", "1");
2237 objdescFlags |= OBJDESC_DETAIL;
2238 }
2239 zUuid = db_text("?", "SELECT uuid FROM blob WHERE rid=%d", rid);
 
2240
2241 asText = P("txt")!=0;
2242 if( isFile ){
2243 if( zCI==0 || fossil_strcmp(zCI,"tip")==0 ){
2244 zCI = "tip";
2245
--- src/info.c
+++ src/info.c
@@ -1783,10 +1783,11 @@
1783 }
1784 login_check_credentials();
1785 if( !g.perm.Read ){ login_needed(g.anon.Read); return; }
1786 if( rid==0 ) fossil_redirect_home();
1787 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
1788 etag_check(ETAG_HASH, zUuid);
1789 if( fossil_strcmp(P("name"), zUuid)==0 && login_is_nobody() ){
1790 g.isConst = 1;
1791 }
1792 free(zUuid);
1793 deliver_artifact(rid, P("m"));
@@ -1939,10 +1940,11 @@
1940 style_submenu_element("Shun", "%s/shun?shun=%s#addshun", g.zTop, zUuid);
1941 }
1942 }
1943 style_header("Hex Artifact Content");
1944 zUuid = db_text("?","SELECT uuid FROM blob WHERE rid=%d", rid);
1945 etag_check(ETAG_HASH, zUuid);
1946 @ <h2>Artifact
1947 style_copy_button(1, "hash-ar", 0, 2, "%s", zUuid);
1948 if( g.perm.Setup ){
1949 @ (%d(rid)):</h2>
1950 }else{
@@ -2235,10 +2237,11 @@
2237 if( descOnly || P("verbose")!=0 ){
2238 url_add_parameter(&url, "verbose", "1");
2239 objdescFlags |= OBJDESC_DETAIL;
2240 }
2241 zUuid = db_text("?", "SELECT uuid FROM blob WHERE rid=%d", rid);
2242 etag_check(ETAG_HASH, zUuid);
2243
2244 asText = P("txt")!=0;
2245 if( isFile ){
2246 if( zCI==0 || fossil_strcmp(zCI,"tip")==0 ){
2247 zCI = "tip";
2248

Keyboard Shortcuts

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