[libvirt] [PATCH] Parallels: Add VNC hostname setup
Dmitry Guryanov
dguryanov at parallels.com
Wed Dec 24 12:39:46 UTC 2014
On Friday 19 December 2014 16:41:03 Alexander Burluka wrote:
> Add missing VNC setup via Parallels SDK.
> Parallels Cloud Server starts one VNC server per domain,
> so we could process only one VNC server definition.
> Network-based listening currently is unimplemented.
Seems good to me, ACK.
>
> Signed-off-by: Alexander Burluka <aburluka at parallels.com>
> ---
> src/parallels/parallels_sdk.c | 25 ++++++++++++++++++++++++-
> 1 files changed, 24 insertions(+), 1 deletions(-)
>
> diff --git a/src/parallels/parallels_sdk.c b/src/parallels/parallels_sdk.c
> index 83a28b7..8394646 100644
> --- a/src/parallels/parallels_sdk.c
> +++ b/src/parallels/parallels_sdk.c
> @@ -1929,7 +1929,7 @@ static int
> prlsdkCheckGraphicsUnsupportedParams(virDomainDefPtr def) if
> (def->ngraphics == 0)
> return 0;
>
> - if (def->ngraphics >1) {
> + if (def->ngraphics > 1) {
> virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> _("Parallels Cloud Server supports only "
> "one VNC per domain."));
> @@ -1988,6 +1988,20 @@ static int
> prlsdkCheckGraphicsUnsupportedParams(virDomainDefPtr def) return -1;
> }
>
> + if (gr->nListens > 1) {
> + virReportError(VIR_ERR_INVALID_ARG, "%s",
> + _("Parallels driver doesn't support more than "
> + "one listening VNC server per domain"));
> + return -1;
> + }
> +
> + if (gr->nListens == 1 &&
> + virDomainGraphicsListenGetType(gr, 0) !=
> VIR_DOMAIN_GRAPHICS_LISTEN_TYPE_ADDRESS) { +
> virReportError(VIR_ERR_INVALID_ARG, "%s",
> + _("Parallels driver supports only address-based VNC
> listening")); + return -1;
> + }
> +
> return 0;
> }
>
> @@ -2286,6 +2300,7 @@ static int prlsdkApplyGraphicsParams(PRL_HANDLE
> sdkdom, virDomainDefPtr def) virDomainGraphicsDefPtr gr;
> PRL_RESULT pret;
> int ret = -1;
> + const char *listenAddr = NULL;
>
> if (prlsdkCheckGraphicsUnsupportedParams(def))
> return -1;
> @@ -2306,6 +2321,14 @@ static int prlsdkApplyGraphicsParams(PRL_HANDLE
> sdkdom, virDomainDefPtr def) prlsdkCheckRetGoto(pret, cleanup);
> }
>
> + if (gr->nListens == 1) {
> + listenAddr = virDomainGraphicsListenGetAddress(gr, 0);
> + if (!listenAddr)
> + goto cleanup;
> + pret = PrlVmCfg_SetVNCHostName(sdkdom, listenAddr);
> + prlsdkCheckRetGoto(pret, cleanup);
> + }
> +
> ret = 0;
> cleanup:
> return ret;
--
Dmitry Guryanov
More information about the libvir-list
mailing list