Fossil SCM
ETAG caching of artifact downloads.
Commit
70bf9a6bf75880510ec7da706751ba6c4c33adfc27daadfa2e71ec1bdd461079
Parent
a6332ebfe98c5f6…
1 file changed
+3
+3
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -1783,10 +1783,11 @@ | ||
| 1783 | 1783 | } |
| 1784 | 1784 | login_check_credentials(); |
| 1785 | 1785 | if( !g.perm.Read ){ login_needed(g.anon.Read); return; } |
| 1786 | 1786 | if( rid==0 ) fossil_redirect_home(); |
| 1787 | 1787 | zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 1788 | + etag_check(ETAG_HASH, zUuid); | |
| 1788 | 1789 | if( fossil_strcmp(P("name"), zUuid)==0 && login_is_nobody() ){ |
| 1789 | 1790 | g.isConst = 1; |
| 1790 | 1791 | } |
| 1791 | 1792 | free(zUuid); |
| 1792 | 1793 | deliver_artifact(rid, P("m")); |
| @@ -1939,10 +1940,11 @@ | ||
| 1939 | 1940 | style_submenu_element("Shun", "%s/shun?shun=%s#addshun", g.zTop, zUuid); |
| 1940 | 1941 | } |
| 1941 | 1942 | } |
| 1942 | 1943 | style_header("Hex Artifact Content"); |
| 1943 | 1944 | zUuid = db_text("?","SELECT uuid FROM blob WHERE rid=%d", rid); |
| 1945 | + etag_check(ETAG_HASH, zUuid); | |
| 1944 | 1946 | @ <h2>Artifact |
| 1945 | 1947 | style_copy_button(1, "hash-ar", 0, 2, "%s", zUuid); |
| 1946 | 1948 | if( g.perm.Setup ){ |
| 1947 | 1949 | @ (%d(rid)):</h2> |
| 1948 | 1950 | }else{ |
| @@ -2235,10 +2237,11 @@ | ||
| 2235 | 2237 | if( descOnly || P("verbose")!=0 ){ |
| 2236 | 2238 | url_add_parameter(&url, "verbose", "1"); |
| 2237 | 2239 | objdescFlags |= OBJDESC_DETAIL; |
| 2238 | 2240 | } |
| 2239 | 2241 | zUuid = db_text("?", "SELECT uuid FROM blob WHERE rid=%d", rid); |
| 2242 | + etag_check(ETAG_HASH, zUuid); | |
| 2240 | 2243 | |
| 2241 | 2244 | asText = P("txt")!=0; |
| 2242 | 2245 | if( isFile ){ |
| 2243 | 2246 | if( zCI==0 || fossil_strcmp(zCI,"tip")==0 ){ |
| 2244 | 2247 | zCI = "tip"; |
| 2245 | 2248 |
| --- 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 |