First a big THANK YOU to @SurferTim for posting and maintaining this code. Easier to understand and more robust than earlier examples, IMHO. I'm not an Ethernet genius so I appreciate this!
I think I understand the code OK, my question is regarding the comment
// connectLoop controls the hardware fail timeout
...what are the failure modes being guarded against here? I can think of a few, just wondering if I'm missing any major ones:
- The server on the other end goes down or out to lunch for an extended period of time, so a complete response is not received
- Network propagation delays cause a response to not be received in a timely manner (this may be indistinguishable from the first bullet)
- The W5100 finally gets a little too hot and lets the magic smoke go