| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1840,8 +1840,8 @@ static void *proxy_recv(void *arg) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (proxy_alive(ckp, si, proxi, cs, false, epfd)) { | 
					 | 
					 | 
					 | 
						if (proxy_alive(ckp, si, proxi, cs, false, epfd)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							LOGWARNING("Proxy %ld:%s connection established", | 
					 | 
					 | 
					 | 
							LOGWARNING("Proxy %d:%s connection established", | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								   proxi->id, proxi->si->url); | 
					 | 
					 | 
					 | 
								   proxi->low_id, proxi->si->url); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						alive = proxi->alive; | 
					 | 
					 | 
					 | 
						alive = proxi->alive; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						reconnect_generator(ckp); | 
					 | 
					 | 
					 | 
						reconnect_generator(ckp); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1858,8 +1858,8 @@ static void *proxy_recv(void *arg) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								while (!subproxies_alive(proxi)) { | 
					 | 
					 | 
					 | 
								while (!subproxies_alive(proxi)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									reconnect_proxy(proxi); | 
					 | 
					 | 
					 | 
									reconnect_proxy(proxi); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									if (alive) { | 
					 | 
					 | 
					 | 
									if (alive) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										LOGWARNING("Proxy %ld:%s failed, attempting reconnect", | 
					 | 
					 | 
					 | 
										LOGWARNING("Proxy %d:%s failed, attempting reconnect", | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											   proxi->id, proxi->si->url); | 
					 | 
					 | 
					 | 
											   proxi->low_id, proxi->si->url); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										alive = false; | 
					 | 
					 | 
					 | 
										alive = false; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										reconnect_generator(ckp); | 
					 | 
					 | 
					 | 
										reconnect_generator(ckp); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									} | 
					 | 
					 | 
					 | 
									} | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -1870,7 +1870,7 @@ static void *proxy_recv(void *arg) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							/* Wait 30 seconds before declaring this upstream pool alive
 | 
					 | 
					 | 
					 | 
							/* Wait 30 seconds before declaring this upstream pool alive
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							 * to prevent switching to unstable pools. */ | 
					 | 
					 | 
					 | 
							 * to prevent switching to unstable pools. */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (!alive && (!current_proxy(gdata) || time(NULL) - proxi->reconnect_time > 30)) { | 
					 | 
					 | 
					 | 
							if (!alive && (!current_proxy(gdata) || time(NULL) - proxi->reconnect_time > 30)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								LOGWARNING("Proxy %ld:%s recovered", proxi->id, proxi->si->url); | 
					 | 
					 | 
					 | 
								LOGWARNING("Proxy %d:%s recovered", proxi->low_id, proxi->si->url); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								proxi->reconnect_time = 0; | 
					 | 
					 | 
					 | 
								proxi->reconnect_time = 0; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								reconnect_generator(ckp); | 
					 | 
					 | 
					 | 
								reconnect_generator(ckp); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								alive = true; | 
					 | 
					 | 
					 | 
								alive = true; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -1920,8 +1920,8 @@ static void *proxy_recv(void *arg) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									 * pool is up */ | 
					 | 
					 | 
					 | 
									 * pool is up */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									disable_subproxy(gdata, proxi, subproxy); | 
					 | 
					 | 
					 | 
									disable_subproxy(gdata, proxi, subproxy); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									if (parent_proxy(subproxy)) { | 
					 | 
					 | 
					 | 
									if (parent_proxy(subproxy)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										LOGWARNING("Proxy %ld:%s reconnect issue, dropping existing connection", | 
					 | 
					 | 
					 | 
										LOGWARNING("Proxy %d:%s reconnect issue, dropping existing connection", | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
											   subproxy->id, subproxy->si->url); | 
					 | 
					 | 
					 | 
											   subproxy->low_id, subproxy->si->url); | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										break; | 
					 | 
					 | 
					 | 
										break; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
									} else | 
					 | 
					 | 
					 | 
									} else | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
										recruit_subproxy(proxi); | 
					 | 
					 | 
					 | 
										recruit_subproxy(proxi); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |