| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -66,6 +66,9 @@ struct client_instance { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						/* Linked list of shares in redirector mode.*/ | 
					 | 
					 | 
					 | 
						/* Linked list of shares in redirector mode.*/ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						share_t *shares; | 
					 | 
					 | 
					 | 
						share_t *shares; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/* Has this client already been told to redirect */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						bool redirected; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						/* Time this client started blocking, 0 when not blocked */ | 
					 | 
					 | 
					 | 
						/* Time this client started blocking, 0 when not blocked */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						time_t blocked_time; | 
					 | 
					 | 
					 | 
						time_t blocked_time; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}; | 
					 | 
					 | 
					 | 
					}; | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -771,6 +774,9 @@ static void redirect_client(ckpool_t *ckp, client_instance_t *client) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						char *buf; | 
					 | 
					 | 
					 | 
						char *buf; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						int num; | 
					 | 
					 | 
					 | 
						int num; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						/* Set the redirected boool to only try redirecting them once */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						client->redirected = true; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						num = add_redirect(ckp, cdata, client); | 
					 | 
					 | 
					 | 
						num = add_redirect(ckp, cdata, client); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						JSON_CPACK(val, "{sosss[ssi]}", "id", json_null(), "method", "client.reconnect", | 
					 | 
					 | 
					 | 
						JSON_CPACK(val, "{sosss[ssi]}", "id", json_null(), "method", "client.reconnect", | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							   "params", ckp->redirecturl[num], ckp->redirectport[num], 0); | 
					 | 
					 | 
					 | 
							   "params", ckp->redirecturl[num], ckp->redirectport[num], 0); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -889,7 +895,7 @@ static void send_client(cdata_t *cdata, const int64_t id, char *buf) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								free(buf); | 
					 | 
					 | 
					 | 
								free(buf); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								return; | 
					 | 
					 | 
					 | 
								return; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (ckp->redirector) | 
					 | 
					 | 
					 | 
							if (ckp->redirector && !client->redirected) | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								test_redirector_shares(ckp, client, buf); | 
					 | 
					 | 
					 | 
								test_redirector_shares(ckp, client, buf); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} | 
					 | 
					 | 
					 | 
						} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |