Знаю, я ж и говорю что быдлокод наскоро написанный.
Если учесть что пакет вообще может быть разбитый и за один раз не считать полностью HTTP заголовок и следовательно не получить ссылку на редирект, то считай проваливается всё. И по этому нужно делать цикл. да и таймауты не повредили бы.