util: reject unknown flags, and prefer unsigned flags

Silently ignored flags get in the way of new features that
use those flags.  Also, an upcoming syntax check will favor
unsigned flags.

* src/nodeinfo.h (nodeGetCPUStats, nodeGetMemoryStats): Drop
unused attribute.
* src/interface/netcf_driver.c (interfaceOpenInterface)
(interfaceDefineXML, interfaceCreate, interfaceDestroy): Reject
unknown flags.
* src/network/bridge_driver.c (networkOpenNetwork)
(networkGetXMLDesc): Likewise.
* src/nwfilter/nwfilter_driver.c (nwfilterOpen): Likewise.
* src/secret/secret_driver.c (secretOpen, secretDefineXML)
(secretGetXMLDesc, secretSetValue): Likewise.
* src/util/logging.c (virLogDefineFilter, virLogDefineOutput)
(virLogMessage): Likewise; also use unsigned flags.
* src/util/logging.h (virLogDefineFilter, virLogDefineOutput)
(virLogMessage): Change signature.
* src/util/command.c (virExecWithHook): Likewise.
This commit is contained in:
Eric Blake 2011-07-06 16:29:02 -06:00
parent 01ed9b56d1
commit 833fe8abec
8 changed files with 61 additions and 28 deletions

View File

