pkt-line: add PACKET_READ_GENTLE_ON_READ_ERROR option
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 15 Mar 2021 21:08:20 +0000 (21:08 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 15 Mar 2021 21:32:50 +0000 (14:32 -0700)
commitc4ba57939745641a3c7622096fddfc77cecf0d39
tree7e19c7a354c381a3fc97efde20a82e50d1615699
parent3a63c6a48c0588a237b3133fe785d6e734dedbb5
pkt-line: add PACKET_READ_GENTLE_ON_READ_ERROR option

Introduce PACKET_READ_GENTLE_ON_READ_ERROR option to help libify the
packet readers.

So far, the (possibly indirect) callers of `get_packet_data()` can ask
that function to return an error instead of `die()`ing upon end-of-file.
However, random read errors will still cause the process to die.

So let's introduce an explicit option to tell the packet reader
machinery to please be nice and only return an error on read errors.

This change prepares pkt-line for use by long-running daemon processes.
Such processes should be able to serve multiple concurrent clients and
and survive random IO errors.  If there is an error on one connection,
a daemon should be able to drop that connection and continue serving
existing and future connections.

This ability will be used by a Git-aware "Builtin FSMonitor" feature
in a later patch series.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
pkt-line.c
pkt-line.h