Fix uncaught ActiveRecord::StatementInvalid in Mastodon::IpBlocksCLI (#24861)
				
					
				
			This commit is contained in:
		@@ -36,6 +36,12 @@ module Mastodon
 | 
			
		||||
      failed    = 0
 | 
			
		||||
 | 
			
		||||
      addresses.each do |address|
 | 
			
		||||
        unless valid_ip_address?(address)
 | 
			
		||||
          say("#{address} is invalid", :red)
 | 
			
		||||
          failed += 1
 | 
			
		||||
          next
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        ip_block = IpBlock.find_by(ip: address)
 | 
			
		||||
 | 
			
		||||
        if ip_block.present? && !options[:force]
 | 
			
		||||
@@ -79,6 +85,12 @@ module Mastodon
 | 
			
		||||
      skipped   = 0
 | 
			
		||||
 | 
			
		||||
      addresses.each do |address|
 | 
			
		||||
        unless valid_ip_address?(address)
 | 
			
		||||
          say("#{address} is invalid", :yellow)
 | 
			
		||||
          skipped += 1
 | 
			
		||||
          next
 | 
			
		||||
        end
 | 
			
		||||
 | 
			
		||||
        ip_blocks = if options[:force]
 | 
			
		||||
                      IpBlock.where('ip >>= ?', address)
 | 
			
		||||
                    else
 | 
			
		||||
@@ -126,5 +138,12 @@ module Mastodon
 | 
			
		||||
        :red
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    def valid_ip_address?(ip_address)
 | 
			
		||||
      IPAddr.new(ip_address)
 | 
			
		||||
      true
 | 
			
		||||
    rescue IPAddr::InvalidAddressError
 | 
			
		||||
      false
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user