kanaka/noVNC — pull request #307 by mas90 (2013-09-28 18:50:21+00:00)
Title: Implement XVP authentication and extensions

XVP (a management front-end for XenServer and Xen Cloud Platform virtualisation platforms, including a VNC proxy for accessing virtual machines' consoles) uses some extensions to the RFB protocol:

* A security type (22) which allows the specification of a username and target (i.e. virtual machine identifier) as well as a password
* A message type (250) to allow the client to request shutdown, reboot or reset of the associated virtual machine
* A pseudo-encoding (-309) to signal that the client is aware of these extensions

These extensions are defined in http://www.xvpsource.org/rfb-extensions.html .

My implementation of the XVP authentication scheme currently allows the the username and target to be specified as part of the password using a configurable separator (default "@" to match XVP conventions), e.g. password="username@target@real_password". I did it this way to avoid changing the connect() API. If you'd rather use a different API to connect to XVP hosts, I'm happy to implement that instead.

I've also updated both example UIs to show Shutdown, Reboot and Reset buttons when connected to an XVP host.