5 | 5 | I believe the correct next state when the KDC returns KDC_ERR_SVC_UNAVAILABLE is KRB5_SENDTO_TIMEOUT, at least for now, but it would either be better to move to the next KDC immediately, or sleep a bit. I don't see where this code ever sleeps... which is strange. Ah, I get it. On timeout we always go to the next KDC, which is why we don't need to sleep: we wait in select(), and we round-robin KDCs. Still, if all KDCs fail with KDC_ERR_SVC_UNAVAILABLE we ought to sleep a bit before retrying once we run out of KDCs. |