Rework the rttimer code. Instead of a global queue and a global timeout
authorclaudio <claudio@openbsd.org>
Mon, 27 Jun 2022 21:26:46 +0000 (21:26 +0000)
committerclaudio <claudio@openbsd.org>
Mon, 27 Jun 2022 21:26:46 +0000 (21:26 +0000)
commit932c91099162e42518d474e732135401853f56a1
tree1f58bd70bf3ad8bb75bf4c2b5e10c325037ca68e
parent32b4d8f21105c3409933ef802d7e28b0c0ca8f4c
Rework the rttimer code. Instead of a global queue and a global timeout
use a per rttimer struct timeout. On enqueue the struct rttimer belongs
to the timeout, in case the route is removed before the timer fires
cleanup based on the timeout_del() return value. If the timeout currently
running then just clear the rtt_rt pointer and let the timeout handle the
cleanup. This should hopefully fix the icmp_pmtu_timeout crashes reported
by some people.
OK bluhm@
sys/net/route.c
sys/net/route.h
sys/net/rtsock.c