@ -121,10 +121,12 @@ static struct netcf_if *interfaceDriverGetNetcfIF(struct netcf *ncf, virInterfac
static virDrvOpenStatus interfaceOpenInterface(virConnectPtr conn, static virDrvOpenStatus interfaceOpenInterface(virConnectPtr conn,
virConnectAuthPtr auth ATTRIBUTE_UNUSED, virConnectAuthPtr auth ATTRIBUTE_UNUSED,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
struct interface_driver *driverState; struct interface_driver *driverState;
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
if (VIR_ALLOC(driverState) < 0) if (VIR_ALLOC(driverState) < 0)
{ {
virReportOOMError(); virReportOOMError();
@ -387,7 +389,7 @@ cleanup:
static virInterfacePtr interfaceDefineXML(virConnectPtr conn, static virInterfacePtr interfaceDefineXML(virConnectPtr conn,
const char *xml, const char *xml,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
struct interface_driver *driver = conn->interfacePrivateData; struct interface_driver *driver = conn->interfacePrivateData;
struct netcf_if *iface = NULL; struct netcf_if *iface = NULL;
@ -395,6 +397,8 @@ static virInterfacePtr interfaceDefineXML(virConnectPtr conn,
virInterfaceDefPtr ifacedef = NULL; virInterfaceDefPtr ifacedef = NULL;
virInterfacePtr ret = NULL; virInterfacePtr ret = NULL;
virCheckFlags(0, NULL);
interfaceDriverLock(driver); interfaceDriverLock(driver);
ifacedef = virInterfaceDefParseString(xml); ifacedef = virInterfaceDefParseString(xml);
@ -461,12 +465,14 @@ cleanup:
} }
static int interfaceCreate(virInterfacePtr ifinfo, static int interfaceCreate(virInterfacePtr ifinfo,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
struct interface_driver *driver = ifinfo->conn->interfacePrivateData; struct interface_driver *driver = ifinfo->conn->interfacePrivateData;
struct netcf_if *iface = NULL; struct netcf_if *iface = NULL;
int ret = -1; int ret = -1;
virCheckFlags(0, -1);
interfaceDriverLock(driver); interfaceDriverLock(driver);
iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo); iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo);
@ -493,12 +499,14 @@ cleanup:
} }
static int interfaceDestroy(virInterfacePtr ifinfo, static int interfaceDestroy(virInterfacePtr ifinfo,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
struct interface_driver *driver = ifinfo->conn->interfacePrivateData; struct interface_driver *driver = ifinfo->conn->interfacePrivateData;
struct netcf_if *iface = NULL; struct netcf_if *iface = NULL;
int ret = -1; int ret = -1;
virCheckFlags(0, -1);
interfaceDriverLock(driver); interfaceDriverLock(driver);
iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo); iface = interfaceDriverGetNetcfIF(driver->netcf, ifinfo);

View File

@ -2010,7 +2010,10 @@ cleanup:
static virDrvOpenStatus networkOpenNetwork(virConnectPtr conn, static virDrvOpenStatus networkOpenNetwork(virConnectPtr conn,
virConnectAuthPtr auth ATTRIBUTE_UNUSED, virConnectAuthPtr auth ATTRIBUTE_UNUSED,
unsigned int flags ATTRIBUTE_UNUSED) { unsigned int flags)
{
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
if (!driverState) if (!driverState)
return VIR_DRV_OPEN_DECLINED; return VIR_DRV_OPEN_DECLINED;
@ -2416,12 +2419,14 @@ cleanup:
} }
static char *networkGetXMLDesc(virNetworkPtr net, static char *networkGetXMLDesc(virNetworkPtr net,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
struct network_driver *driver = net->conn->networkPrivateData; struct network_driver *driver = net->conn->networkPrivateData;
virNetworkObjPtr network; virNetworkObjPtr network;
char *ret = NULL; char *ret = NULL;
virCheckFlags(0, NULL);
networkDriverLock(driver); networkDriverLock(driver);
network = virNetworkFindByUUID(&driver->networks, net->uuid); network = virNetworkFindByUUID(&driver->networks, net->uuid);
networkDriverUnlock(driver); networkDriverUnlock(driver);

View File

@ -1,7 +1,7 @@
/* /*
* nodeinfo.c: Helper routines for OS specific node information * nodeinfo.c: Helper routines for OS specific node information
* *
* Copyright (C) 2006-2008 Red Hat, Inc. * Copyright (C) 2006-2008, 2011 Red Hat, Inc.
* Copyright (C) 2006 Daniel P. Berrange * Copyright (C) 2006 Daniel P. Berrange
* *
* This library is free software; you can redistribute it and/or * This library is free software; you can redistribute it and/or
@ -34,12 +34,12 @@ int nodeGetCPUStats(virConnectPtr conn ATTRIBUTE_UNUSED,
int cpuNum, int cpuNum,
virNodeCPUStatsPtr params, virNodeCPUStatsPtr params,
int *nparams, int *nparams,
unsigned int flags ATTRIBUTE_UNUSED); unsigned int flags);
int nodeGetMemoryStats(virConnectPtr conn ATTRIBUTE_UNUSED, int nodeGetMemoryStats(virConnectPtr conn ATTRIBUTE_UNUSED,
int cellNum, int cellNum,
virNodeMemoryStatsPtr params, virNodeMemoryStatsPtr params,
int *nparams, int *nparams,
unsigned int flags ATTRIBUTE_UNUSED); unsigned int flags);
int nodeGetCellsFreeMemory(virConnectPtr conn, int nodeGetCellsFreeMemory(virConnectPtr conn,
unsigned long long *freeMems, unsigned long long *freeMems,
int startCell, int startCell,

View File

@ -272,8 +272,10 @@ cleanup:
static virDrvOpenStatus static virDrvOpenStatus
nwfilterOpen(virConnectPtr conn, nwfilterOpen(virConnectPtr conn,
virConnectAuthPtr auth ATTRIBUTE_UNUSED, virConnectAuthPtr auth ATTRIBUTE_UNUSED,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
if (!driverState) if (!driverState)
return VIR_DRV_OPEN_DECLINED; return VIR_DRV_OPEN_DECLINED;

View File

@ -525,7 +525,10 @@ cleanup:
static virDrvOpenStatus static virDrvOpenStatus
secretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED, secretOpen(virConnectPtr conn, virConnectAuthPtr auth ATTRIBUTE_UNUSED,
unsigned int flags ATTRIBUTE_UNUSED) { unsigned int flags)
{
virCheckFlags(VIR_CONNECT_RO, VIR_DRV_OPEN_ERROR);
if (driverState == NULL) if (driverState == NULL)
return VIR_DRV_OPEN_DECLINED; return VIR_DRV_OPEN_DECLINED;
@ -667,7 +670,7 @@ cleanup:
static virSecretPtr static virSecretPtr
secretDefineXML(virConnectPtr conn, const char *xml, secretDefineXML(virConnectPtr conn, const char *xml,
unsigned int flags ATTRIBUTE_UNUSED) unsigned int flags)
{ {
virSecretDriverStatePtr driver = conn->secretPrivateData; virSecretDriverStatePtr driver = conn->secretPrivateData;
virSecretPtr ret = NULL; virSecretPtr ret = NULL;
@ -675,6 +678,8 @@ secretDefineXML(virConnectPtr conn, const char *xml,
virSecretDefPtr backup = NULL; virSecretDefPtr backup = NULL;
virSecretDefPtr new_attrs; virSecretDefPtr new_attrs;
virCheckFlags(0, NULL);
new_attrs = virSecretDefParseString(xml); new_attrs = virSecretDefParseString(xml);
if (new_attrs == NULL) if (new_attrs == NULL)
return NULL; return NULL;
@ -778,12 +783,14 @@ cleanup:
} }
static char * static char *
secretGetXMLDesc(virSecretPtr obj, unsigned int flags ATTRIBUTE_UNUSED) secretGetXMLDesc(virSecretPtr obj, unsigned int flags)
{ {
virSecretDriverStatePtr driver = obj->conn->secretPrivateData; virSecretDriverStatePtr driver = obj->conn->secretPrivateData;
char *ret = NULL; char *ret = NULL;
virSecretEntryPtr secret; virSecretEntryPtr secret;
virCheckFlags(0, NULL);
secretDriverLock(driver); secretDriverLock(driver);
secret = secretFindByUUID(driver, obj->uuid); secret = secretFindByUUID(driver, obj->uuid);
@ -805,7 +812,7 @@ cleanup:
static int static int
secretSetValue(virSecretPtr obj, const unsigned char *value, secretSetValue(virSecretPtr obj, const unsigned char *value,
size_t value_size, unsigned int flags ATTRIBUTE_UNUSED) size_t value_size, unsigned int flags)
{ {
virSecretDriverStatePtr driver = obj->conn->secretPrivateData; virSecretDriverStatePtr driver = obj->conn->secretPrivateData;
int ret = -1; int ret = -1;
@ -813,6 +820,8 @@ secretSetValue(virSecretPtr obj, const unsigned char *value,
size_t old_value_size; size_t old_value_size;
virSecretEntryPtr secret; virSecretEntryPtr secret;
virCheckFlags(0, -1);
if (VIR_ALLOC_N(new_value, value_size) < 0) { if (VIR_ALLOC_N(new_value, value_size) < 0) {
virReportOOMError(); virReportOOMError();
return -1; return -1;

View File

@ -285,14 +285,14 @@ getDevNull(int *null)
*/ */
static int static int
virExecWithHook(const char *const*argv, virExecWithHook(const char *const*argv,
const char *const*envp, const char *const*envp,
const fd_set *keepfd, const fd_set *keepfd,
pid_t *retpid, pid_t *retpid,
int infd, int *outfd, int *errfd, int infd, int *outfd, int *errfd,
int flags, unsigned int flags,
virExecHook hook, virExecHook hook,
void *data, void *data,
char *pidfile) char *pidfile)
{ {
pid_t pid; pid_t pid;
int null = -1, i, openmax; int null = -1, i, openmax;

View File

@ -481,10 +481,13 @@ static int virLogResetFilters(void) {
* Returns -1 in case of failure or the filter number if successful * Returns -1 in case of failure or the filter number if successful
*/ */
int virLogDefineFilter(const char *match, int priority, int virLogDefineFilter(const char *match, int priority,
int flags ATTRIBUTE_UNUSED) { unsigned int flags)
{
int i; int i;
char *mdup = NULL; char *mdup = NULL;
virCheckFlags(0, -1);
if ((match == NULL) || (priority < VIR_LOG_DEBUG) || if ((match == NULL) || (priority < VIR_LOG_DEBUG) ||
(priority > VIR_LOG_ERROR)) (priority > VIR_LOG_ERROR))
return -1; return -1;
@ -579,10 +582,13 @@ static int virLogResetOutputs(void) {
*/ */
int virLogDefineOutput(virLogOutputFunc f, virLogCloseFunc c, void *data, int virLogDefineOutput(virLogOutputFunc f, virLogCloseFunc c, void *data,
int priority, int dest, const char *name, int priority, int dest, const char *name,
int flags ATTRIBUTE_UNUSED) { unsigned int flags)
{
int ret = -1; int ret = -1;
char *ndup = NULL; char *ndup = NULL;
virCheckFlags(0, -1);
if (f == NULL) if (f == NULL)
return -1; return -1;
@ -683,7 +689,8 @@ virLogVersionString(char **msg,
* the message may be stored, sent to output or just discarded * the message may be stored, sent to output or just discarded
*/ */
void virLogMessage(const char *category, int priority, const char *funcname, void virLogMessage(const char *category, int priority, const char *funcname,
long long linenr, int flags, const char *fmt, ...) { long long linenr, unsigned int flags, const char *fmt, ...)
{
static bool logVersionStderr = true; static bool logVersionStderr = true;
char *str = NULL; char *str = NULL;
char *msg = NULL; char *msg = NULL;

View File

@ -105,10 +105,11 @@ extern char *virLogGetOutputs(void);
extern int virLogGetDefaultPriority(void); extern int virLogGetDefaultPriority(void);
extern int virLogSetDefaultPriority(int priority); extern int virLogSetDefaultPriority(int priority);
extern void virLogSetFromEnv(void); extern void virLogSetFromEnv(void);
extern int virLogDefineFilter(const char *match, int priority, int flags); extern int virLogDefineFilter(const char *match, int priority,
unsigned int flags);
extern int virLogDefineOutput(virLogOutputFunc f, virLogCloseFunc c, void *data, extern int virLogDefineOutput(virLogOutputFunc f, virLogCloseFunc c, void *data,
int priority, int dest, const char *name, int priority, int dest, const char *name,
int flags); unsigned int flags);
/* /*
* Internal logging API * Internal logging API
@ -123,7 +124,8 @@ extern int virLogParseDefaultPriority(const char *priority);
extern int virLogParseFilters(const char *filters); extern int virLogParseFilters(const char *filters);
extern int virLogParseOutputs(const char *output); extern int virLogParseOutputs(const char *output);
extern void virLogMessage(const char *category, int priority, extern void virLogMessage(const char *category, int priority,
const char *funcname, long long linenr, int flags, const char *funcname, long long linenr,
unsigned int flags,
const char *fmt, ...) ATTRIBUTE_FMT_PRINTF(6, 7); const char *fmt, ...) ATTRIBUTE_FMT_PRINTF(6, 7);
extern int virLogSetBufferSize(int size); extern int virLogSetBufferSize(int size);
extern void virLogEmergencyDumpAll(int signum); extern void virLogEmergencyDumpAll(int signum);