atproto_firehose.handle: delay parsing payload until after we've checked header

for #1295
pull/1310/head
Ryan Barrett 2024-09-05 15:20:35 -07:00
rodzic d0d0b6bbe5
commit 3823379334
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
1 zmienionych plików z 7 dodań i 4 usunięć

Wyświetl plik

@ -221,18 +221,21 @@ def handle(limit=None):
# header, payload = libipld.decode_dag_cbor_multi(frame)
buf = BytesIO(frame)
header = dag_cbor.decode(buf, allow_concat=True)
payload = dag_cbor.decode(buf)
# parse header
if header.get('op') == -1:
payload = dag_cbor.decode(buf)
logger.warning(f'Got error from relay! {payload}')
continue
elif header.get('t') != '#commit':
if header.get('t') not in ('#account', '#identity', '#handle'):
logger.info(f'Got {header.get("t")} from relay: {payload}')
t = header.get('t')
if t != '#commit':
if t not in ('#account', '#identity', '#handle'):
logger.info(f'Got {t} from relay')
continue
# parse payload
payload = dag_cbor.decode(buf)
repo = payload.get('repo')
if not repo:
logger.warning(f'Payload missing repo! {payload}')