ref: 5a23dcdfd584ada5b9dc344712bb68cdd1b440e6
parent: 8b6d40d262e4e1e445e4b8e22df333a17a9b1e61
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu May 14 10:12:28 EDT 2015
hget: work arround apache Content-Encoding: gzip for Content-Type: application/x-gzip bug apache sends Content-Encoding: gzip header for Content-Type: application/x-gzip causing hget to decompress tgz files. from the w3c: The Content-Encoding entity-header field is used as a modifier to the media-type. When presented, its value indicates what additional content codings have been applied to the entity-body, and thus what decoding mechanisms must be applied in order to obtail the media-type referenced by the Conent-Type header field. Content-Encoding is primarily used to allow a document to be compressed without losing the identity of its underlying media type. this is clearly silly, as the file is already compressed, and decompressing it will not yield the indicated Content-type: application/x-gzip, but a tarball. examples: http://zlib.net/zlib-1.2.8.tar.gz https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-R50f.tgz
--- a/rc/bin/hget
+++ b/rc/bin/hget
@@ -84,11 +84,11 @@
c=`{cat $d/contentencoding >[2]/dev/null} switch($c){case *gzip*
- exec gunzip
+ ~ `{cat $d/contenttype >[2]/dev/null} *gzip* || exec gunzipcase *bzip2*
- exec bunzip2
+ ~ `{cat $d/contenttype >[2]/dev/null} *bzip2* || exec bunzip2case *compress*
- exec uncompress
+ ~ `{cat $d/contenttype >[2]/dev/null} *compress* || exec uncompress}
exec cat
}
--
⑨