Bug:Fix file validation issue
[vnfsdk/refrepo.git] / vnfmarket / src / main / webapp / vnfmarket / node_modules / socket.io / lib / transports / flashsocket.js
1 /*!
2  * socket.io-node
3  * Copyright(c) 2011 LearnBoost <dev@learnboost.com>
4  * MIT Licensed
5  */
6
7 /**
8  * Module requirements.
9  */
10 var WebSocket = require('./websocket');
11
12 /**
13  * Export the constructor.
14  */
15
16 exports = module.exports = FlashSocket;
17
18 /**
19  * The FlashSocket transport is just a proxy
20  * for WebSocket connections.
21  *
22  * @api public
23  */
24  
25 function FlashSocket (mng, data, req) {
26   return WebSocket.call(this, mng, data, req);
27 }
28
29 /**
30  * Inherits from WebSocket.
31  */
32
33 FlashSocket.prototype.__proto__ = WebSocket.prototype;
34
35 /**
36  * Transport name
37  *
38  * @api public
39  */
40
41 FlashSocket.prototype.name = 'flashsocket';
42
43 /**
44  * Listens for new configuration changes of the Manager
45  * this way we can enable and disable the flash server.
46  *
47  * @param {Manager} Manager instance.
48  * @api private
49  */
50
51
52 FlashSocket.init = function (manager) {
53   var server;
54   function create () {
55
56     // Drop out immediately if the user has
57     // disabled the flash policy server
58     if (!manager.get('flash policy server')) {
59       return;
60     }
61
62     server = require('policyfile').createServer({ 
63       log: function(msg){
64         manager.log.info(msg);
65       }
66     }, manager.get('origins'));
67
68     server.on('close', function (e) {
69       server = null;
70     });
71
72     server.listen(manager.get('flash policy port'), manager.server);
73
74     manager.flashPolicyServer = server;
75   }
76
77   // listen for origin changes, so we can update the server
78   manager.on('set:origins', function (value, key) {
79     if (!server) return;
80
81     // update the origins and compile a new response buffer
82     server.origins = Array.isArray(value) ? value : [value];
83     server.compile();
84   });
85
86   // destory the server and create a new server
87   manager.on('set:flash policy port', function (value, key) {
88     var transports = manager.get('transports');
89     if (~transports.indexOf('flashsocket')) {
90       if (server) {
91         if (server.port === value) return;
92         // destroy the server and rebuild it on a new port
93         try {
94           server.close();
95         }
96         catch (e) { /* ignore exception. could e.g. be that the server isn't started yet */ }
97       }
98       create();
99     }
100   });
101
102   // create or destroy the server
103   manager.on('set:flash policy server', function (value, key) {
104     var transports = manager.get('transports');
105     if (~transports.indexOf('flashsocket')) {
106       if (server && !value) {
107         // destroy the server
108         try {
109           server.close();
110         }
111         catch (e) { /* ignore exception. could e.g. be that the server isn't started yet */ }
112       }
113     } else if (!server && value) {
114       // create the server
115       create();
116     }
117   });
118
119   // only start the server
120   manager.on('set:transports', function (value, key){
121     if (!server && ~manager.get('transports').indexOf('flashsocket')) {
122       create();
123     }
124   });
125   // check if we need to initialize at start
126   if (~manager.get('transports').indexOf('flashsocket')){
127     create();
128   }
129 };