From 9386643c5d722f78eeb79b7b14b758811e4378c8 Mon Sep 17 00:00:00 2001 From: Jing Ling Date: Wed, 8 Jan 2020 23:00:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dreason=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oneforall/common/request.py | 10 ++++------ oneforall/common/resolve.py | 12 ++++++------ oneforall/common/utils.py | 4 ++++ 3 files changed, 14 insertions(+), 12 deletions(-) diff --git a/oneforall/common/request.py b/oneforall/common/request.py index 92e74fe..ae73f73 100644 --- a/oneforall/common/request.py +++ b/oneforall/common/request.py @@ -142,11 +142,12 @@ def get_title(markup): def request_callback(future, index, datas): result = future.result() - if isinstance(result, Exception): + if isinstance(result, BaseException): logger.log('TRACE', result.args) - datas[index]['reason'] = str(result.args) + name = utils.get_classname(result) + datas[index]['reason'] = name + ' ' + str(result) datas[index]['valid'] = 0 - if isinstance(result, tuple): + elif isinstance(result, tuple): resp, text = result datas[index]['reason'] = resp.reason datas[index]['status'] = resp.status @@ -163,9 +164,6 @@ def request_callback(future, index, datas): datas[index]['title'] = utils.remove_string(title) datas[index]['header'] = str(dict(headers))[1:-1] datas[index]['response'] = utils.remove_string(text) - else: - datas[index]['reason'] = str(result) - datas[index]['valid'] = 0 def get_connector(): diff --git a/oneforall/common/resolve.py b/oneforall/common/resolve.py index ad06204..3a429f1 100644 --- a/oneforall/common/resolve.py +++ b/oneforall/common/resolve.py @@ -6,6 +6,7 @@ import tqdm from dns.resolver import Resolver import config +from common import utils from config import logger @@ -65,15 +66,14 @@ def resolve_callback(future, index, datas): :param datas: 结果集 """ hostname, answer = future.result() - if isinstance(answer, Exception): - datas[index]['reason'] = str(answer.args) + if isinstance(answer, BaseException): + logger.log('TRACE', answer.args) + name = utils.get_classname(answer) + datas[index]['reason'] = name + ' ' + str(answer) datas[index]['valid'] = 0 - if isinstance(answer, tuple): + elif isinstance(answer, tuple): ips = answer[2] datas[index]['ips'] = str(ips)[1:-1] - else: - datas[index]['reason'] = str(answer) - datas[index]['valid'] = 0 async def bulk_query_a(datas): diff --git a/oneforall/common/utils.py b/oneforall/common/utils.py index c71394b..e57c46f 100644 --- a/oneforall/common/utils.py +++ b/oneforall/common/utils.py @@ -282,3 +282,7 @@ def export_all(format, datas): def get_timestamp(): return int(time.time()) + + +def get_classname(clsobj): + return clsobj.__class__.__name__