YungTatyu / webserv

HTTP/1.1 server written in cpp.
1 stars 0 forks source link

Issue267 handle no host header #270

Closed ayase-mstk closed 3 months ago

ayase-mstk commented 3 months ago

ホストヘッダーがない時にgenerateResponse()の始めに空のホストヘッダーをつけることにしました。

ayase-mstk commented 3 months ago

対応ありがとうございます。 追加で一点似たような処理で気になりました。

・EventHandler,cpp そもそも、parse errorのような場合、configの値は見られずにエラーがresponseとして生成されるのかと思ったのですが、以下のような処理って正しいのでしょうか?

  // Hostヘッダーがあるか確認
  // 400エラーがerror_pageで拾われて内部リダイレクトする可能性があるので以下の処理は必要。
  // このように探すdirectiveがほんとにこのクライアントが最後にアクセスしたコンテキストかは怪しい。
  it = conn_manager.getRequest(sock).headers_.find("Host");
  std::string host_name;
  if (it == conn_manager.getRequest(sock).headers_.end())
    host_name = "";
  else
    host_name = it->second;

本来configの値を見る必要はなくなりますが、ここでは他の場合と共通の処理に通したいのでこのように見ています。 共通の処理というのは下でやっている、searchKeepaliveTimeout()などでtimeout値を取得するということです。

YungTatyu commented 3 months ago

parseエラーがおきるようなテストパターンを、結合テストにも追加して欲しいです。

ayase-mstk commented 3 months ago

parseエラーがおきるようなテストパターンを、結合テストにも追加して欲しいです。

かしこまりました!