Content-Encoding 処理が input_stream と密結合だった。
わりと深く結合していて迂闊に変えると動かなくなる。
Content-Encoding
最低限 gz の動作を確保したい。
// Content-Encoding: gzip
enum CompressionType {
CMP_NOCOMPRESS = 0,
CMP_COMPRESS = 1,
CMP_GZIP = 2, // 👈 gz
CMP_BZIP2 = 3,
CMP_DEFLATE = 4,
CMP_BROTLI = 5,
};
子プロセスで gzip -d
している。
ライブラリで組込むとすると zlib でできるようだ。
Windows に対応に備えて組み込んでみようかしら。
https://stackoverflow.com/questions/1838699/how-can-i-decompress-a-gzip-stream-with-zlib
open_pipe_rw デバッグむずい。
fork したプロセスが終了するときに、 シングルトンの destructor が誤爆する事故が発生。 アプリの終了処理で一時ファイルが削除されていた。 むずい。