diff options
| author | Jimmy Bergman <jimmy@sigint.se> | 2011-06-23 13:34:01 +0200 |
|---|---|---|
| committer | Jimmy Bergman <jimmy@sigint.se> | 2011-06-23 13:34:01 +0200 |
| commit | 3d1c8463d80932ddbe677ea1b8aee357642018a8 (patch) | |
| tree | 15948de511002332e24128573db7b09f0b1b52ba /bin/nova-vncproxy | |
| parent | 51c20f6f85d76bc14f394221a8836d2aac9a1aea (diff) | |
Change so that the flash socket policy server is using eventlet instead of twisted and is running in the same process as the main vnx proxy
Diffstat (limited to 'bin/nova-vncproxy')
| -rwxr-xr-x | bin/nova-vncproxy | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/bin/nova-vncproxy b/bin/nova-vncproxy index 467d1eba3..60e01e7f8 100755 --- a/bin/nova-vncproxy +++ b/bin/nova-vncproxy @@ -39,8 +39,6 @@ from nova import wsgi from nova import version from nova.vnc import auth from nova.vnc import proxy -from twisted.internet import protocol, reactor -from twisted.protocols import basic LOG = logging.getLogger('nova.vnc-proxy') @@ -64,16 +62,16 @@ flags.DEFINE_flag(flags.HelpFlag()) flags.DEFINE_flag(flags.HelpshortFlag()) flags.DEFINE_flag(flags.HelpXMLFlag()) -class FlashSocketPolicyProtocol(basic.LineReceiver): - delimiter = "\0" +def handle_flash_socket_policy(socket): + LOG.info(_("Received connection on flash socket policy port")) - def lineReceived(self, request): - if '<policy-file-request/>' in request: - self.transport.write('<?xml version="1.0"?><cross-domain-policy><allow-access-from domain="*" to-ports="%d" /></cross-domain-policy>' % (FLAGS.vncproxy_port)) - self.transport.loseConnection() - -class FlashSocketPolicyFactory(protocol.ServerFactory): - protocol = FlashSocketPolicyProtocol + fd = socket.makefile('rw') + expected_command = "<policy-file-request/>" + if expected_command in fd.read(len(expected_command)+1): + LOG.info(_("Received valid flash socket policy request")) + fd.write('<?xml version="1.0"?><cross-domain-policy><allow-access-from domain="*" to-ports="%d" /></cross-domain-policy>' % (FLAGS.vncproxy_port)) + fd.flush() + socket.close() if __name__ == "__main__": utils.default_flagfile() @@ -108,11 +106,7 @@ if __name__ == "__main__": service.serve() - flash_socket_policy_pid = os.fork() - if flash_socket_policy_pid == 0: - reactor.listenTCP(843, FlashSocketPolicyFactory()) - reactor.run() - else: - server = wsgi.Server() - server.start(with_auth, FLAGS.vncproxy_port, host=FLAGS.vncproxy_host) - server.wait() + server = wsgi.Server() + server.start(with_auth, FLAGS.vncproxy_port, host=FLAGS.vncproxy_host) + server.start_tcp(handle_flash_socket_policy, 843, host=FLAGS.vncproxy_host) + server.wait() |
