Cleanup and fixes
This commit is contained in:
		
							parent
							
								
									dc51ab8980
								
							
						
					
					
						commit
						f8cebd5bd5
					
				
					 4 changed files with 26 additions and 41 deletions
				
			
		|  | @ -514,17 +514,18 @@ class Core: | |||
|             speed int, 3 | ||||
|             success int, 4 | ||||
|             DBHash text, 5 | ||||
|             failure int 6 | ||||
|             lastConnect 7 | ||||
|             trust       8 | ||||
|             introduced  9 | ||||
|             powValue    6 | ||||
|             failure int 7 | ||||
|             lastConnect 8 | ||||
|             trust       9 | ||||
|             introduced  10 | ||||
|         ''' | ||||
| 
 | ||||
|         conn = sqlite3.connect(self.addressDB, timeout=10) | ||||
|         c = conn.cursor() | ||||
| 
 | ||||
|         command = (address,) | ||||
|         infoNumbers = {'address': 0, 'type': 1, 'knownPeer': 2, 'speed': 3, 'success': 4, 'DBHash': 5, 'failure': 6, 'lastConnect': 7, 'trust': 8, 'introduced': 9} | ||||
|         infoNumbers = {'address': 0, 'type': 1, 'knownPeer': 2, 'speed': 3, 'success': 4, 'DBHash': 5, 'powValue': 6, 'failure': 7, 'lastConnect': 8, 'trust': 9, 'introduced': 10} | ||||
|         info = infoNumbers[info] | ||||
|         iterCount = 0 | ||||
|         retVal = '' | ||||
|  | @ -550,7 +551,7 @@ class Core: | |||
| 
 | ||||
|         command = (data, address) | ||||
|          | ||||
|         if key not in ('address', 'type', 'knownPeer', 'speed', 'success', 'DBHash', 'failure', 'lastConnect', 'lastConnectAttempt', 'trust', 'introduced'): | ||||
|         if key not in ('address', 'type', 'knownPeer', 'speed', 'success', 'DBHash', 'failure', 'powValue', 'lastConnect', 'lastConnectAttempt', 'trust', 'introduced'): | ||||
|             raise Exception("Got invalid database key when setting address info") | ||||
|         else: | ||||
|             c.execute('UPDATE adders SET ' + key + ' = ? WHERE address=?', command) | ||||
|  |  | |||
|  | @ -182,7 +182,6 @@ class Onionr: | |||
| 
 | ||||
|             'introduce': self.onionrCore.introduceNode, | ||||
|             'connect': self.addAddress, | ||||
|             'kex': self.doKEX, | ||||
|             'pex': self.doPEX, | ||||
| 
 | ||||
|             'ui' : self.openUI, | ||||
|  | @ -227,7 +226,6 @@ class Onionr: | |||
|             'get-file': 'Get a file from Onionr blocks', | ||||
|             'import-blocks': 'import blocks from the disk (Onionr is transport-agnostic!)', | ||||
|             'listconn': 'list connected peers', | ||||
|             'kex': 'exchange keys with peers (done automatically)', | ||||
|             'pex': 'exchange addresses with peers (done automatically)', | ||||
|             'blacklist-block': 'deletes a block by hash and permanently removes it from your node', | ||||
|             'introduce': 'Introduce your node to the public Onionr network', | ||||
|  | @ -495,11 +493,6 @@ class Onionr: | |||
| 
 | ||||
|         return | ||||
| 
 | ||||
|     def doKEX(self): | ||||
|         '''make communicator do kex''' | ||||
|         logger.info('Sending kex to command queue...') | ||||
|         self.onionrCore.daemonQueueAdd('kex') | ||||
| 
 | ||||
|     def doPEX(self): | ||||
|         '''make communicator do pex''' | ||||
|         logger.info('Sending pex to command queue...') | ||||
|  | @ -694,7 +687,10 @@ class Onionr: | |||
|             self.daemon() | ||||
|             self.running = False | ||||
|             if not self.debug and not self._developmentMode: | ||||
|                 try: | ||||
|                     os.remove('.onionr-lock') | ||||
|                 except FileNotFoundError: | ||||
|                     pass | ||||
| 
 | ||||
|     def daemon(self): | ||||
|         ''' | ||||
|  | @ -728,7 +724,7 @@ class Onionr: | |||
|                 Onionr.setupConfig('data/', self = self) | ||||
| 
 | ||||
|                 if self._developmentMode: | ||||
|                     logger.warn('DEVELOPMENT MODE ENABLED (THIS IS LESS SECURE!)', timestamp = False) | ||||
|                     logger.warn('DEVELOPMENT MODE ENABLED (LESS SECURE)', timestamp = False) | ||||
|                 net = NetController(config.get('client.port', 59496), apiServerIP=apiHost) | ||||
|                 logger.debug('Tor is starting...') | ||||
|                 if not net.startTor(): | ||||
|  |  | |||
|  | @ -49,9 +49,14 @@ class DaemonTools: | |||
|         data = {'node': ourID} | ||||
| 
 | ||||
