mirror of https://gitee.com/openkylin/libvirt.git
Mask out flags used internally for virSecretGetValue
Add a VIR_SECRET_GET_VALUE_INTERNAL_CALL flag value, replacing the originally separate libvirt_internal_call parameter. The flag is used to differentiate external virSecretGetValue() calls from internal calls by libvirt drivers that need to use the secret even if it is private. * src/libvirt_internal.h Remove VIR_DOMAIN_XML_FLAGS_MASK * src/driver.h Add VIR_SECRET_GET_VALUE_FLAGS_MASK constant and VIR_SECRET_GET_VALUE_INTERNAL_CALL. Re-add the VIR_DOMAIN_XML_FLAGS_MASK constant * src/libvirt.c (virSecretGetValue): Don't allow the user to specify internal flags.
This commit is contained in:
parent
fcd4e26943
commit
ecc5c82985
16
src/driver.h
16
src/driver.h
|
@ -802,6 +802,22 @@ struct _virDeviceMonitor {
|
|||
virDrvNodeDeviceDestroy deviceDestroy;
|
||||
};
|
||||
|
||||
/* bits 16 and above of virDomainXMLFlags are for internal use */
|
||||
#define VIR_DOMAIN_XML_FLAGS_MASK 0xffff
|
||||
|
||||
/* Bits 16 and above of virSecretGetValue flags are for internal use */
|
||||
#define VIR_SECRET_GET_VALUE_FLAGS_MASK 0xffff
|
||||
|
||||
enum {
|
||||
/* This getValue call is inside libvirt, override the "private" flag.
|
||||
This flag can not be set by outside callers. */
|
||||
VIR_SECRET_GET_VALUE_INTERNAL_CALL = 1 << 16
|
||||
};
|
||||
|
||||
/* Make sure ... INTERNAL_CALL can not be set by the caller */
|
||||
verify((VIR_SECRET_GET_VALUE_INTERNAL_CALL &
|
||||
VIR_SECRET_GET_VALUE_FLAGS_MASK) == 0);
|
||||
|
||||
typedef virSecretPtr
|
||||
(*virDrvSecretLookupByUUIDString) (virConnectPtr conn,
|
||||
const char *uuid);
|
||||
|
|
|
@ -9066,6 +9066,8 @@ virSecretGetValue(virSecretPtr secret, size_t *value_size, unsigned int flags)
|
|||
goto error;
|
||||
}
|
||||
|
||||
flags &= VIR_SECRET_GET_VALUE_FLAGS_MASK;
|
||||
|
||||
if (conn->secretDriver != NULL && conn->secretDriver->getValue != NULL) {
|
||||
unsigned char *ret;
|
||||
|
||||
|
|
|
@ -24,9 +24,6 @@
|
|||
|
||||
#include "internal.h"
|
||||
|
||||
/* bits 16 and above of virDomainXMLFlags are for internal use */
|
||||
#define VIR_DOMAIN_XML_FLAGS_MASK 0xffff
|
||||
|
||||
#ifdef WITH_LIBVIRTD
|
||||
int virStateInitialize(int privileged);
|
||||
int virStateCleanup(void);
|
||||
|
|
Loading…
Reference in New Issue