@@ -173,10 +173,26 @@
173 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_set_status(304, "Not Modified");
174 174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cgi_reply();
175 175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_close(0);
176 176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_exit(0);
177 177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If the output is determined purely by hash parameter and the hash
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** is long enough to be invariant, then set the g.isConst flag, indicating
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** that the output will never change.
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void etag_check_for_invariant_name(const char *zHash){
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ size_t nHash = strlen(zHash);
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nHash<HNAME_MIN ){
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return; /* Name is too short */
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !validate16(zHash, (int)nHash) ){
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return; /* Name is not pure hex */
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ g.isConst = 1; /* A long hex identifier must be a unique hash */
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
178 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
179 195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
180 196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Accept a new Last-Modified time. This routine should be called by
181 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page generators that know a valid last-modified time. This routine
182 198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** might generate a 304 Not Modified reply and exit(), never returning.
@@ -212,11 +228,11 @@
212 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
213 229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
214 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Return the ETag, if there is one.
215 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
216 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *etag_tag(void){
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return zETag;
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return g.isConst ? "" : zETag;
218 234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
219 235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
220 236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Return the recommended max-age
221 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
222 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int etag_maxage(void){
223 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!