Signed-off-by: Ján Tomko <jtomko(a)redhat.com>
---
src/libvirt_private.syms | 2 +-
src/util/virstring.c | 47 ++++++++++++++++++++++++++++++++++++++++
src/util/virstring.h | 4 ++++
src/util/virutil.c | 46 ---------------------------------------
src/util/virutil.h | 3 ---
5 files changed, 52 insertions(+), 50 deletions(-)
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index bc6fa191bf..38506c52c6 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -3302,6 +3302,7 @@ virStorageFileParseBackingStoreStr;
# util/virstring.h
+virParseVersionString;
virSkipSpaces;
virSkipSpacesAndBackslash;
virSkipSpacesBackwards;
@@ -3546,7 +3547,6 @@ virMemoryLimitIsSet;
virMemoryLimitTruncate;
virMemoryMaxValue;
virParseOwnershipIds;
-virParseVersionString;
virPipe;
virPipeNonBlock;
virPipeQuiet;
diff --git a/src/util/virstring.c b/src/util/virstring.c
index cee56debca..a7ce566963 100644
--- a/src/util/virstring.c
+++ b/src/util/virstring.c
@@ -1019,3 +1019,50 @@ int virStringParseYesNo(const char *str, bool *result)
return 0;
}
+
+
+/**
+ * virParseVersionString:
+ * @str: const char pointer to the version string
+ * @version: unsigned long pointer to output the version number
+ * @allowMissing: true to treat 3 like 3.0.0, false to error out on
+ * missing minor or micro
+ *
+ * Parse an unsigned version number from a version string. Expecting
+ * 'major.minor.micro' format, ignoring an optional suffix.
+ *
+ * The major, minor and micro numbers are encoded into a single version number:
+ *
+ * 1000000 * major + 1000 * minor + micro
+ *
+ * Returns the 0 for success, -1 for error.
+ */
+int
+virParseVersionString(const char *str, unsigned long *version,
+ bool allowMissing)
+{
+ unsigned int major, minor = 0, micro = 0;
+ char *tmp;
+
+ if (virStrToLong_ui(str, &tmp, 10, &major) < 0)
+ return -1;
+
+ if (!allowMissing && *tmp != '.')
+ return -1;
+
+ if ((*tmp == '.') && virStrToLong_ui(tmp + 1, &tmp, 10,
&minor) < 0)
+ return -1;
+
+ if (!allowMissing && *tmp != '.')
+ return -1;
+
+ if ((*tmp == '.') && virStrToLong_ui(tmp + 1, &tmp, 10,
µ) < 0)
+ return -1;
+
+ if (major > UINT_MAX / 1000000 || minor > 999 || micro > 999)
+ return -1;
+
+ *version = 1000000 * major + 1000 * minor + micro;
+
+ return 0;
+}
diff --git a/src/util/virstring.h b/src/util/virstring.h
index 45f07ddd7a..1dbeb7445f 100644
--- a/src/util/virstring.h
+++ b/src/util/virstring.h
@@ -135,3 +135,7 @@ int virStringParsePort(const char *str,
int virStringParseYesNo(const char *str,
bool *result)
G_GNUC_WARN_UNUSED_RESULT;
+
+int virParseVersionString(const char *str,
+ unsigned long *version,
+ bool allowMissing);
diff --git a/src/util/virutil.c b/src/util/virutil.c
index 8a6efd4d5c..fe5500726e 100644
--- a/src/util/virutil.c
+++ b/src/util/virutil.c
@@ -231,52 +231,6 @@ virScaleInteger(unsigned long long *value, const char *suffix,
}
-/**
- * virParseVersionString:
- * @str: const char pointer to the version string
- * @version: unsigned long pointer to output the version number
- * @allowMissing: true to treat 3 like 3.0.0, false to error out on
- * missing minor or micro
- *
- * Parse an unsigned version number from a version string. Expecting
- * 'major.minor.micro' format, ignoring an optional suffix.
- *
- * The major, minor and micro numbers are encoded into a single version number:
- *
- * 1000000 * major + 1000 * minor + micro
- *
- * Returns the 0 for success, -1 for error.
- */
-int
-virParseVersionString(const char *str, unsigned long *version,
- bool allowMissing)
-{
- unsigned int major, minor = 0, micro = 0;
- char *tmp;
-
- if (virStrToLong_ui(str, &tmp, 10, &major) < 0)
- return -1;
-
- if (!allowMissing && *tmp != '.')
- return -1;
-
- if ((*tmp == '.') && virStrToLong_ui(tmp + 1, &tmp, 10,
&minor) < 0)
- return -1;
-
- if (!allowMissing && *tmp != '.')
- return -1;
-
- if ((*tmp == '.') && virStrToLong_ui(tmp + 1, &tmp, 10,
µ) < 0)
- return -1;
-
- if (major > UINT_MAX / 1000000 || minor > 999 || micro > 999)
- return -1;
-
- *version = 1000000 * major + 1000 * minor + micro;
-
- return 0;
-}
-
/**
* Format @val as a base-10 decimal number, in the
* buffer @buf of size @buflen. To allocate a suitable
diff --git a/src/util/virutil.h b/src/util/virutil.h
index 6bb55918ad..6adebde242 100644
--- a/src/util/virutil.h
+++ b/src/util/virutil.h
@@ -44,9 +44,6 @@ int virScaleInteger(unsigned long long *value, const char *suffix,
unsigned long long scale, unsigned long long limit)
ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
-int virParseVersionString(const char *str, unsigned long *version,
- bool allowMissing);
-
char *virFormatIntDecimal(char *buf, size_t buflen, int val)
ATTRIBUTE_NONNULL(1) G_GNUC_WARN_UNUSED_RESULT;
--
2.34.1