nktr-cp / webserv

Implementation of a simple HTTP server in C++
3 stars 0 forks source link

webserv::handleClientDataでの問題 #40

Open oda251 opened 2 months ago

oda251 commented 2 months ago
  1. recvを一回しかしていない(必要) kBufferSize分しか読み取れておらず、長いRequestに対応できない

  2. buffer_を使いまわしているので競合しそう(必要かも) webservクラス内のbuffer_変数を全てのリクエストに対して使いまわしているため、同時アクセス等の際に問題が生じそう

oda251 commented 2 months ago

3.NULL終端の明示的な追加(必要かも…?) buffer.clear()してたから大丈夫でした

Wolframike commented 2 months ago

recvをループしようとすると読み切ったタイミングでなぜかEAGAINが発生 ノンブロッキングなfdから読んでるからこうなるらしく、errnoを見れば解決するみたいな記述を見たがread/write操作後のerrno参照は用件で禁止 そもそもbufferのサイズをmax body size + 1にしてパンパンに入ってきたら大きすぎエラーを吐くとかする可能性ある?