Comments
Patch
@@ -49,42 +49,32 @@
$ get-with-headers.py --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
200 Script output follows
content-type: application/mercurial-0.1
- date: * (glob)
- server: * (glob)
transfer-encoding: chunked
Server should send application/mercurial-0.1 when client says it wants it
$ get-with-headers.py --hgproto '0.1' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
200 Script output follows
content-type: application/mercurial-0.1
- date: * (glob)
- server: * (glob)
transfer-encoding: chunked
Server should send application/mercurial-0.2 when client says it wants it
$ get-with-headers.py --hgproto '0.2' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
200 Script output follows
content-type: application/mercurial-0.2
- date: * (glob)
- server: * (glob)
transfer-encoding: chunked
$ get-with-headers.py --hgproto '0.1 0.2' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
200 Script output follows
content-type: application/mercurial-0.2
- date: * (glob)
- server: * (glob)
transfer-encoding: chunked
Requesting a compression format that server doesn't support results will fall back to 0.1
$ get-with-headers.py --hgproto '0.2 comp=aa' --headeronly $LOCALIP:$HGPORT '?cmd=getbundle&heads=e93700bd72895c5addab234c56d4024b487a362f&common=0000000000000000000000000000000000000000' -
200 Script output follows
content-type: application/mercurial-0.1
- date: * (glob)
- server: * (glob)
transfer-encoding: chunked
#if zstd
@@ -105,8 +95,6 @@
200 Script output follows
content-length: 41
content-type: application/mercurial-0.1
- date: * (glob)
- server: * (glob)
e93700bd72895c5addab234c56d4024b487a362f
@@ -1922,8 +1922,6 @@
404 Not Found
content-length: 12
content-type: application/mercurial-0.1
- date: * (glob)
- server: * (glob)
0
Not Found
@@ -126,82 +126,64 @@
200 Script output follows
content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.gz
content-type: application/x-gzip
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=408, sha1=8fa06531bddecc365a9f5edb0f88b65974bfe505
% tar.bz2 and zip disallowed should both give 403
403 Archive type not allowed: bz2
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
403 Archive type not allowed: zip
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
$ test_archtype bz2 tar.bz2 zip tar.gz
% bz2 allowed should give 200
200 Script output follows
content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.bz2
content-type: application/x-bzip2
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=426, sha1=8d87f5aba6e14f1bfea6c232985982c278b2fb0b
% zip and tar.gz disallowed should both give 403
403 Archive type not allowed: zip
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
403 Archive type not allowed: gz
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
$ test_archtype zip zip tar.gz tar.bz2
% zip allowed should give 200
200 Script output follows
content-disposition: attachment; filename=test-archive-1701ef1f1510.zip
content-type: application/zip
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1377, sha1=677b14d3d048778d5eb5552c14a67e6192068650
% tar.gz and tar.bz2 disallowed should both give 403
403 Archive type not allowed: gz
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
403 Archive type not allowed: bz2
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
@@ -213,82 +195,64 @@
200 Script output follows
content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.gz
content-type: application/x-gzip
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=408, sha1=8fa06531bddecc365a9f5edb0f88b65974bfe505
% tar.bz2 and zip disallowed should both give 403
403 Archive type not allowed: bz2
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
403 Archive type not allowed: zip
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
$ test_archtype_deprecated bz2 tar.bz2 zip tar.gz
% bz2 allowed should give 200
200 Script output follows
content-disposition: attachment; filename=test-archive-1701ef1f1510.tar.bz2
content-type: application/x-bzip2
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=426, sha1=8d87f5aba6e14f1bfea6c232985982c278b2fb0b
% zip and tar.gz disallowed should both give 403
403 Archive type not allowed: zip
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=cbfa5574b337348bfd0564cc534474d002e7d6c7
403 Archive type not allowed: gz
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
$ test_archtype_deprecated zip zip tar.gz tar.bz2
% zip allowed should give 200
200 Script output follows
content-disposition: attachment; filename=test-archive-1701ef1f1510.zip
content-type: application/zip
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1377, sha1=677b14d3d048778d5eb5552c14a67e6192068650
% tar.gz and tar.bz2 disallowed should both give 403
403 Archive type not allowed: gz
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1450, sha1=71f0b12d59f85fdcfe8ff493e2dc66863f2f7734
403 Archive type not allowed: bz2
content-type: text/html; charset=ascii
- date: * (glob)
etag: W/"*" (glob)
- server: * (glob)
transfer-encoding: chunked
body: size=1451, sha1=4c5cf0f574446c44feb7f88f4e0e2a56bd92c352
@@ -35,6 +35,8 @@
'value is <header>=<value>')
parser.add_argument('--bodyfile',
help='Write HTTP response body to a file')
+parser.add_argument('--showdynamicheaders', action='store_true',
+ help='Show dynamic headers that are hidden by default')
parser.add_argument('host')
parser.add_argument('path')
parser.add_argument('show', nargs='*')
@@ -69,6 +71,10 @@
if show[:1] == ['-']:
show = sorted(h for h, v in response.getheaders()
if h.lower() not in show)
+
+ if not args.showdynamicheaders:
+ show = [h for h in show if h.lower() not in ('date', 'server')]
+
for h in [h.lower() for h in show]:
if response.getheader(h, None) is not None:
stdout.write(b"%s: %s\n" % (h.encode('ascii'),