mirror of https://github.com/dnomd343/ProxyC
				
				
			
				 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