diff --git a/src/invidious/routes/before_all.cr b/src/invidious/routes/before_all.cr index 2d5f1da3..d1ab2940 100644 --- a/src/invidious/routes/before_all.cr +++ b/src/invidious/routes/before_all.cr @@ -43,6 +43,13 @@ module Invidious::Routes::BeforeAll current_companion = rand(CONFIG.invidious_companion.size) end + # Do not send a user without a cookie to a broken backend + c = 0 + while (BackendInfo.get_status[current_companion] = 0) && c != CONFIG.invidious_companion.size + current_companion += 1 + c +=1 + end + if current_companion > CONFIG.invidious_companion.size current_companion = current_companion % CONFIG.invidious_companion.size env.response.cookies[CONFIG.server_id_cookie_name] = Invidious::User::Cookies.server_id(env.request.headers["Host"], current_companion)