Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | For Download links, only include the tail-name of the file in the Content-Disposition header. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
0feb4128695ad71bae0b52b4478b7908 |
User & Date: | drh 2020-05-22 12:26:37.150 |
Context
2020-05-22
| ||
16:19 | Clean shutdown in the "fossil sql" command. ... (check-in: fbb15cc4 user: drh tags: trunk) | |
12:26 | For Download links, only include the tail-name of the file in the Content-Disposition header. ... (check-in: 0feb4128 user: drh tags: trunk) | |
00:27 | Add CSS rules to limit the width of input and textarea items to 95% of the available screen width. ... (check-in: dbcfcef7 user: drh tags: trunk) | |
Changes
Changes to src/cgi.c.
︙ | ︙ | |||
436 437 438 439 440 441 442 | va_end(ap); } /* ** Add a "Content-disposition: attachment; filename=%s" header to the reply. */ void cgi_content_disposition_filename(const char *zFilename){ | > > > | | | < | | 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 | va_end(ap); } /* ** Add a "Content-disposition: attachment; filename=%s" header to the reply. */ void cgi_content_disposition_filename(const char *zFilename){ char *z; int i, n; /* 0123456789 123456789 123456789 123456789 123456*/ z = mprintf("Content-Disposition: attachment; filename=\"%s\";\r\n", file_tail(zFilename)); n = (int)strlen(z); for(i=43; i<n-4; i++){ char c = z[i]; if( fossil_isalnum(c) ) continue; if( c=='.' || c=='-' || c=='/' ) continue; z[i] = '_'; } cgi_append_header(z); |
︙ | ︙ |
Changes to src/info.c.
︙ | ︙ | |||
1944 1945 1946 1947 1948 1949 1950 | }else{ @ :</h2> } blob_zero(&downloadName); if( P("verbose")!=0 ) objdescFlags |= OBJDESC_DETAIL; object_description(rid, objdescFlags, 0, &downloadName); style_submenu_element("Download", "%R/raw/%s?at=%T", | | | 1944 1945 1946 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 | }else{ @ :</h2> } blob_zero(&downloadName); if( P("verbose")!=0 ) objdescFlags |= OBJDESC_DETAIL; object_description(rid, objdescFlags, 0, &downloadName); style_submenu_element("Download", "%R/raw/%s?at=%T", zUuid, file_tail(blob_str(&downloadName))); @ <hr /> content_get(rid, &content); @ <blockquote><pre> hexdump(&content); @ </pre></blockquote> style_footer(); } |
︙ | ︙ | |||
2275 2276 2277 2278 2279 2280 2281 | if( asText ) objdescFlags &= ~OBJDESC_BASE; objType = object_description(rid, objdescFlags, (isFile?zName:0), &downloadName); } if( !descOnly && P("download")!=0 ){ cgi_redirectf("%R/raw/%s?at=%T", db_text("x", "SELECT uuid FROM blob WHERE rid=%d", rid), | | | 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 | if( asText ) objdescFlags &= ~OBJDESC_BASE; objType = object_description(rid, objdescFlags, (isFile?zName:0), &downloadName); } if( !descOnly && P("download")!=0 ){ cgi_redirectf("%R/raw/%s?at=%T", db_text("x", "SELECT uuid FROM blob WHERE rid=%d", rid), file_tail(blob_str(&downloadName))); /*NOTREACHED*/ } if( g.perm.Admin ){ const char *zUuid = db_text("", "SELECT uuid FROM blob WHERE rid=%d", rid); if( db_exists("SELECT 1 FROM shun WHERE uuid=%Q", zUuid) ){ style_submenu_element("Unshun", "%s/shun?accept=%s&sub=1#accshun", g.zTop, zUuid); |
︙ | ︙ | |||
2320 2321 2322 2323 2324 2325 2326 | const char *zUser = db_column_text(&q,0); const char *zDate = db_column_text(&q,1); const char *zIp = db_column_text(&q,2); @ <p>Received on %s(zDate) from %h(zUser) at %h(zIp).</p> } db_finalize(&q); } | | | 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 | const char *zUser = db_column_text(&q,0); const char *zDate = db_column_text(&q,1); const char *zIp = db_column_text(&q,2); @ <p>Received on %s(zDate) from %h(zUser) at %h(zIp).</p> } db_finalize(&q); } style_submenu_element("Download", "%R/raw/%s?at=%T", zUuid, file_tail(zName)); if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){ style_submenu_element("Check-ins Using", "%R/timeline?n=200&uf=%s", zUuid); } zMime = mimetype_from_name(blob_str(&downloadName)); if( zMime ){ if( fossil_strcmp(zMime, "text/html")==0 ){ if( asText ){ |
︙ | ︙ |