lib/libgss.rb in libgss-0.6.0 vs lib/libgss.rb in libgss-0.6.1
- old
+ new
@@ -14,6 +14,25 @@
class << self
attr_accessor :use_oauth_gem
end
self.use_oauth_gem = (ENV["USE_OAUTH_GEM"] =~ /\Atrue\Z|\Aon\Z/i)
+
+ MAX_RETRY_COUNT = (ENV["LIBGSS_MAX_RETRY_COUNT"] || 10).to_i
+
+ class << self
+
+ def with_retry(name)
+ retry_count = 0
+ begin
+ return yield
+ rescue OpenSSL::SSL::SSLError => e
+ $stderr.puts("retrying #{name} [#{e.class.name}] #{e.message}")
+ sleep(0.2)
+ retry_count += 1
+ retry if retry_count <= MAX_RETRY_COUNT
+ raise e
+ end
+ end
+
+ end
end