我正在调试基于wsgiref.simple服务器的自定义WSGI服务器中的泄漏,我们发现我们没有正确关闭连接,因此套接字处于CLOSE_WAIT状态。我们正在使用一个线程池。
这是处理请求的python库代码:
def handle(self):
"""Handle a single HTTP request"""
self.raw_requestline = self.rfile.readline(65537)
if len(self.raw_requestline) > 65536:
self.requestline = ''
self.request_version = ''
self.command = ''
self.send_error(414)
return
if not self.parse_request(): # An error code has been sent, just exit
return
handler = ServerHandler(
self.rfile, self.wfile, self.get_stderr(), self.get_environ()
)
handler.request_handler = self # backpointer for logging
handler.run(self.server.get_app())
如果self.raw_requestline的长度为0,则覆盖此方法并关闭套接字是否正确? (Determine the state of a TCP socket)