unbound: catch exception on blocklist reading (#6035)

This commit is contained in:
kulikov-a 2022-12-21 16:15:18 +03:00 committed by GitHub
parent 75e428f8a2
commit 360d4a45e5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -53,19 +53,24 @@ def uri_reader(uri):
req.raw.decode_content = True
prev_chop = ''
while True:
chop = req.raw.read(1024).decode()
if not chop:
if prev_chop:
yield prev_chop
break
else:
parts = (prev_chop + chop).split('\n')
if parts[-1] != "\n":
prev_chop = parts.pop()
try:
chop = req.raw.read(1024).decode()
if not chop:
if prev_chop:
yield prev_chop
break
else:
prev_chop = ''
for part in parts:
yield part
parts = (prev_chop + chop).split('\n')
if parts[-1] != "\n":
prev_chop = parts.pop()
else:
prev_chop = ''
for part in parts:
yield part
except Exception as e:
syslog.syslog(syslog.LOG_ERR,'blocklist download : error reading file from %s (error : %s)' % (uri, e))
return
else:
syslog.syslog(syslog.LOG_ERR,
'blocklist download : unable to download file from %s (status_code: %d)' % (uri, req.status_code)