virStringParseVersion: Parse into 'unsigned long long'

Phase out 'unsigned long'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Peter Krempa 2023-03-07 16:18:51 +01:00
parent 396cf39400
commit 5b738195a2
17 changed files with 40 additions and 25 deletions

View File

@ -248,6 +248,7 @@ bhyveConnectGetSysinfo(virConnectPtr conn, unsigned int flags)
static int
bhyveConnectGetVersion(virConnectPtr conn, unsigned long *version)
{
unsigned long long tmpver;
struct utsname ver;
if (virConnectGetVersionEnsureACL(conn) < 0)
@ -255,12 +256,14 @@ bhyveConnectGetVersion(virConnectPtr conn, unsigned long *version)
uname(&ver);
if (virStringParseVersion(version, ver.release, true) < 0) {
if (virStringParseVersion(&tmpver, ver.release, true) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Unknown release: %1$s"), ver.release);
return -1;
}
*version = tmpver;
return 0;
}

View File

@ -175,7 +175,7 @@ virCHDriverConfigDispose(void *obj)
int
chExtractVersion(virCHDriver *driver)
{
unsigned long version;
unsigned long long version;
g_autofree char *help = NULL;
char *tmp = NULL;
g_autofree char *ch_cmd = g_find_program_in_path(CH_CMD);

View File

@ -179,9 +179,9 @@ struct _esxVI_Context {
char *username;
char *password;
esxVI_ServiceContent *service;
unsigned long apiVersion; /* = 1000000 * major + 1000 * minor + micro */
unsigned long long apiVersion; /* = 1000000 * major + 1000 * minor + micro */
esxVI_ProductLine productLine;
unsigned long productVersion; /* = 1000000 * major + 1000 * minor + micro */
unsigned long long productVersion; /* = 1000000 * major + 1000 * minor + micro */
esxVI_UserSession *session; /* ... except the session ... */
virMutex *sessionLock; /* ... that is protected by this mutex */
esxVI_Datacenter *datacenter;

View File

@ -1641,6 +1641,7 @@ lxcConnectSupportsFeature(virConnectPtr conn, int feature)
static int lxcConnectGetVersion(virConnectPtr conn, unsigned long *version)
{
unsigned long long tmpver;
struct utsname ver;
uname(&ver);
@ -1648,11 +1649,13 @@ static int lxcConnectGetVersion(virConnectPtr conn, unsigned long *version)
if (virConnectGetVersionEnsureACL(conn) < 0)
return -1;
if (virStringParseVersion(version, ver.release, true) < 0) {
if (virStringParseVersion(&tmpver, ver.release, true) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown release: %1$s"), ver.release);
return -1;
}
*version = tmpver;
return 0;
}

View File

@ -869,7 +869,7 @@ int networkAddFirewallRules(virNetworkDef *def)
if (virFirewallDInterfaceSetZone(def->bridge, "libvirt") < 0)
return -1;
} else {
unsigned long version;
unsigned long long version;
int vresult = virFirewallDGetVersion(&version);
if (vresult < 0)

View File

@ -64,7 +64,7 @@ strtoI(const char *str)
static int
openvzExtractVersionInfo(const char *cmdstr, int *retversion)
{
unsigned long version;
unsigned long long version;
g_autofree char *help = NULL;
char *tmp;
g_autoptr(virCommand) cmd = virCommandNewArgList(cmdstr, "--help", NULL);

View File

@ -603,7 +603,7 @@ dnsmasqCapsSetFromBuffer(dnsmasqCaps *caps, const char *buf)
{
int len;
const char *p;
unsigned long version;
unsigned long long version;
p = STRSKIP(buf, DNSMASQ_VERSION_STR);
if (!p)
@ -616,7 +616,7 @@ dnsmasqCapsSetFromBuffer(dnsmasqCaps *caps, const char *buf)
if (version < DNSMASQ_MIN_MAJOR * 1000000 + DNSMASQ_MIN_MINOR * 1000) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("dnsmasq version >= %1$u.%2$u required but %3$lu.%4$lu found"),
_("dnsmasq version >= %1$u.%2$u required but %3$llu.%4$llu found"),
DNSMASQ_MIN_MAJOR, DNSMASQ_MIN_MINOR,
version / 1000000,
version % 1000000 / 1000);

View File

@ -80,7 +80,7 @@ virFirewallDIsRegistered(void)
* Returns 0 if version was successfully retrieved, or -1 on error
*/
int
virFirewallDGetVersion(unsigned long *version)
virFirewallDGetVersion(unsigned long long *version)
{
GDBusConnection *sysbus = virGDBusGetSystemBus();
g_autoptr(GVariant) message = NULL;
@ -114,7 +114,7 @@ virFirewallDGetVersion(unsigned long *version)
return -1;
}
VIR_DEBUG("FirewallD version: %s - %lu", versionStr, *version);
VIR_DEBUG("FirewallD version: %s - %llu", versionStr, *version);
return 0;
}

View File

@ -29,7 +29,7 @@ typedef enum {
VIR_FIREWALLD_BACKEND_LAST,
} virFirewallDBackendType;
int virFirewallDGetVersion(unsigned long *version);
int virFirewallDGetVersion(unsigned long long *version);
int virFirewallDGetBackend(void);
int virFirewallDIsRegistered(void);
int virFirewallDGetZones(char ***zones, size_t *nzones);

View File

@ -1022,7 +1022,7 @@ int virStringParseYesNo(const char *str, bool *result)
/**
* virStringParseVersion:
* @version: unsigned long pointer to output the version number
* @version: unsigned long long pointer to output the version number
* @str: const char pointer to the version string
* @allowMissing: true to treat 3 like 3.0.0, false to error out on
* missing minor or micro
@ -1037,7 +1037,7 @@ int virStringParseYesNo(const char *str, bool *result)
* Returns the 0 for success, -1 for error.
*/
int
virStringParseVersion(unsigned long *version,
virStringParseVersion(unsigned long long *version,
const char *str,
bool allowMissing)
{

View File

@ -136,6 +136,6 @@ int virStringParseYesNo(const char *str,
bool *result)
G_GNUC_WARN_UNUSED_RESULT;
int virStringParseVersion(unsigned long *version,
int virStringParseVersion(unsigned long long *version,
const char *str,
bool allowMissing);

View File

@ -272,6 +272,7 @@ vboxExtractVersion(void)
int ret = -1;
PRUnichar *versionUtf16 = NULL;
char *vboxVersion = NULL;
unsigned long long version;
nsresult rc;
if (vbox_driver->version > 0)
@ -283,9 +284,11 @@ vboxExtractVersion(void)
gVBoxAPI.UPFN.Utf16ToUtf8(vbox_driver->pFuncs, versionUtf16, &vboxVersion);
if (virStringParseVersion(&vbox_driver->version, vboxVersion, false) >= 0)
if (virStringParseVersion(&version, vboxVersion, false) >= 0)
ret = 0;
vbox_driver->version = version;
gVBoxAPI.UPFN.Utf8Free(vbox_driver->pFuncs, vboxVersion);
gVBoxAPI.UPFN.ComUnallocMem(vbox_driver->pFuncs, versionUtf16);
vboxVersion = NULL;

View File

@ -197,6 +197,7 @@ vmwareSetSentinal(const char **prog, const char *key)
int
vmwareParseVersionStr(int type, const char *verbuf, unsigned long *version)
{
unsigned long long tmpver;
const char *pattern;
const char *tmp;
@ -228,12 +229,14 @@ vmwareParseVersionStr(int type, const char *verbuf, unsigned long *version)
return -1;
}
if (virStringParseVersion(version, tmp, false) < 0) {
if (virStringParseVersion(&tmpver, tmp, false) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
_("version parsing error"));
return -1;
}
*version = tmpver;
return 0;
}

View File

@ -154,6 +154,7 @@ vzInitVersion(struct _vzDriver *driver)
g_autofree char *output = NULL;
char *sVer, *tmp;
const char *searchStr = "prlsrvctl version ";
unsigned long long version;
int ret = -1;
output = vzGetOutput(PRLSRVCTL, "--help", NULL);
@ -183,11 +184,13 @@ vzInitVersion(struct _vzDriver *driver)
}
tmp[0] = '\0';
if (virStringParseVersion(&(driver->vzVersion), sVer, true) < 0) {
if (virStringParseVersion(&version, sVer, true) < 0) {
vzParseError();
return -1;
}
driver->vzVersion = version;
vzInitCaps(driver->vzVersion, &driver->vzCaps);
return 0;

View File

@ -718,8 +718,8 @@ testQemuGetLatestCapsForArch(const char *arch,
g_autoptr(DIR) dir = NULL;
int rc;
g_autofree char *fullsuffix = NULL;
unsigned long maxver = 0;
unsigned long ver;
unsigned long long maxver = 0;
unsigned long long ver;
g_autofree char *maxname = NULL;
fullsuffix = g_strdup_printf("%s.%s", arch, suffix);

View File

@ -124,7 +124,7 @@ struct testVersionString
const char *string;
bool allowMissing;
int result;
unsigned long version;
unsigned long long version;
};
static struct testVersionString versions[] = {
@ -146,7 +146,7 @@ testParseVersionString(const void *data G_GNUC_UNUSED)
{
int result;
size_t i;
unsigned long version;
unsigned long long version;
for (i = 0; i < G_N_ELEMENTS(versions); ++i) {
result = virStringParseVersion(&version, versions[i].string,
@ -165,8 +165,8 @@ testParseVersionString(const void *data G_GNUC_UNUSED)
if (version != versions[i].version) {
VIR_TEST_DEBUG("\nVersion string [%s]", versions[i].string);
VIR_TEST_DEBUG("Expect version [%lu]", versions[i].version);
VIR_TEST_DEBUG("Actual version [%lu]", version);
VIR_TEST_DEBUG("Expect version [%llu]", versions[i].version);
VIR_TEST_DEBUG("Actual version [%llu]", version);
return -1;
}

View File

@ -251,7 +251,7 @@ int virHostValidateLinuxKernel(const char *hvname,
const char *hint)
{
struct utsname uts;
unsigned long thisversion;
unsigned long long thisversion;
uname(&uts);