bhyve: probe for VNC password capability

Introduces the BHYVE_CAP_VNC_PASSWORD capability, which is probed by
parsing the error message from the bhyve command. When it is not
supported, bhyve -s 0,fbuf,password= will return an error message.

Signed-off-by: Fabian Freyer <fabian.freyer@physik.tu-berlin.de>
Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
This commit is contained in:
Fabian Freyer 2020-05-06 13:35:54 +00:00 committed by Roman Bogorodskiy
parent 2968e5ff3a
commit e3a520797f
2 changed files with 16 additions and 1 deletions

View File

@ -3,7 +3,7 @@
*
* Copyright (C) 2014 Roman Bogorodskiy
* Copyright (C) 2014 Semihalf
* Copyright (C) 2016 Fabian Freyer
* Copyright (C) 2020 Fabian Freyer
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@ -334,6 +334,17 @@ bhyveProbeCapsSoundHda(unsigned int *caps, char *binary)
}
static int
bhyveProbeCapsVNCPassword(unsigned int *caps, char *binary)
{
return bhyveProbeCapsDeviceHelper(caps, binary,
"-s",
"0,fbuf,password=",
"Invalid fbuf emulation \"password\"",
BHYVE_CAP_VNC_PASSWORD);
}
int
virBhyveProbeCaps(unsigned int *caps)
{
@ -365,6 +376,9 @@ virBhyveProbeCaps(unsigned int *caps)
if ((ret = bhyveProbeCapsSoundHda(caps, binary)))
goto out;
if ((ret = bhyveProbeCapsVNCPassword(caps, binary)))
goto out;
out:
VIR_FREE(binary);
return ret;

View File

@ -50,6 +50,7 @@ typedef enum {
BHYVE_CAP_XHCI = 1 << 5,
BHYVE_CAP_CPUTOPOLOGY = 1 << 6,
BHYVE_CAP_SOUND_HDA = 1 << 7,
BHYVE_CAP_VNC_PASSWORD = 1 << 8,
} virBhyveCapsFlags;
int virBhyveProbeGrubCaps(virBhyveGrubCapsFlags *caps);