| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -124,7 +124,7 @@ class DbTransfer(object): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								port = row['port'] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								passwd = common.to_bytes(row['passwd']) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								cfg = {} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								cfg = {'password': passwd} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								for name in ['method', 'obfs', 'protocol']: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if name in row: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										cfg[name] = row[name] | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -139,12 +139,25 @@ class DbTransfer(object): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									if not allow: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										logging.info('db stop server at port [%s]' % (port,)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										ServerPool.get_instance().cb_del_server(port) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									elif (port in ServerPool.get_instance().tcp_servers_pool and ServerPool.get_instance().tcp_servers_pool[port]._config['password'] != passwd) \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										or (port in ServerPool.get_instance().tcp_ipv6_servers_pool and ServerPool.get_instance().tcp_ipv6_servers_pool[port]._config['password'] != passwd): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										#password changed | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										logging.info('db stop server at port [%s] reason: password changed' % (port,)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										ServerPool.get_instance().cb_del_server(port) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										new_servers[port] = (passwd, cfg) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									else: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										cfgchange = False | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (port in ServerPool.get_instance().tcp_servers_pool): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											relay = ServerPool.get_instance().tcp_servers_pool[port] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											for name in ['password', 'method', 'obfs', 'protocol']: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												if name in cfg and cfg[name] != relay._config[name]: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
													cfgchange = True | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
													break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if (port in ServerPool.get_instance().tcp_ipv6_servers_pool): | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											relay = ServerPool.get_instance().tcp_ipv6_servers_pool[port] | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											for name in ['password', 'method', 'obfs', 'protocol']: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
												if name in cfg and cfg[name] != relay._config[name]: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
													cfgchange = True | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
													break; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										#config changed | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
										if cfgchange: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											logging.info('db stop server at port [%s] reason: config changed: %s' % (port, cfg)) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											ServerPool.get_instance().cb_del_server(port) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
											new_servers[port] = (passwd, cfg) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								elif allow and ServerPool.get_instance().server_run_status(port) is False: | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									#new_servers[port] = passwd | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |