|  | @@ -1252,6 +1252,18 @@ handle_control_signal(control_connection_t *conn, uint32_t len,
 | 
	
		
			
				|  |  |        return 0;
 | 
	
		
			
				|  |  |      } else {
 | 
	
		
			
				|  |  |        sig = (uint8_t)body[0];
 | 
	
		
			
				|  |  | +      switch (sig)
 | 
	
		
			
				|  |  | +      {
 | 
	
		
			
				|  |  | +      case 1: sig = SIGHUP; break;
 | 
	
		
			
				|  |  | +      case 2: sig = SIGINT; break;
 | 
	
		
			
				|  |  | +      case 10: sig = SIGUSR1; break;
 | 
	
		
			
				|  |  | +      case 12: sig = SIGUSR2; break;
 | 
	
		
			
				|  |  | +      case 15: sig = SIGTERM; break;
 | 
	
		
			
				|  |  | +      case SIGNEWNYM: break;
 | 
	
		
			
				|  |  | +      default:
 | 
	
		
			
				|  |  | +        send_control0_error(conn, ERR_SYNTAX, "Unrecognized signal number.");
 | 
	
		
			
				|  |  | +        return 0;
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |    } else {
 | 
	
		
			
				|  |  |      int n = 0;
 | 
	
	
		
			
				|  | @@ -1281,17 +1293,9 @@ handle_control_signal(control_connection_t *conn, uint32_t len,
 | 
	
		
			
				|  |  |        return 0;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  if (!control_signal_check(sig)) {
 | 
	
		
			
				|  |  | -    if (STATE_IS_V0(conn->_base.state))
 | 
	
		
			
				|  |  | -      send_control0_error(conn, ERR_SYNTAX, "Unrecognized signal number.");
 | 
	
		
			
				|  |  | -    else
 | 
	
		
			
				|  |  | -      connection_write_str_to_buf("551 Unable to act on signal\r\n",
 | 
	
		
			
				|  |  | -                                  conn);
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | -    /* Send DONE first, in case the signal makes us shut down. */
 | 
	
		
			
				|  |  | -    send_control_done(conn);
 | 
	
		
			
				|  |  | -    control_signal_act(sig);
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | +  /* Send DONE first, in case the signal makes us shut down. */
 | 
	
		
			
				|  |  | +  send_control_done(conn);
 | 
	
		
			
				|  |  | +  control_signal_act(sig);
 | 
	
		
			
				|  |  |    return 0;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |