tree a8f36b27126f1fb83438b44e4a4e258640ca55bf
parent 073349423408e4bae08c90f8d16fee5317e45263
author Nick Vatamaniuc <vatamane@gmail.com> 1693498481 -0400
committer Nick Vatamaniuc <vatamane@gmail.com> 1693501254 -0400
gpgsig -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEC9ephJnEq0HJEO5l/ATfvJZXp44FAmTwx0YACgkQ/ATfvJZX
 p45tKg//TepafZ0xkvgRlGwnYhXglaxAO+6GOtEwZSZzjCcxBjTsPuUw/jw5rSxc
 ZzcLhqvz0gX8yv3CiBvHyCdo6pNrhrvgdB5tUUShiPmEwnHdoJ35h+rtNBxtWW7/
 RAFspX0s5w440aVL88h+Zpp8C066A2MIJysjbd04QxmIDU+/KZxI56sUlOt3/wAe
 HDGcqgw9D1NrgaTeW4Ngg8wMnlNQyPsua+ryYwdrBJkABVIr3CroFu+OBSx5D6SZ
 VFKlGErvNuTmgIqnPvHK/L3PztZAHH2o/eikVuBf+reFa4jmxQc4DYoNswxgq/r1
 R5iJpH3wxTHPfyOtfLm+PaaimHZOdW+0Zos1Uc6xYk99sZMUZpO0xN8GZxTKjoyu
 Kz/1pEsJ4B/wTJQlJHuqtXs5aLMAj/wzyjwv9L+hSSGVTJ355B6+urO8raPDkqsJ
 2nB1PaKduEtAw7MVaqpW4G3VbOfKaEruSkS2R/8yVbT/bfvnlAUrS1yxmr6k11S+
 JMNEigmuI2Jr/lou9MbWkTLsSqVF1E03lob6wOZxsPG9ihsNjtK4lqdKY7iVUzaZ
 lCDsldWj9thp6v/MVClgCS8zaaxehHIaLcpkZ5hpDoy0z/shFJ6iQatNN2jkDMwi
 B8XVJzVxtjAfA2isVEG0m5ktiVYXwlXgd3vI42sfVVhFY+VqZWo=
 =95K+
 -----END PGP SIGNATURE-----

Add mochiweb_request:is_closed/1 function

This function can used during long running request callbacks to detect if the
client connection is closed.

If the request callback periodically streams data back to the client, the act
of writting to the client socket will detect if it is closed or not. However,
in cases when no data is sent back, and the client times-out and closes the
connection, it may be useful to be able to find out early and stop processing
the request on the server.

It turns out there is no easy way to detect if a passive mode socket is closed
in Erlang/OTP [1]. Neither one of inet:monitor/1, inet:info/1, inet:getstat/1
work. However, it is possible to do it by querying the TCP state info of the
socket. That option available in Linux since kernel 2.4 and on other Unix-like
OSes (NetBSD, OpenBSD, FreeBSD and MacOS). Windows also has a tcp info query
method however it is not reacheable via the gensockopts(2) standard socket API,
so it can't be queried from Erlang's inet:getopts/2 API.

[1] Using the newer socket module it's possible to detect if a socket is closed
by attempting a recv with a MSG_PEEK option. However, the regular gen_tcp OTP
module doesn't have a recv() variant which takes extra options. In addition,
the new socket implementation still feels rather experimental. (It's not the
default even in the latest OTP 26 release).
