View Single Post
I don't buy the premise that tracking the network state is too difficult with all the OS versions they support. They've got all the pieces they need already. They track the state of the last sync attempt (necessary to put up the ! annunciator in the sync button) and they have machinery for scheduling another sync attempt after a fixed interval of time. When it is time to sync, start a truncated binary exponential backoff with a slot time of a second or so and a ceiling of 4 or 5 attempts. Only set the error flag if you make it to the ceiling, or you get a hard error (password incorrect, for example).