| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -674,19 +674,6 @@ retry: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						 * so look for them first. */ | 
					 | 
					 | 
					 | 
						 * so look for them first. */ | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						if (likely(buf[0] == '{')) { | 
					 | 
					 | 
					 | 
						if (likely(buf[0] == '{')) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							process_client_msg(cdata, buf); | 
					 | 
					 | 
					 | 
							process_client_msg(cdata, buf); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "ping")) { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							LOGDEBUG("Connector received ping request"); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							send_unix_msg(sockd, "pong"); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "accept")) { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							LOGDEBUG("Connector received accept signal"); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							cdata->accept = true; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "reject")) { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							LOGDEBUG("Connector received reject signal"); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							cdata->accept = false; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "loglevel")) { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							sscanf(buf, "loglevel=%d", &ckp->loglevel); | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "shutdown")) { | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							goto out; | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "dropclient")) { | 
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "dropclient")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							client_instance_t *client; | 
					 | 
					 | 
					 | 
							client_instance_t *client; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -699,12 +686,26 @@ retry: | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							client = ref_client_by_id(cdata, client_id); | 
					 | 
					 | 
					 | 
							client = ref_client_by_id(cdata, client_id); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (unlikely(!client)) { | 
					 | 
					 | 
					 | 
							if (unlikely(!client)) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								LOGINFO("Connector failed to find client id %ld to drop", client_id); | 
					 | 
					 | 
					 | 
								LOGINFO("Connector failed to find client id %ld to drop", client_id); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
								stratifier_drop_client(ckp, client_id); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								goto retry; | 
					 | 
					 | 
					 | 
								goto retry; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							} | 
					 | 
					 | 
					 | 
							} | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ret = drop_client(cdata, client); | 
					 | 
					 | 
					 | 
							ret = drop_client(cdata, client); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							dec_instance_ref(cdata, client); | 
					 | 
					 | 
					 | 
							dec_instance_ref(cdata, client); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							if (ret >= 0) | 
					 | 
					 | 
					 | 
							if (ret >= 0) | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
								LOGINFO("Connector dropped client id: %ld", client_id); | 
					 | 
					 | 
					 | 
								LOGINFO("Connector dropped client id: %ld", client_id); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "ping")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							LOGDEBUG("Connector received ping request"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							send_unix_msg(sockd, "pong"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "accept")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							LOGDEBUG("Connector received accept signal"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							cdata->accept = true; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "reject")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							LOGDEBUG("Connector received reject signal"); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							cdata->accept = false; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "loglevel")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							sscanf(buf, "loglevel=%d", &ckp->loglevel); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "shutdown")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
							goto out; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "passthrough")) { | 
					 | 
					 | 
					 | 
						} else if (cmdmatch(buf, "passthrough")) { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							client_instance_t *client; | 
					 | 
					 | 
					 | 
							client_instance_t *client; | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
  |