Not sure how you get 10 seconds. It still seems more like 5 to me.
If I force nickel to hang (-SIGSTOP) the device is dead after 7 seconds.
Code:
# pkill -SIGSTOP nickel ; while sleep 1 ; do echo -n . ; done;
.......Connection closed by foreign host.
(each dot represents 1 second - with a 10s timeout between pings there should be at least 10 dots?)
I will try it with your patch later.
Maybe it sends a ping every 10s but it does not wait 10s for reply? In that case sending a ping every 30s or even larger interval would not solve the issue entirely if nickel didn't happen to reply instantly when the ping was sent.
Yep, I don't really know how it works either. I just know that sickel is broken by design.