'Spawn bi-directional vnc proxy.'

def proxy_connection(self, req, connect_info, start_response):

    sockets = {}
    t0 = utils.spawn(self.handshake, req, connect_info, sockets)
    t0.wait()
    if ((not sockets.get('client')) or (not sockets.get('server'))):
        LOG.info(_LI('Invalid    request:    %s'), req)
        start_response('400    Invalid    Request', [('content-type', 'text/html')])
        return 'Invalid    Request'
    client = sockets['client']
    server = sockets['server']
    t1 = utils.spawn(self.one_way_proxy, client, server)
    t2 = utils.spawn(self.one_way_proxy, server, client)
    t1.wait()
    t2.wait()
    server.close()
    client.close()
