Page MenuHomePhorge

AphlictFlashPolicyServer.js
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

AphlictFlashPolicyServer.js

var JX = require('javelin').JX;
var net = require('net');
/**
* Server which handles cross-domain policy requests for Flash.
*
* var server = new AphlictFlashPolicyServer()
* .setAccessPort(9999)
* .start();
*/
JX.install('AphlictFlashPolicyServer', {
members: {
_server: null,
_port: 843,
_accessPort: null,
_debug: null,
setDebugLog : function(log) {
this._debug = log;
return this;
},
setAccessPort : function(port) {
this._accessPort = port;
return this;
},
start: function() {
this._server = net.createServer(JX.bind(this, this._didConnect));
this._server.listen(this._port);
return this;
},
_didConnect: function(socket) {
this._log('<FlashPolicy> Policy Request From %s', socket.remoteAddress);
socket.on('error', JX.bind(this, this._didSocketError, socket));
socket.write(this._getFlashPolicyResponse());
socket.end();
},
_didSocketError: function(socket, error) {
this._log('<FlashPolicy> Socket Error: %s', error);
},
_log: function(pattern) {
this._debug && this._debug.log.apply(this._debug, arguments);
},
_getFlashPolicyResponse: function() {
var policy = [
'<?xml version="1.0"?>',
'<!DOCTYPE cross-domain-policy SYSTEM ' +
'"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">',
'<cross-domain-policy>',
'<allow-access-from domain="*" to-ports="' + this._accessPort + '"/>',
'</cross-domain-policy>'
];
return policy.join("\n") + "\0";
}
}
});

File Metadata

Mime Type
application/javascript
Expires
Sun, May 11, 3:21 AM (1 d, 15 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
98632
Default Alt Text
AphlictFlashPolicyServer.js (1 KB)

Event Timeline