summaryrefslogtreecommitdiffstats
path: root/usr.bin/diff/diffreg.c
diff options
context:
space:
mode:
authordlg <dlg@openbsd.org>2010-07-14 00:42:57 +0000
committerdlg <dlg@openbsd.org>2010-07-14 00:42:57 +0000
commit692f0c3bd1f1307d7fcf2e437d044f27864c38c0 (patch)
tree764a460873826fa42bb2561c9346ac7378399347 /usr.bin/diff/diffreg.c
parentoops; Fred Crowson (diff)
downloadwireguard-openbsd-692f0c3bd1f1307d7fcf2e437d044f27864c38c0.tar.xz
wireguard-openbsd-692f0c3bd1f1307d7fcf2e437d044f27864c38c0.zip
if we produce a lot of rtsock messages it is possible we will hit a
condition that prevents us from queuing it, which in turn means that processes listening on the routing socket for changes to the kernel state will get out of sync. currently this is handled by the following comment: /* should notify about lost packet */ this change introduces a new rtsock message called RTM_DESYNC that notifies about lost packets and uses it instead of this comment. when we detect loss we flush all the message in the routing socket and attempt to queue an RTM_DESYNC message instead. to guarantee that we will enqueue DESYNC we keep trying it when an attempt to enqueue or dequeue any messages is made, and in the worst case a timeout tries to guarantee that desync is added to the socket. ive been running this in production for 2 or 3 weeks. tested by sthen@ ok sthen@ claudio@ deraadt@ code written by andrew sallaway at the univeristy of queensland.
Diffstat (limited to 'usr.bin/diff/diffreg.c')
0 files changed, 0 insertions, 0 deletions