mirror of https://github.com/dnomd343/ProxyC
dnomd343
2 years ago
5 changed files with 156 additions and 37 deletions
@ -0,0 +1,50 @@ |
|||||
|
#!/usr/bin/env python3 |
||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
import time |
||||
|
from Basis.Logger import logging |
||||
|
from Builder import Builder, clientEntry |
||||
|
|
||||
|
from ProxyChecker import httpCheck # TODO: refactor in the future |
||||
|
|
||||
|
|
||||
|
def Check(proxyType: str, proxyInfo: dict, checkInfo: dict) -> dict: |
||||
|
# TODO: checkInfo -> [...] (only check http for now) |
||||
|
if proxyType not in clientEntry: |
||||
|
logging.error('Unknown proxy type %s' % proxyType) |
||||
|
raise RuntimeError('Unknown proxy type') |
||||
|
try: |
||||
|
client = Builder(proxyType, proxyInfo) |
||||
|
except Exception as reason: |
||||
|
logging.error('Client build error -> %s' % reason) |
||||
|
raise RuntimeError('Client build error') |
||||
|
|
||||
|
# TODO: debug combine output |
||||
|
logging.debug(client.id) |
||||
|
logging.debug(client.proxyType) |
||||
|
logging.debug(client.proxyInfo) |
||||
|
logging.debug(client.socksAddr) |
||||
|
logging.debug(client.socksPort) |
||||
|
|
||||
|
# TODO: wait port occupied |
||||
|
time.sleep(1) |
||||
|
if not client.status(): # client unexpected exit |
||||
|
client.destroy() # remove file and kill sub process |
||||
|
logging.error('Client unexpected exit\n%s', client.output) |
||||
|
raise RuntimeError('Client unexpected exit') |
||||
|
|
||||
|
# TODO: check process |
||||
|
status, _ = httpCheck(client.socksPort) # TODO: add socks5 addr |
||||
|
|
||||
|
logging.critical('http check status -> %s' % status) |
||||
|
|
||||
|
client.destroy() # clean up the client |
||||
|
|
||||
|
return { |
||||
|
'http': { |
||||
|
'status': status, |
||||
|
# TODO: more http check info |
||||
|
}, |
||||
|
# TODO: more check items (from checkInfo list) |
||||
|
} |
||||
|
|
Loading…
Reference in new issue