本文整理汇总了Python中xlog.debug函数的典型用法代码示例。如果您正苦于以下问题:Python debug函数的具体用法?Python debug怎么用?Python debug使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了debug函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: save_ip_list
def save_ip_list(self, force=False):
if not force:
if self.iplist_need_save == 0:
return
if time.time() - self.iplist_saved_time < 10:
return
self.iplist_saved_time = time.time()
try:
self.ip_lock.acquire()
ip_dict = sorted(self.ip_dict.items(), key=lambda x: x[1]['handshake_time'])
with open(self.good_ip_file, "w") as fd:
for ip_str, property in ip_dict:
fd.write( "%s %s %s %d\n" % (ip_str, property['domain'], property['server'], property['handshake_time']) )
with open(self.bad_ip_file, "w") as fd:
for ip in self.bad_ip_pool:
xlog.debug("save bad ip:%s", ip)
fd.write("%s\n" % (ip))
self.iplist_need_save = 0
except Exception as e:
xlog.error("save good_ip.txt fail %s", e)
finally:
self.ip_lock.release()
开发者ID:az0ne,项目名称:XX-Net,代码行数:26,代码来源:google_ip.py
示例2: report_bad_ip
def report_bad_ip(self, ip_str):
xlog.debug("report_bad_ip %s", ip_str)
if not ip_utils.check_ip_valid(ip_str):
return
self.bad_ip_pool.add(ip_str)
self.save_ip_list(force=True)
开发者ID:az0ne,项目名称:XX-Net,代码行数:7,代码来源:google_ip.py
示例3: get_host_ip
def get_host_ip(self, host):
self.try_sort_ip_by_handshake_time()
self.ip_lock.acquire()
try:
ip_num = len(self.ip_dict)
if ip_num == 0:
#logging.warning("no gws ip")
time.sleep(1)
return None
for ip_str in self.ip_dict:
domain = self.ip_dict[ip_str]["domain"]
if domain != host:
continue
get_time = self.ip_dict[ip_str]["get_time"]
if time.time() - get_time < 10:
continue
handshake_time = self.ip_dict[ip_str]["handshake_time"]
fail_time = self.ip_dict[ip_str]["fail_time"]
if time.time() - fail_time < 300:
continue
xlog.debug("get host:%s ip:%s t:%d", host, ip_str, handshake_time)
self.ip_dict[ip_str]['history'].append([time.time(), "get"])
self.ip_dict[ip_str]['get_time'] = time.time()
return ip_str
except Exception as e:
xlog.error("get_gws_ip fail:%s", e)
traceback.print_exc()
finally:
self.ip_lock.release()
开发者ID:az0ne,项目名称:XX-Net,代码行数:33,代码来源:google_ip.py
示例4: try_sort_gws_ip
def try_sort_gws_ip(self, force=False):
if time.time() - self.last_sort_time_for_gws < 10 and not force:
return
self.ip_lock.acquire()
self.last_sort_time_for_gws = time.time()
try:
self.good_ip_num = 0
ip_rate = {}
for ip_str in self.ip_dict:
if "gws" not in self.ip_dict[ip_str]["server"]:
continue
ip_rate[ip_str] = self.ip_dict[ip_str]["handshake_time"] + (self.ip_dict[ip_str]["fail_times"] * 1000)
if self.ip_dict[ip_str]["fail_times"] == 0:
self.good_ip_num += 1
ip_time = sorted(ip_rate.items(), key=operator.itemgetter(1))
self.gws_ip_list = [ip_str for ip_str, rate in ip_time]
except Exception as e:
xlog.error("try_sort_ip_by_handshake_time:%s", e)
finally:
self.ip_lock.release()
time_cost = (time.time() - self.last_sort_time_for_gws) * 1000
if time_cost > 30:
xlog.debug("sort ip time:%dms", time_cost) # 5ms for 1000 ip. 70~150ms for 30000 ip.
self.adjust_scan_thread_num()
开发者ID:sun3596209,项目名称:XX-Net,代码行数:29,代码来源:google_ip.py
示例5: report_connect_fail
def report_connect_fail(self, ip_str, force_remove=False):
self.ip_lock.acquire()
try:
time_now = time.time()
if not ip_str in self.ip_dict:
return
self.ip_dict[ip_str]["links"] -= 1
# ignore if system network is disconnected.
if not force_remove:
if not check_ip.network_is_ok():
xlog.debug("report_connect_fail network fail")
# connect_control.fall_into_honeypot()
return
fail_time = self.ip_dict[ip_str]["fail_time"]
if not force_remove and time_now - fail_time < 1:
xlog.debug("fail time too near")
return
# increase handshake_time to make it can be used in lower probability
self.ip_dict[ip_str]["handshake_time"] += 300
if self.ip_dict[ip_str]["fail_times"] == 0:
self.good_ip_num -= 1
self.ip_dict[ip_str]["fail_times"] += 1
self.append_ip_history(ip_str, "fail")
self.ip_dict[ip_str]["fail_time"] = time_now
if force_remove or self.ip_dict[ip_str]["fail_times"] >= 50:
property = self.ip_dict[ip_str]
server = property["server"]
del self.ip_dict[ip_str]
if "gws" in server and ip_str in self.gws_ip_list:
self.gws_ip_list.remove(ip_str)
if not force_remove:
self.to_remove_ip_list.put(ip_str)
self.try_remove_thread()
xlog.info(
"remove ip tmp:%s left amount:%d gws_num:%d", ip_str, len(self.ip_dict), len(self.gws_ip_list)
)
else:
xlog.info(
"remove ip:%s left amount:%d gws_num:%d", ip_str, len(self.ip_dict), len(self.gws_ip_list)
)
if self.good_ip_num > len(self.ip_dict):
self.good_ip_num = len(self.ip_dict)
self.iplist_need_save = 1
except Exception as e:
xlog.exception("set_ip err:%s", e)
finally:
self.ip_lock.release()
if not self.is_ip_enough():
self.search_more_google_ip()
开发者ID:sun3596209,项目名称:XX-Net,代码行数:60,代码来源:google_ip.py
示例6: do_POST
def do_POST(self):
try:
refer = self.headers.getheader('Referer')
netloc = urlparse.urlparse(refer).netloc
if not netloc.startswith("127.0.0.1") and not netloc.startswitch("localhost"):
xlog.warn("web control ref:%s refuse", netloc)
return
except:
pass
xlog.debug ('GAEProxy web_control %s %s %s ', self.address_string(), self.command, self.path)
try:
ctype, pdict = cgi.parse_header(self.headers.getheader('content-type'))
if ctype == 'multipart/form-data':
self.postvars = cgi.parse_multipart(self.rfile, pdict)
elif ctype == 'application/x-www-form-urlencoded':
length = int(self.headers.getheader('content-length'))
self.postvars = urlparse.parse_qs(self.rfile.read(length), keep_blank_values=1)
else:
self.postvars = {}
except:
self.postvars = {}
path = urlparse.urlparse(self.path).path
if path == '/deploy':
return self.req_deploy_handler()
elif path == "/config":
return self.req_config_handler()
elif path == "/scan_ip":
return self.req_scan_ip_handler()
elif path.startswith("/importip"):
return self.req_importip_handler()
else:
self.wfile.write(b'HTTP/1.1 404\r\nContent-Type: text/plain\r\nConnection: close\r\n\r\n404 Not Found')
xlog.info('%s "%s %s HTTP/1.1" 404 -', self.address_string(), self.command, self.path)
开发者ID:hzg0102,项目名称:XX-Net,代码行数:34,代码来源:web_control.py
示例7: remove_ip_process
def remove_ip_process(self):
try:
while True:
try:
ip_str = self.to_remove_ip_list.get_nowait()
except:
break
result = check_ip.test(ip_str)
if result and result.appspot_ok:
self.add_ip(ip_str, result.handshake_time, result.domain, result.server_type)
xlog.debug("remove ip process, restore ip:%s", ip_str)
continue
if not check_ip.network_is_ok():
self.to_remove_ip_list.put(ip_str)
xlog.warn("network is unreachable. check your network connection.")
return
xlog.info("real remove ip:%s ", ip_str)
self.iplist_need_save = 1
finally:
self.remove_ip_thread_num_lock.acquire()
self.remove_ip_thread_num -= 1
self.remove_ip_thread_num_lock.release()
开发者ID:az0ne,项目名称:XX-Net,代码行数:26,代码来源:google_ip.py
示例8: request
def request(headers={}, payload=None):
max_retry = 3
for i in range(max_retry):
ssl_sock = None
try:
ssl_sock = https_manager.get_ssl_connection()
if not ssl_sock:
xlog.debug("create_ssl_connection fail")
continue
if ssl_sock.host == "":
ssl_sock.appid = appid_manager.get_appid()
if not ssl_sock.appid:
raise GAE_Exception(1, "no appid can use")
headers["Host"] = ssl_sock.appid + ".appspot.com"
ssl_sock.host = headers["Host"]
else:
headers["Host"] = ssl_sock.host
response = _request(ssl_sock, headers, payload)
if not response:
ssl_sock.close()
continue
response.ssl_sock = ssl_sock
return response
except Exception as e:
xlog.warn("request failed:%s", e)
if ssl_sock:
ssl_sock.close()
raise GAE_Exception(2, "try max times")
开发者ID:cc419378878,项目名称:XX-Net,代码行数:32,代码来源:gae_handler.py
示例9: test
def test(ip_str, loop=1):
xlog.info("==>%s", ip_str)
check = Check_frame(ip_str, check_cert=False)
for i in range(loop):
result = check.check(callback=test_app_head)
if not result:
if "gws" in check.result.server_type:
xlog.warn("ip:%s server_type:%s but appengine check fail.", ip_str, check.result.server_type)
xlog.warn("check fail")
#continue
else:
xlog.debug("=======app check ok: %s", ip_str)
check.result.appspot_ok = result
result = check.check(callback=test_server_type, check_ca=True)
if not result:
xlog.debug("test server type fail")
continue
check.result.server_type = result
xlog.info("========== %s type:%s domain:%s handshake:%d", ip_str, check.result.server_type,
check.result.domain, check.result.handshake_time)
return check.result
开发者ID:new-xd,项目名称:XX-Net,代码行数:28,代码来源:check_ip.py
示例10: request
def request(headers={}, payload=None):
max_retry = 3
for i in range(max_retry):
ssl_sock = None
try:
ssl_sock = https_manager.get_ssl_connection()
if not ssl_sock:
xlog.debug('create_ssl_connection fail')
continue
if ssl_sock.host == '':
ssl_sock.appid = appid_manager.get_appid()
if not ssl_sock.appid:
google_ip.report_connect_closed(ssl_sock.ip, "no appid")
raise GAE_Exception(1, "no appid can use")
headers['Host'] = ssl_sock.appid + ".appspot.com"
ssl_sock.host = headers['Host']
else:
headers['Host'] = ssl_sock.host
response = _request(ssl_sock, headers, payload)
if not response:
google_ip.report_connect_closed(ssl_sock.ip, "request_fail")
ssl_sock.close()
continue
response.ssl_sock = ssl_sock
return response
except Exception as e:
xlog.exception('request failed:%s', e)
if ssl_sock:
google_ip.report_connect_closed(ssl_sock.ip, "request_except")
ssl_sock.close()
raise GAE_Exception(2, "try max times")
开发者ID:sun3596209,项目名称:XX-Net,代码行数:35,代码来源:gae_handler.py
示例11: create_connection_worker
def create_connection_worker(self):
try:
while connect_control.keep_running:
if self.new_conn_pool.qsize() >= self.connection_pool_min_num:
#xlog.debug("get enough conn")
break
if self.thread_num > self.connection_pool_min_num - self.new_conn_pool.qsize():
break
ip_str = google_ip.get_gws_ip()
if not ip_str:
xlog.warning("no gws ip")
break
port = 443
#logging.debug("create ssl conn %s", ip_str)
connect_control.start_connect_register(True)
ssl_sock = self._create_ssl_connection( (ip_str, port) )
connect_control.end_connect_register(True)
if ssl_sock:
ssl_sock.last_use_time = time.time()
self.new_conn_pool.put((ssl_sock.handshake_time, ssl_sock))
elif not connect_control.allow_connect():
xlog.debug("create_connection_worker, control not allow")
time.sleep(10)
time.sleep(1)
finally:
self.thread_num_lock.acquire()
self.thread_num -= 1
self.thread_num_lock.release()
开发者ID:vvsf,项目名称:XX-Net,代码行数:30,代码来源:connect_manager.py
示例12: try_sort_ip_by_handshake_time
def try_sort_ip_by_handshake_time(self, force=False):
if time.time() - self.last_sort_time_for_gws < 10 and not force:
return
self.last_sort_time_for_gws = time.time()
self.ip_lock.acquire()
try:
ip_dict_handshake_time = {}
for ip_str in self.ip_dict:
if 'gws' not in self.ip_dict[ip_str]['server']:
continue
ip_dict_handshake_time[ip_str] = self.ip_dict[ip_str]['handshake_time']
ip_time = sorted(ip_dict_handshake_time.items(), key=operator.itemgetter(1))
self.gws_ip_list = [ip_str for ip_str,handshake_time in ip_time]
except Exception as e:
xlog.error("try_sort_ip_by_handshake_time:%s", e)
finally:
self.ip_lock.release()
time_cost = (( time.time() - self.last_sort_time_for_gws) * 1000)
if time_cost > 30:
xlog.debug("sort ip time:%dms", time_cost) # 5ms for 1000 ip. 70~150ms for 30000 ip.
self.adjust_scan_thread_num()
开发者ID:az0ne,项目名称:XX-Net,代码行数:26,代码来源:google_ip.py
示例13: test2
def test2(self):
work_ciphers = ["AES128-SHA"]
for cipher in self.cipher_list:
if cipher in work_ciphers:
continue
else:
work_ciphers.append(cipher)
xlog.debug("%s", cipher)
cipher_suites = (work_ciphers)
openssl_context = SSLConnection.context_builder(ca_certs=g_cacertfile, cipher_suites=cipher_suites)
try:
ssl, _, _ = connect_ssl(self.ip, openssl_context=openssl_context)
server_type = test_server_type(ssl, self.ip)
xlog.debug("%s", server_type)
if "gws" not in server_type:
work_ciphers.remove(cipher)
except Exception as e:
xlog.warn("err:%s", e)
try:
work_ciphers.remove(cipher)
except:
pass
work_str = ""
for cipher in work_ciphers:
work_str += cipher + ":"
xlog.info("work ciphers:%s", work_str)
开发者ID:new-xd,项目名称:XX-Net,代码行数:29,代码来源:check_ip.py
示例14: get_gws_ip
def get_gws_ip(self):
self.try_sort_gws_ip()
self.ip_lock.acquire()
try:
ip_num = len(self.gws_ip_list)
if ip_num == 0:
#logging.warning("no gws ip")
time.sleep(10)
return None
for i in range(ip_num):
if self.gws_ip_pointer >= ip_num:
if time.time() - self.gws_ip_pointer_reset_time < 1:
time.sleep(1)
continue
else:
self.gws_ip_pointer = 0
self.gws_ip_pointer_reset_time = time.time()
elif self.gws_ip_pointer > 0 and time.time() - self.gws_ip_pointer_reset_time > 3:
self.gws_ip_pointer = 0
self.gws_ip_pointer_reset_time = time.time()
ip_str = self.gws_ip_list[self.gws_ip_pointer]
get_time = self.ip_dict[ip_str]["get_time"]
if time.time() - get_time < self.ip_connect_interval:
self.gws_ip_pointer += 1
continue
if time.time() - self.ip_dict[ip_str]['success_time'] > 300: # 5 min
fail_connect_interval = 1800 # 30 min
else:
fail_connect_interval = 120 # 2 min
fail_time = self.ip_dict[ip_str]["fail_time"]
if time.time() - fail_time < fail_connect_interval:
self.gws_ip_pointer += 1
continue
time_now = time.time()
active_time = self.ip_dict[ip_str]['data_active']
transfered_data = self.ip_dict[ip_str]['transfered_data'] - ((time_now - active_time) * config.ip_traffic_quota)
if transfered_data > config.ip_traffic_quota_base:
self.gws_ip_pointer += 1
continue
handshake_time = self.ip_dict[ip_str]["handshake_time"]
xlog.debug("get ip:%s t:%d", ip_str, handshake_time)
self.ip_dict[ip_str]['history'].append([time.time(), "get"])
self.ip_dict[ip_str]['get_time'] = time.time()
self.gws_ip_pointer += 1
return ip_str
except Exception as e:
xlog.error("get_gws_ip fail:%s", e)
traceback.print_exc()
finally:
self.ip_lock.release()
开发者ID:neteasy-work,项目名称:XX-Net,代码行数:57,代码来源:google_ip.py
示例15: request
def request(self, method, host, schema="http", path="/", headers={}, data="", timeout=40):
# change top domain to xx-net.net
# this domain bypass the cloudflare front for ipv4
#p = host.find(".")
#host_sub = host[:p]
#host = host_sub + ".xx-net.net"
schema = "http"
# force schema to http, avoid cert fail on heroku curl.
# and all x-server provide ipv4 access
url = schema + "://" + host + path
payloads = ['%s %s HTTP/1.1\r\n' % (method, url)]
for k in headers:
v = headers[k]
payloads.append('%s: %s\r\n' % (k, v))
head_payload = "".join(payloads)
request_body = '%s%s%s%s' % \
((struct.pack('!H', len(head_payload)), head_payload,
struct.pack('!I', len(data)), data))
request_headers = {'Content-Length': len(data), 'Content-Type': 'application/octet-stream'}
heroku_host = ""
content, status, response = self._request(
"POST", heroku_host, "/2/",
request_headers, request_body, timeout)
# xlog.info('%s "PHP %s %s %s" %s %s', handler.address_string(), handler.command, url, handler.protocol_version, response.status, response.getheader('Content-Length', '-'))
# xlog.debug("status:%d", status)
if status == 200:
xlog.debug("%s %s%s trace:%s", method, host, path, response.task.get_trace())
self.last_success_time = time.time()
self.continue_fail_num = 0
self.success_num += 1
else:
if status == 404:
heroku_host = response.ssl_sock.host
xlog.warn("heroku:%s fail", heroku_host)
try:
self.host_manager.remove(heroku_host)
except:
pass
self.last_fail_time = time.time()
self.continue_fail_num += 1
self.fail_num += 1
try:
res = simple_http_client.TxtResponse(content)
except:
return "", 501, {}
res.worker = response.worker
res.task = response.task
return res.body, res.status, res
开发者ID:chenqiuyan,项目名称:XX-Net,代码行数:56,代码来源:front.py
示例16: main
def main():
global ready
connect_control.keep_running = True
config.load()
connect_manager.https_manager.load_config()
xlog.debug("## GAEProxy set keep_running: %s", connect_control.keep_running)
# to profile gae_proxy, run proxy.py, visit some web by proxy, then visit http://127.0.0.1:8084/quit to quit and print result.
do_profile = False
if do_profile:
import cProfile, pstats
pr = cProfile.Profile()
pr.enable()
global __file__
__file__ = os.path.abspath(__file__)
if os.path.islink(__file__):
__file__ = getattr(os, 'readlink', lambda x: x)(__file__)
os.chdir(os.path.dirname(os.path.abspath(__file__)))
xlog.basicConfig(level=xlog.DEBUG if config.LISTEN_DEBUGINFO else xlog.INFO, format='%(levelname)s - %(asctime)s %(message)s', datefmt='[%b %d %H:%M:%S]')
pre_start()
log_info()
CertUtil.init_ca()
proxy_daemon = simple_http_server.HTTPServer((config.LISTEN_IP, config.LISTEN_PORT), proxy_handler.GAEProxyHandler)
proxy_thread = threading.Thread(target=proxy_daemon.serve_forever)
proxy_thread.setDaemon(True)
proxy_thread.start()
if config.PAC_ENABLE:
pac_daemon = simple_http_server.HTTPServer((config.PAC_IP, config.PAC_PORT), pac_server.PACServerHandler)
pac_thread = threading.Thread(target=pac_daemon.serve_forever)
pac_thread.setDaemon(True)
pac_thread.start()
ready = True # checked by launcher.module_init
while connect_control.keep_running:
time.sleep(1)
xlog.info("Exiting gae_proxy module...")
proxy_daemon.shutdown()
proxy_daemon.server_close()
proxy_thread.join()
if config.PAC_ENABLE:
pac_daemon.shutdown()
pac_daemon.server_close()
pac_thread.join()
ready = False # checked by launcher.module_init
xlog.debug("## GAEProxy set keep_running: %s", connect_control.keep_running)
if do_profile:
pr.disable()
pr.print_stats()
开发者ID:guoyunliang,项目名称:XX-Net,代码行数:55,代码来源:proxy.py
示例17: report_connect_closed
def report_connect_closed(self, ip_str, reason=""):
xlog.debug("%s close:%s", ip_str, reason)
self.ip_lock.acquire()
try:
if ip_str in self.ip_dict:
self.ip_dict[ip_str]["links"] -= 1
self.append_ip_history(ip_str, "C[%s]" % reason)
except Exception as e:
xlog.error("report_connect_closed err:%s", e)
finally:
self.ip_lock.release()
开发者ID:sun3596209,项目名称:XX-Net,代码行数:11,代码来源:google_ip.py
示例18: check
def check(self, callback=None, check_ca=True, close_ssl=True):
ssl_sock = None
try:
ssl_sock,self.result.connct_time,self.result.handshake_time = connect_ssl(self.ip, timeout=self.timeout, openssl_context=self.openssl_context)
# verify SSL certificate issuer.
def check_ssl_cert(ssl_sock):
cert = ssl_sock.get_peer_certificate()
if not cert:
#raise HoneypotError(' certficate is none')
raise SSLError("no cert")
issuer_commonname = next((v for k, v in cert.get_issuer().get_components() if k == 'CN'), '')
if self.check_cert and not issuer_commonname.startswith('Google'):
raise HoneypotError(' certficate is issued by %r, not Google' % ( issuer_commonname))
ssl_cert = cert_util.SSLCert(cert)
xlog.info("%s CN:%s", self.ip, ssl_cert.cn)
self.result.domain = ssl_cert.cn
if check_ca:
check_ssl_cert(ssl_sock)
if callback:
return callback(ssl_sock, self.ip)
return True
except HoneypotError as e:
xlog.warn("honeypot %s", self.ip)
raise e
except SSLError as e:
xlog.debug("Check_appengine %s SSLError:%s", self.ip, e)
pass
except IOError as e:
xlog.warn("Check %s IOError:%s", self.ip, e)
pass
except httplib.BadStatusLine:
#logging.debug('Check_appengine http.bad status line ip:%s', ip)
#import traceback
#traceback.print_exc()
pass
except Exception as e:
if len(e.args)>0:
errno_str = e.args[0]
else:
errno_str = e.message
xlog.exception('check_appengine %s %s err:%s', self.ip, errno_str, e)
finally:
if ssl_sock and close_ssl:
ssl_sock.close()
return False
开发者ID:new-xd,项目名称:XX-Net,代码行数:53,代码来源:check_ip.py
示例19: _create_connection
def _create_connection(ip_port, delay=0):
connect_control.start_connect_register(True)
time.sleep(delay)
ip = ip_port[0]
sock = None
# start connection time record
start_time = time.time()
conn_time = 0
try:
# create a ipv4/ipv6 socket object
if config.PROXY_ENABLE:
sock = socks.socksocket(socket.AF_INET if ":" not in ip else socket.AF_INET6)
else:
sock = socket.socket(socket.AF_INET if ":" not in ip else socket.AF_INET6)
# set reuseaddr option to avoid 10048 socket error
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
# resize socket recv buffer 8K->32K to improve browser releated application performance
sock.setsockopt(socket.SOL_SOCKET, socket.SO_RCVBUF, 32 * 1024)
# disable negal algorithm to send http request quickly.
sock.setsockopt(socket.SOL_TCP, socket.TCP_NODELAY, True)
# set a short timeout to trigger timeout retry more quickly.
sock.settimeout(self.timeout)
# TCP connect
sock.connect(ip_port)
# record TCP connection time
conn_time = time.time() - start_time
xlog.debug("tcp conn %s time:%d", ip, conn_time * 1000)
google_ip.update_ip(ip, conn_time * 2000)
# logging.info("create_tcp update ip:%s time:%d", ip, conn_time * 2000)
# put ssl socket object to output queobj
# sock.ip = ip
self.tcp_connection_cache.put((time.time(), sock))
except Exception as e:
conn_time = int((time.time() - start_time) * 1000)
xlog.debug("tcp conn %s fail t:%d", ip, conn_time)
google_ip.report_connect_fail(ip)
# logging.info("create_tcp report fail ip:%s", ip)
if sock:
sock.close()
finally:
self.thread_num_lock.acquire()
self.thread_num -= 1
self.thread_num_lock.release()
connect_control.end_connect_register(True)
开发者ID:cc419378878,项目名称:XX-Net,代码行数:49,代码来源:connect_manager.py
示例20: get_gws_ip
def get_gws_ip(self):
self.try_sort_ip_by_handshake_time()
self.ip_lock.acquire()
try:
ip_num = len(self.gws_ip_list)
for i in range(ip_num):
if ip_num == 0:
#logging.warning("no gws ip")
time.sleep(1)
return None
if self.gws_ip_pointer >= ip_num:
if time.time() - self.gws_ip_pointer_reset_time < 1:
time.sleep(1)
continue
else:
self.gws_ip_pointer = 0
self.gws_ip_pointer_reset_time = time.time()
elif self.gws_ip_pointer > 0 and time.time() - self.gws_ip_pointer_reset_time > 3:
self.gws_ip_pointer = 0
self.gws_ip_pointer_reset_time = time.time()
ip_str = self.gws_ip_list[self.gws_ip_pointer]
if self.is_bad_ip(ip_str):
self.gws_ip_pointer += 1
continue
get_time = self.ip_dict[ip_str]["get_time"]
if time.time() - get_time < self.ip_connect_interval:
self.gws_ip_pointer += 1
continue
handshake_time = self.ip_dict[ip_str]["handshake_time"]
fail_time = self.ip_dict[ip_str]["fail_time"]
if time.time() - fail_time < 300:
self.gws_ip_pointer += 1
continue
xlog.debug("get ip:%s t:%d", ip_str, handshake_time)
self.ip_dict[ip_str]['history'].append([time.time(), "get"])
self.ip_dict[ip_str]['get_time'] = time.time()
self.gws_ip_pointer += 1
return ip_str
except Exception as e:
xlog.error("get_gws_ip fail:%s", e)
traceback.print_exc()
finally:
self.ip_lock.release()
开发者ID:az0ne,项目名称:XX-Net,代码行数:47,代码来源:google_ip.py
注:本文中的xlog.debug函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论