RPKI: wait for retry_time if we get error immediately after connected

This commit is contained in:
Maria Matejka 2022-10-03 17:09:02 +02:00
parent 0f2be469f8
commit 605ff0a0eb

View file

@ -278,12 +278,13 @@ rpki_cache_change_state(struct rpki_cache *cache, const enum rpki_cache_state ne
case RPKI_CS_NO_INCR_UPDATE_AVAIL: case RPKI_CS_NO_INCR_UPDATE_AVAIL:
/* Server was unable to answer the last Serial Query and sent Cache Reset. */ /* Server was unable to answer the last Serial Query and sent Cache Reset. */
rpki_cache_change_state(cache, RPKI_CS_RESET);
break;
case RPKI_CS_ERROR_NO_DATA_AVAIL: case RPKI_CS_ERROR_NO_DATA_AVAIL:
/* No validation records are available on the cache server. */ /* No validation records are available on the cache server. */
rpki_cache_change_state(cache, RPKI_CS_RESET);
if (old_state == RPKI_CS_ESTABLISHED)
rpki_cache_change_state(cache, RPKI_CS_RESET);
else
rpki_schedule_next_retry(cache);
break; break;
case RPKI_CS_ERROR_FATAL: case RPKI_CS_ERROR_FATAL:
@ -453,6 +454,11 @@ rpki_retry_hook(timer *tm)
} }
break; break;
case RPKI_CS_NO_INCR_UPDATE_AVAIL:
case RPKI_CS_ERROR_NO_DATA_AVAIL:
rpki_cache_change_state(cache, RPKI_CS_RESET);
break;
default: default:
rpki_cache_change_state(cache, RPKI_CS_CONNECTING); rpki_cache_change_state(cache, RPKI_CS_CONNECTING);
break; break;