From a9c109029d7a71123b26718a447b41bec1ed8e1f Mon Sep 17 00:00:00 2001 From: kissrobber Date: Fri, 9 Feb 2024 14:56:10 +0900 Subject: [PATCH] prefers IPv6 --- lib/mandrill.rb | 20 +++++++++++++++++++- mandrill-api.gemspec | 2 +- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/lib/mandrill.rb b/lib/mandrill.rb index d661e52..fa306b0 100644 --- a/lib/mandrill.rb +++ b/lib/mandrill.rb @@ -14,7 +14,25 @@ def initialize(apikey=nil, debug=false) @host = 'https://mandrillapp.com' @path = '/api/1.0/' - @session = Excon.new @host + # IPv6を優先して使うようにする + prefers_ipv6_dns_resolver = Class.new(Resolv::DNS) do + def each_address(name) + return super unless use_ipv6? + addresses = [] + super do |address| + if Resolv::IPv6::Regex =~ address + addresses.unshift address + else + addresses << resource.address + end + end + addresses.each {|address| yield address} + true + end + end.new + resolver = Resolv.new([Resolv::Hosts.new, prefers_ipv6_dns_resolver]) + + @session = Excon.new @host, resolv_resolver: resolver @debug = debug if not apikey diff --git a/mandrill-api.gemspec b/mandrill-api.gemspec index d4c7e85..3ec2c12 100644 --- a/mandrill-api.gemspec +++ b/mandrill-api.gemspec @@ -8,5 +8,5 @@ Gem::Specification.new do |s| s.files = ['lib/mandrill.rb', 'lib/mandrill/api.rb', 'lib/mandrill/errors.rb'] s.homepage = 'https://bitbucket.org/mailchimp/mandrill-api-ruby/' s.add_dependency 'json', '>= 1.7.7' - s.add_dependency 'excon', '>= 0.16.0', '< 1.0' + s.add_dependency 'excon', '>= 0.104.0', '< 1.0' end