I wrote a multi threaded server for Adobe Flash Policy requests, some background from Adobe:
Since policy files were first introduced, Flash Player has
recognized /crossdomain.xml as a master location for URL policy files. However, prior to version 9,0,115,0,
Flash Player did not recognize a fixed master location for socket policy files.
Flash Player 9,0,115,0 introduces a concept of socket master policy files,
which are served from the fixed TCP port number 843.
If your application currently requires /crossdomain.xml files to work properly while making Socket requests you should pay close attention to this, as of the current latest version of Flash Player your application will STOP working if you do not run a policy server. You need to read this link and take appropriate action.
The servers that Adobe provides are not full featured so I set out to write one, the resulting server can be found on my wiki at http://www.devco.net/pubwiki/FlashPolicyd I will regularly post updates here.
A quick feature list:
- Serves XML files on port 834 using the Adobe protocol
- Multi Threaded for performance, but limited due to Ruby’s green threads, testing did not find this to be a problem though
- Supports logging to a log file, debug mode can be toggled on the fly via Unix signals
- Debugging information such as thread lists can be dumped using Unix signals
- Adjustable frequency of status messages showing amount of connections, problematic ones and current connection counts
The tar ball includes the main daemon, a Red Hat compatible init script, a standard Nagios monitoring script and a Puppet module for installation on a Red Hat machine.
You need just the basic Ruby installed, I suggest Ruby newer than 1.8.1 due to bugs in the Logger class on 1.8.1.
Version 2 can be downloaded at http://www.devco.net/code/flashpolicyd-2.0.tgz