Changes On Branch wrong-branch
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch wrong-branch Excluding Merge-Ins

This is equivalent to a diff from 714ce73d38 to 005bba0650

2021-07-11
21:55
Add default report checkbox and compare report titles instead Closed-Leaf check-in: eaa7f6bb5c user: kevgrig tags: ticket-search-empty-report-number
19:30
Enhance the Cache-control: header for tarballs and archives so that if the object is uniquely identified by a hash the download has a 10-year timeout and an "immutable" tag. check-in: 44339d5378 user: drh tags: trunk
19:16
Checked into the wrong branch... Closed-Leaf check-in: 005bba0650 user: drh tags: wrong-branch
2021-07-10
05:47
Add ticket-search-empty-report-number setting to optionally show a report if the ticket search page query is blank check-in: 714ce73d38 user: kevgrig tags: ticket-search-empty-report-number
2021-07-09
16:15
Auto-sync prior to running "fossil open". Add the --nosync flags to "fossil open" and "fossil up" to disable the auto-sync. check-in: dc97155ec7 user: drh tags: trunk

Changes to src/cgi.c.

311
312
313
314
315
316
317
318

319
320
321
322
323
324
325
311
312
313
314
315
316
317

318
319
320
321
322
323
324
325







-
+







    if( etag_mtime()>0 ){
      fprintf(g.httpOut, "Last-Modified: %s\r\n",
              cgi_rfc822_datestamp(etag_mtime()));
    }
  }else if( g.isConst ){
    /* isConst means that the reply is guaranteed to be invariant, even
    ** after configuration changes and/or Fossil binary recompiles. */
    fprintf(g.httpOut, "Cache-Control: max-age=31536000\r\n");
    fprintf(g.httpOut, "Cache-Control: max-age=315360000, immutable\r\n");
  }else{
    fprintf(g.httpOut, "Cache-control: no-cache\r\n");
  }

  if( blob_size(&extraHeader)>0 ){
    fprintf(g.httpOut, "%s", blob_buffer(&extraHeader));
  }

Changes to src/etag.c.

171
172
173
174
175
176
177
















178
179
180
181
182
183
184
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200







+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







  ** not changed and we can do a 304 reply */
  cgi_reset_content();
  cgi_set_status(304, "Not Modified");
  cgi_reply();
  db_close(0);
  fossil_exit(0);
}

/*
** If the output is determined purely by hash parameter and the hash
** is long enough to be invariant, then set the g.isConst flag, indicating
** that the output will never change.
*/
void etag_check_for_invariant_name(const char *zHash){
  size_t nHash = strlen(zHash);
  if( nHash<HNAME_MIN ){
    return;  /* Name is too short */
  }
  if( !validate16(zHash, (int)nHash) ){
    return;  /* Name is not pure hex */
  }
  g.isConst = 1;  /* A long hex identifier must be a unique hash */
}

/*
** Accept a new Last-Modified time.  This routine should be called by
** page generators that know a valid last-modified time.  This routine
** might generate a 304 Not Modified reply and exit(), never returning.
** Or, if not, it will cause a Last-Modified: header to be included in the
** reply.
210
211
212
213
214
215
216
217

218
219
220
221
222
223
224
226
227
228
229
230
231
232

233
234
235
236
237
238
239
240







-
+







  db_close(0);
  fossil_exit(0);
}

/* Return the ETag, if there is one.
*/
const char *etag_tag(void){
  return zETag;
  return g.isConst ? "" : zETag;
}

/* Return the recommended max-age
*/
int etag_maxage(void){
  return iMaxAge;
}

Changes to src/tar.c.

772
773
774
775
776
777
778



779
780
781
782
783
784
785
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788







+
+
+







  if( z==0 ) z = "trunk";
  g.zOpenRevision = zRid = fossil_strdup(z);
  nRid = strlen(zRid);
  zInclude = P("in");
  if( zInclude ) pInclude = glob_create(zInclude);
  zExclude = P("ex");
  if( zExclude ) pExclude = glob_create(zExclude);
  if( zInclude==0 && zExclude==0 ){
    etag_check_for_invariant_name(z);
  }
  nName = strlen(zName);
  if( nName>7 && fossil_strcmp(&zName[nName-7], ".tar.gz")==0 ){
    /* Special case:  Remove the ".tar.gz" suffix.  */
    nName -= 7;
    zName[nName] = 0;
  }else{
    /* If the file suffix is not ".tar.gz" then just remove the

Changes to src/zip.c.

938
939
940
941
942
943
944



945
946
947
948
949
950
951
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954







+
+
+







  nName = strlen(zName);
  g.zOpenRevision = zRid = fossil_strdup(z);
  nRid = strlen(zRid);
  zInclude = P("in");
  if( zInclude ) pInclude = glob_create(zInclude);
  zExclude = P("ex");
  if( zExclude ) pExclude = glob_create(zExclude);
  if( zInclude==0 && zExclude==0 ){
    etag_check_for_invariant_name(z);
  }
  if( eType==ARCHIVE_ZIP 
   && nName>4
   && fossil_strcmp(&zName[nName-4], ".zip")==0
  ){
    /* Special case:  Remove the ".zip" suffix.  */
    nName -= 4;
    zName[nName] = 0;