| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -107,6 +107,7 @@ struct proxy_instance { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						bool disabled; /* Subproxy no longer to be used */ | 
					 | 
					 | 
					 | 
						bool disabled; /* Subproxy no longer to be used */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						bool reconnect; /* We need to drop and reconnect */ | 
					 | 
					 | 
					 | 
						bool reconnect; /* We need to drop and reconnect */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						bool reconnecting; /* Testing in progress */ | 
					 | 
					 | 
					 | 
						bool reconnecting; /* Testing in progress */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						bool recruiting; /* Recruiting in progress */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						bool alive; | 
					 | 
					 | 
					 | 
						bool alive; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						mutex_t notify_lock; | 
					 | 
					 | 
					 | 
						mutex_t notify_lock; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1698,6 +1699,7 @@ static void *proxy_recruit(void *arg) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							store_proxy(gdata, proxy); | 
					 | 
					 | 
					 | 
							store_proxy(gdata, proxy); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else | 
					 | 
					 | 
					 | 
						} else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							add_subproxy(parent, proxy); | 
					 | 
					 | 
					 | 
							add_subproxy(parent, proxy); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						parent->recruiting = false; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						return NULL; | 
					 | 
					 | 
					 | 
						return NULL; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1705,6 +1707,9 @@ static void recruit_subproxy(proxy_instance_t *proxi) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{ | 
					 | 
					 | 
					 | 
					{ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						pthread_t pth; | 
					 | 
					 | 
					 | 
						pthread_t pth; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						if (proxi->recruiting) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						proxi->recruiting = true; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						create_pthread(&pth, proxy_recruit, proxi); | 
					 | 
					 | 
					 | 
						create_pthread(&pth, proxy_recruit, proxi); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					} | 
					 | 
					 | 
					 | 
					} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |