| 
					
				 | 
			
			
				@@ -100,6 +100,22 @@ class Server: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             self._working = False  # Reset peer_is_sender 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    def run(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loop = asyncio.get_event_loop() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logging.info("Starting file bridging server...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            loop.run_until_complete(self.run_server()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        except KeyboardInterrupt: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logging.info("Stopping...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            # Cancel connection tasks (they should be done but are pending) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for task in asyncio.all_tasks(loop): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                task.cancel() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            loop.run_until_complete( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                self.server.wait_closed() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loop.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        logging.info("Stooped.") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async def run_server(self): 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         self._server = await asyncio.start_server( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             client_connected_cb=self.connect, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -174,14 +190,8 @@ if __name__ == '__main__': 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             logging.info("Invalid port. Enter a valid port number!") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _port = None 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    loop = asyncio.get_event_loop() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     server = Server( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         host=_host, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         port=_port, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    logging.info("Starting file bridging server...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    try: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        loop.run_until_complete(server.run_server()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    except KeyboardInterrupt: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        logging.info("Stopping...") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    loop.close() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    server.run() 
			 |