+ Work on boards
* Handle ctrl-c better in main loop
This commit is contained in:
		
							parent
							
								
									705359d3a6
								
							
						
					
					
						commit
						2219be9ae3
					
				
					 6 changed files with 44 additions and 10 deletions
				
			
		|  | @ -497,6 +497,11 @@ class API: | |||
|             encrypt = False | ||||
|             bData = request.get_json(force=True) | ||||
|             message = bData['message'] | ||||
| 
 | ||||
|             # Detect if message (block body) is not specified | ||||
|             if type(message) is None: | ||||
|                 return 'failure', 406 | ||||
| 
 | ||||
|             subject = 'temp' | ||||
|             encryptType = '' | ||||
|             sign = True | ||||
|  |  | |||
|  | @ -148,7 +148,7 @@ class OnionrCommunicatorDaemon: | |||
|             self.shutdown = True | ||||
|             pass | ||||
| 
 | ||||
|         logger.info('Goodbye.') | ||||
|         logger.info('Goodbye. (Onionr is cleaning up, and will exit)') | ||||
|         try: | ||||
|             self.service_greenlets | ||||
|         except AttributeError: | ||||
|  |  | |||
|  | @ -686,9 +686,13 @@ class Core: | |||
|             return False | ||||
|         retData = False | ||||
| 
 | ||||
|         if type(data) is None: | ||||
|             raise ValueError('Data cannot be none') | ||||
| 
 | ||||
|         createTime = self._utils.getRoundedEpoch() | ||||
| 
 | ||||
|         # check nonce | ||||
|         print(data) | ||||
|         dataNonce = self._utils.bytesToStr(self._crypto.sha3Hash(data)) | ||||
|         try: | ||||
|             with open(self.dataNonceFile, 'r') as nonces: | ||||
|  |  | |||
|  | @ -18,7 +18,7 @@ | |||
|     along with this program.  If not, see <https://www.gnu.org/licenses/>. | ||||
| ''' | ||||
| 
 | ||||
| import os, time, sys, platform, sqlite3 | ||||
| import os, time, sys, platform, sqlite3, signal | ||||
| from threading import Thread | ||||
| import onionr, api, logger, communicator | ||||
| import onionrevents as events | ||||
|  | @ -84,9 +84,12 @@ def daemon(o_inst): | |||
|     logger.debug('Started communicator.') | ||||
| 
 | ||||
|     events.event('daemon_start', onionr = o_inst) | ||||
|     try: | ||||
|         while True: | ||||
|     while True: | ||||
|         try: | ||||
|             time.sleep(3) | ||||
|         except KeyboardInterrupt: | ||||
|             o_inst.communicatorInst.shutdown = True | ||||
|         finally: | ||||
|             # Debug to print out used FDs (regular and net) | ||||
|             #proc = psutil.Process() | ||||
|             #print('api-files:',proc.open_files(), len(psutil.net_connections())) | ||||
|  | @ -95,16 +98,19 @@ def daemon(o_inst): | |||
|                 break | ||||
|             if o_inst.killed: | ||||
|                 break # Break out if sigterm for clean exit | ||||
|     except KeyboardInterrupt: | ||||
|         pass | ||||
|     finally: | ||||
|         o_inst.onionrCore.daemonQueueAdd('shutdown') | ||||
|         o_inst.onionrUtils.localCommand('shutdown') | ||||
| 
 | ||||
|     signal.signal(signal.SIGINT, _ignore_sigint) | ||||
|     o_inst.onionrCore.daemonQueueAdd('shutdown') | ||||
|     o_inst.onionrUtils.localCommand('shutdown') | ||||
| 
 | ||||
|     net.killTor() | ||||
|     time.sleep(3) | ||||
|     o_inst.deleteRunFiles() | ||||
|     return | ||||
| 
 | ||||
| def _ignore_sigint(sig, frame): | ||||
|     return | ||||
| 
 | ||||
| def kill_daemon(o_inst): | ||||
|     ''' | ||||
|         Shutdown the Onionr daemon | ||||
|  |  | |||
|  | @ -6,6 +6,9 @@ newPostForm = document.getElementById('addMsg') | |||
| 
 | ||||
| function appendMessages(msg){ | ||||
|     var humanDate = new Date(0) | ||||
|     if (msg.length == 0){ | ||||
|         return | ||||
|     } | ||||
|     var msg = JSON.parse(msg) | ||||
|     var dateEl = document.createElement('span') | ||||
|     var el = document.createElement('div') | ||||
|  | @ -46,5 +49,21 @@ document.getElementById('refreshFeed').onclick = function(){ | |||
| } | ||||
| 
 | ||||
| newPostForm.onsubmit = function(){ | ||||
|     var message = document.getElementById('newMsgText').value | ||||
|     var postData = {'message': message, 'type': 'txt', 'encrypt': false} | ||||
|     postData = JSON.stringify(postData) | ||||
|     newPostForm.style.display = 'none' | ||||
|     fetch('/insertblock', { | ||||
|         method: 'POST', | ||||
|         body: postData, | ||||
|         headers: { | ||||
|           "content-type": "application/json", | ||||
|           "token": webpass | ||||
|         }}) | ||||
|     .then((resp) => resp.text()) // Transform the data into json
 | ||||
|     .then(function(data) { | ||||
|         newPostForm.style.display = 'block' | ||||
|         alert('Queued for submission!') | ||||
|       }) | ||||
|     return false | ||||
| } | ||||
|  | @ -16,7 +16,7 @@ | |||
|             Anonymous message board | ||||
|         </p> | ||||
|         <form method='POST' action='/' id='addMsg'> | ||||
|             <textarea name='newMsgText' rows=10 cols=50 required minlength="2"></textarea> | ||||
|             <textarea id='newMsgText' name='newMsgText' rows=10 cols=50 required minlength="2"></textarea> | ||||
|             <br><br> | ||||
|             <input class='btn successBtn' value='Post' type='submit'> | ||||
|         </form> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue