Sha256: 3b9ad1715a6195e2889c9bd8a4abea3cef8459aed4eda985a1333f19c7165fcd

Contents?: true

Size: 1.31 KB

Versions: 9

Compression:

Stored size: 1.31 KB

Contents

# This file file monkeypatches Rainbows! to return a proper SWF policy file.
# Enable this with something like this in your config/rainbows.rb file:
#
#     after_fork do |server, worker|
#       require 'firehose/patches/rainbows'
#     end if ENV['RACK_ENV'] == 'development'
#
# You should only use this in development. It has not been well tested in a
# production environment.
#
# NOTE: This only works if you are using Rainbows! with EventMachine.
#
# Some helpful links:
# http://unicorn.bogomips.org/Unicorn/Configurator.html
# http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html
# http://blog.vokle.com/index.php/2009/06/10/dealing-with-adobe-and-serving-socket-policy-servers-via-nginx-and-10-lines-of-code/

require 'firehose/patches/swf_policy_request'
require 'rainbows'

# Ensure the class already exists so we are overwriting it.
Rainbows::EventMachine::Client

class Rainbows::EventMachine::Client
  include Firehose::Patches::SwfPolicyRequest
  alias_method :receive_data_without_swf_policy, :receive_data
  # Borrowed from: https://github.com/igrigorik/em-websocket/blob/3e7f7d7760cc23b9d1d34fc1c17bab4423b5d11a/lib/em-websocket/connection.rb#L104
  def receive_data(data)
    if handle_swf_policy_request(data)
      return false
    else
      receive_data_without_swf_policy(data)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
firehose-1.2.8 lib/firehose/patches/rainbows.rb
firehose-1.2.7 lib/firehose/patches/rainbows.rb
firehose-1.2.6 lib/firehose/patches/rainbows.rb
firehose-1.2.5 lib/firehose/patches/rainbows.rb
firehose-1.2.4 lib/firehose/patches/rainbows.rb
firehose-1.2.3 lib/firehose/patches/rainbows.rb
firehose-1.2.2 lib/firehose/patches/rainbows.rb
firehose-1.2.1 lib/firehose/patches/rainbows.rb
firehose-1.2.0 lib/firehose/patches/rainbows.rb