@@ -167,22 +167,26 @@ def self.internet_available?(filenames, uri, logger)
167167 end
168168 end
169169
170- def self . http_get ( uri , retry_limit , logger , opts = { } )
170+ def self . http_get ( uri , retry_limit , logger , opts = { } , & block )
171171 rich_uri = URI ( uri )
172172 options = opts . merge ( use_ssl : DownloadCache . use_ssl? ( rich_uri ) )
173173 Net ::HTTP . start ( rich_uri . host , rich_uri . port , options ) do |http |
174174 request = Net ::HTTP ::Get . new ( uri )
175- 1 . upto ( retry_limit ) do |try |
176- begin
177- http . request request do |response |
178- if response . code == HTTP_OK || try == retry_limit
179- return yield response
180- end
175+ return retry_http_request ( http , request , retry_limit , logger , &block )
176+ end
177+ end
178+
179+ def self . retry_http_request ( http , request , retry_limit , logger )
180+ 1 . upto ( retry_limit ) do |try |
181+ begin
182+ http . request request do |response |
183+ if response . code == HTTP_OK || try == retry_limit
184+ return yield response
181185 end
182- rescue *HTTP_ERRORS => ex
183- logger . debug { "HTTP get attempt #{ try } of #{ retry_limit } failed: #{ ex } " }
184- raise ex if try == retry_limit
185186 end
187+ rescue *HTTP_ERRORS => ex
188+ logger . debug { "HTTP get attempt #{ try } of #{ retry_limit } failed: #{ ex } " }
189+ raise ex if try == retry_limit
186190 end
187191 end
188192 end
0 commit comments