squidのecap
スマホのパケット消費を抑えたいと思ってecapのサンプルコード「adapter_modifying.cc」を改造して、画像を強制的にwebp変換、テキスト系をgzipするようなのを作ってみた。
最初なにやっても動作しなくてさんざんハマったのですがなんとか動くようになりました。githubとかにecapモジュールあればなあと思いましたが未だに無いですね。gzipならあるのですが...画像加工するようなのはありませんので自作してみた次第です。
中身は酷いので公開はしませんが、ヒントはここに書いておきます。
キモはvoid Adapter::Xaction::noteVbContentDone(bool atEnd) の中でbody buffer 変数をなんとか加工することです。
画像加工するならMagick++であれやこれやするとか
圧縮するなら...zlibとか使って...。とかですね。
後は自動的に処理してくれるはずです。
今度はgzipじゃなくてbrotliとかに対応させたいですね。
追記:
CentOS7のGCC4.8系でmakeすると何故かうまく動作しませんね。なんでだろう。