mirror of https://github.com/dnomd343/ProxyC
dnomd343
2 years ago
3 changed files with 45 additions and 3 deletions
@ -0,0 +1,42 @@ |
|||||
|
#!/usr/bin/env python3 |
||||
|
# -*- coding: utf-8 -*- |
||||
|
|
||||
|
import time |
||||
|
import _thread |
||||
|
import subprocess |
||||
|
from Basis.Logger import logging |
||||
|
from Basis.Api import startServer |
||||
|
from Basis.Constant import Version |
||||
|
from Basis.Compile import startCompile |
||||
|
|
||||
|
|
||||
|
def startDnsproxy(command: list) -> subprocess.Popen: |
||||
|
logging.debug('start dnsproxy -> %s' % command) |
||||
|
return subprocess.Popen(command, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) |
||||
|
|
||||
|
|
||||
|
def daemonDnsproxy(dnsServers: list, localPort: int = 53, cacheSize: int = 4194304) -> None: # default cache -> 4MiB |
||||
|
logging.info('start dnsproxy at port %i -> %s' % (localPort, dnsServers)) |
||||
|
dnsCommand = [ |
||||
|
'dnsproxy', '--all-servers', |
||||
|
'--port', str(localPort), |
||||
|
'--cache', '--cache-size', str(cacheSize) |
||||
|
] |
||||
|
for dnsServer in dnsServers: |
||||
|
dnsCommand += ['--upstream', dnsServer] |
||||
|
dnsproxy = startDnsproxy(dnsCommand) |
||||
|
while True: |
||||
|
time.sleep(1) # daemon time gap |
||||
|
if dnsproxy.poll() is not None: # unexpected exit |
||||
|
logging.warning('dnsproxy unexpected exit') |
||||
|
logging.debug('output of dnsproxy\n%s' % dnsproxy.stdout.read().decode('UTF-8')) |
||||
|
dnsproxy = startDnsproxy(dnsCommand) |
||||
|
|
||||
|
|
||||
|
logging.warning('ProxyC starts running (%s)' % Version) |
||||
|
|
||||
|
_thread.start_new_thread(startCompile, ('/usr', )) |
||||
|
|
||||
|
_thread.start_new_thread(daemonDnsproxy, (['223.5.5.5', '119.28.28.28'], 53)) |
||||
|
|
||||
|
startServer(apiToken = 'dnomd343') |
Loading…
Reference in new issue