|         combinedNodes = ourID + peer | ||||
|         existingRand = self.daemon._core.getAddressInfo(peer, 'powValue') | ||||
|         if type(existingRand) is type(None): | ||||
|             existingRand = '' | ||||
| 
 | ||||
|         if peer in self.announceCache: | ||||
|             data['random'] = self.announceCache[peer] | ||||
|         elif len(existingRand) > 0: | ||||
|             data['random'] = existingRand | ||||
|         else: | ||||
|             proof = onionrproofs.DataPOW(combinedNodes, forceDifficulty=4) | ||||
|             try: | ||||
|  | @ -68,6 +73,7 @@ class DaemonTools: | |||
|                 logger.info('Successfully introduced node to ' + peer) | ||||
|                 retData = True | ||||
|                 self.daemon._core.setAddressInfo(peer, 'introduced', 1) | ||||
|                 self.daemon._core.setAddressInfo(peer, 'powValue', data['random']) | ||||
|             self.daemon.decrementThreadCount('announceNode') | ||||
|         return retData | ||||
| 
 | ||||
|  | @ -152,8 +158,8 @@ class DaemonTools: | |||
|         self.daemon.decrementThreadCount('cooldownPeer') | ||||
| 
 | ||||
|     def runCheck(self): | ||||
|         if os.path.isfile('data/.runcheck'): | ||||
|             os.remove('data/.runcheck') | ||||
|         if os.path.isfile(self.daemon._core.dataDir + '.runcheck'): | ||||
|             os.remove(self.daemon._core.dataDir + '.runcheck') | ||||
|             return True | ||||
| 
 | ||||
|         return False | ||||
|  |  | |||
|  | @ -34,7 +34,8 @@ class OnionrCLIUI: | |||
|     def subCommand(self, command): | ||||
|             try: | ||||
|                 #subprocess.run(["./onionr.py", command]) | ||||
|                 subprocess.Popen(['./onionr.py', command], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) | ||||
|                 #subprocess.Popen(['./onionr.py', command], stdin=subprocess.STD, stdout=subprocess.STDOUT, stderr=subprocess.STDOUT) | ||||
|                 subprocess.call(['./onionr.py', command]) | ||||
|             except KeyboardInterrupt: | ||||
|                 pass | ||||
| 
 | ||||
|  | @ -52,24 +53,17 @@ class OnionrCLIUI: | |||
|             firstRun = False | ||||
| 
 | ||||
|         while showMenu: | ||||
|             if firstRun: | ||||
|                 logger.info('Please wait while Onionr starts...') | ||||
|                 daemon = subprocess.Popen(["./onionr.py", "start"], stdin=subprocess.PIPE, stdout=subprocess.DEVNULL) | ||||
|                 time.sleep(30) | ||||
|                 firstRun = False | ||||
| 
 | ||||
|             if self.myCore._utils.localCommand('ping') == 'pong': | ||||
|                 isOnline = "Yes" | ||||
|             else: | ||||
|                 isOnline = "No" | ||||
| 
 | ||||
|             logger.info('''Daemon Running: ''' + isOnline + ''' | ||||
|             print('''Daemon Running: ''' + isOnline + ''' | ||||
| 1. Flow (Anonymous public chat, use at your own risk) | ||||
| 2. Mail (Secure email-like service) | ||||
| 3. File Sharing | ||||
| 4. User Settings | ||||
| 5. Start/Stop Daemon | ||||
| 6. Quit (Does not shutdown daemon) | ||||
| 5. Quit (Does not shutdown daemon) | ||||
|             ''') | ||||
|             try: | ||||
|                 choice = input(">").strip().lower() | ||||
|  | @ -81,25 +75,13 @@ class OnionrCLIUI: | |||
|             elif choice in ("2", "mail"): | ||||
|                 self.subCommand("mail") | ||||
|             elif choice in ("3", "file sharing", "file"): | ||||
|                 logger.warn("Not supported yet") | ||||
|                 print("Not supported yet") | ||||
|             elif choice in ("4", "user settings", "settings"): | ||||
|                 try: | ||||
|                     self.setName() | ||||
|                 except (KeyboardInterrupt, EOFError) as e: | ||||
|                     pass | ||||
|             elif choice in ("5", "daemon"): | ||||
|                 if isOnline == "Yes": | ||||
|                     logger.info("Onionr daemon will shutdown...") | ||||
|                     self.myCore.daemonQueueAdd('shutdown') | ||||
| 
 | ||||
|                     try: | ||||
|                         daemon.kill() | ||||
|                     except UnboundLocalError: | ||||
|                         pass | ||||
|                 else: | ||||
|                     logger.info("Starting Daemon...") | ||||
|                     daemon = subprocess.Popen(["./onionr.py", "start"], stdin=subprocess.PIPE, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT) | ||||
|             elif choice in ("6", "quit"): | ||||
|             elif choice in ("5", "quit"): | ||||
|                 showMenu = False | ||||
|             elif choice == "": | ||||
|                 pass | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue