NaoyaFukuma / webserv

This is when you finally understand why a URL starts with HTTP
3 stars 0 forks source link

echoサーバーのテスト #17

Closed tomofuji-dev closed 1 year ago

tomofuji-dev commented 1 year ago

Overview

EPOLLHUP, EPOLLRDHUPなどの挙動を確かめる

Purpose

Task

tomofuji-dev commented 1 year ago

shutdownの時の挙動がおかしい

解決したので書き残しておく

状況: ・EPOLLINの処理中にclientがshutdownした場合、recvは0を返す ・修正前の実装では、recvが0となった場合socketを閉じており、そのためclientのrecvが空文字列となっていた ・recv = 0 -> 相手がclose or shutdownのどちらの可能性もあるため、rdhup_を立てた上でepolloutでsocketを閉じる処理を行う

tomofuji-dev commented 1 year ago

testに時間がかかる理由 ・test1 ~ 5はread_socket->closeの流れ(shutdownを行わない) ・server側はmessageを処理してepoll イベントを待ち続けるものの、clientがread_socketでblockingしているのでtime_outでcloseを送る ・client側はserverのclose()を持ってread_socketのループを終了し、closeする

tomofuji-dev commented 1 year ago

23 に統合