JUNNETWORKS / 42-webserv

Webserv is one of the projects in 42 cursus.
5 stars 0 forks source link

Location client_max_body_size の最大値をINT_MAXまでにする。 #201

Closed JUNNETWORKS closed 2 years ago

JUNNETWORKS commented 2 years ago

ファイルのアップロード処理などの都合でINT_MAXまでに制限したほうが都合が良いので。

コンフィグパーサー側で INT_MAX を超えたら弾くようにする。

location.GetClientMaxBodySize() は他の処理の都合上 unsigned long を返す仕様は変更しない。

JUNNETWORKS commented 2 years ago

client_max_body_size ディレクティブのユニットテストを追加する

JUNNETWORKS commented 2 years ago

参考 (このテストはこのIssueが実装されたときにはパスしちゃいけない)

TEST(ParserTest, ClientMaxBodyIsUnsignedLongMax) {
  Parser parser;
  parser.LoadData(
      "server {                                      "
      "  listen 8080;                                "
      "  server_name localhost;                      "
      "                                              "
      "  location / {                                "
      "    root /var/www/html;                       "
      "    index index.html;                         "
      "    client_max_body_size 18446744073709551615;"
      "  }                                           "
      "}                                             ");
  Config config = parser.ParseConfig();
  const VirtualServerConf *vserver = config.GetVirtualServerConf("8080", "");
  const LocationConf *location = vserver->GetLocation("/");
  EXPECT_EQ(location->GetClientMaxBodySize(), ULONG_MAX);
}