Closed corvvs closed 2 years ago
webserv
execve
poll
errno
read
write
send
recv
listen
POST
GET
DELETE
host
port
server_name
host:port
/kapouet
content-length
/cgi/ruby/no_content_length.rb
STDIN
CONTENT_LENGTH
CGI::flatten_argv
/cgi/ruby/say_hello.rb
webserv
はconfファイルのパスを1つとってもよい。省略した場合はデフォルトのconfが使われる。execve
で動かしてはならない。poll
またはそれに相当する監視関数を1箇所でのみ使用すること。poll
(相当のもの)で監視すること。poll
(相当のもの)はREADとWRITEオペレーションを同時に監視すること。poll
(相当のもの)を経由すること。errno
の値をチェックしてはいけない。read
,write
,send
,recv
(とlisten
)の後では見てない。poll
(相当のもの)を咬まさなくてよい。POST
リクエストで実行可能GET
,POST
,DELETE
リクエストを処理できること。listen
できること。host
とport
をそれぞれ指定できるようにする。server_name
も任意に指定できるようにする。host:port
対を持つバーチャルサーバ群のうち最初に登場するものが、host:port
対に対する「デフォルトサーバ」となる。host:port
に対してはデフォルトサーバになるが、別のhost:port
についてはそうならないような例を作る。/kapouet
云々)を再現できないと思うんだけど大丈夫?content-length
を返さなかったときに、CGI応答の終了を正しく判定する/cgi/ruby/no_content_length.rb
でテストSTDIN
経由で)送るデータは、リクエストがchunkedの場合chunkedを解除してから送ること。CONTENT_LENGTH
も一応設定してある。CGI::flatten_argv
https://github.com/corvvs/webserv/blob/main/src/originator/CGI.cpp#L217 をみること/cgi/ruby/say_hello.rb
でテスト