|  | @@ -195,7 +195,7 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
 | 
	
		
			
				|  |  |  	// 1 bytes reserved
 | 
	
		
			
				|  |  |  	request.Command = protocol.RequestCommand(buffer.Byte(37))
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	invalidRequest := false
 | 
	
		
			
				|  |  | +	var invalidRequestErr error
 | 
	
		
			
				|  |  |  	switch request.Command {
 | 
	
		
			
				|  |  |  	case protocol.RequestCommandMux:
 | 
	
		
			
				|  |  |  		request.Address = net.DomainAddress("v1.mux.cool")
 | 
	
	
		
			
				|  | @@ -205,18 +205,17 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
 | 
	
		
			
				|  |  |  			request.Address = addr
 | 
	
		
			
				|  |  |  			request.Port = port
 | 
	
		
			
				|  |  |  		} else {
 | 
	
		
			
				|  |  | -			invalidRequest = true
 | 
	
		
			
				|  |  | -			newError("failed to read address").Base(err).WriteToLog()
 | 
	
		
			
				|  |  | +			invalidRequestErr = newError("invalid address").Base(err)
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	default:
 | 
	
		
			
				|  |  | -		invalidRequest = true
 | 
	
		
			
				|  |  | +		invalidRequestErr = newError("invalid request command: ", request.Command)
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if invalidRequest {
 | 
	
		
			
				|  |  | +	if invalidRequestErr != nil {
 | 
	
		
			
				|  |  |  		randomLen := dice.Roll(32) + 1
 | 
	
		
			
				|  |  |  		// Read random number of bytes for prevent detection.
 | 
	
		
			
				|  |  |  		buffer.AppendSupplier(buf.ReadFullFrom(decryptor, randomLen))
 | 
	
		
			
				|  |  | -		return nil, newError("invalid request")
 | 
	
		
			
				|  |  | +		return nil, invalidRequestErr
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	if padingLen > 0 {
 |