第五十二回スパルタンプログラミング
やったこと
09/19
- 自宅でコーディング
- スレッドどころじゃないので、テスト用のclientを書き始める。
- clientのalpnは下記とすればよい。
char alpn protos[] = {0x02, 0x68, 0x32};// 0x68 0x32 means "h2" SSL_CTX_set_alpn_protos(ctx, (const unsigned char *)alpn_protos, strlen(alpn_protos));
- テスト用にopensslをhttp2 serverとして用意するには下記とすればよい。
> openssl s_server -accept 11111 -key server.key -cert server.crt -alpn h2
09/20
- キタムーと小渡までチャリトレ、ハムストリングの使い方が分かった気がする。
- おいでんでチャリ旅行の計画を立てた。
- 疲れすぎてダウン。
09/21 21:30-24:30
- client作成引き続き
- プログラムの書き方を思い出しました。
- 考えなさすぎはよくないけど考えすぎると書けなくなることが分かった。苦しかった。
09/22 20:30-24:00
- 「覇王の家」読了
- client書いて分かったけど、serverが何も言わずに死んじゃうのはSIGPIPEのせいだった。
- perrorのBroken pipeで気づけた。
サーバーがレスポンスを返す前にクライアントがソケットを閉じてしまうと、write()がSIGPIPEシグナルを生成することがあります。
- 対応するためにSIGPIPEの処理をsigactionで作った。
- 参考:世にも恐ろしいSIGPIPE、ソケットプログラミングの落とし穴
- perrorのBroken pipeで気づけた。
- またh2loadで落ちるー。
09/23
- ノーコード
- ご飯食べたら眠くなったので即寝
09/24 05:45-07:15
- RANDP_LOGの出力がスレッド間で混ざるのを防ぐためにmutexを追加。
- h2loadでこけるのを調査。ねみぃ。
- 夜は飲み会。生三杯とウィスキー。