# File lib/feedzirra/feed.rb, line 261
    def self.add_feed_to_multi(multi, feed, feed_queue, responses, options) 
      easy = Curl::Easy.new(feed.feed_url) do |curl|
        curl.headers["User-Agent"]        = (options[:user_agent] || USER_AGENT)
        curl.headers["If-Modified-Since"] = feed.last_modified.httpdate if feed.last_modified
        curl.headers["If-None-Match"]     = feed.etag if feed.etag
        curl.userpwd = options[:http_authentication].join(':') if options.has_key?(:http_authentication)
        curl.follow_location = true

        curl.max_redirects = options[:max_redirects] if options[:max_redirects]
        curl.timeout = options[:timeout] if options[:timeout]

        curl.on_success do |c|
          begin
            add_feed_to_multi(multi, feed_queue.shift, feed_queue, responses, options) unless feed_queue.empty?
            updated_feed = Feed.parse(c.body_str)
            updated_feed.feed_url = c.last_effective_url
            updated_feed.etag = etag_from_header(c.header_str)
            updated_feed.last_modified = last_modified_from_header(c.header_str)
            feed.update_from_feed(updated_feed)
            responses[feed.feed_url] = feed
            options[:on_success].call(feed) if options.has_key?(:on_success)
          rescue Exception => e
            options[:on_failure].call(feed, c.response_code, c.header_str, c.body_str) if options.has_key?(:on_failure)
          end
        end

        curl.on_failure do |c, err|
          add_feed_to_multi(multi, feed_queue.shift, feed_queue, responses, options) unless feed_queue.empty?
          response_code = c.response_code
          if response_code == 304 # it's not modified. this isn't an error condition
            responses[feed.feed_url] = feed
            options[:on_success].call(feed) if options.has_key?(:on_success)
          else
            responses[feed.url] = c.response_code
            options[:on_failure].call(feed, c.response_code, c.header_str, c.body_str) if options.has_key?(:on_failure)
          end
        end
      end
      multi.add(easy)
    end