while ((ret = virDirRead(dir, &entry, configDir)) > 0) {
virDomainObjPtr dom;
- if (!virFileStripSuffix(entry->d_name, ".xml"))
+ if (!virStringStripSuffix(entry->d_name, ".xml"))
continue;
/* NB: ignoring errors, so one malformed config doesn't
while ((ret = virDirRead(dir, &entry, stateDir)) > 0) {
virNetworkObjPtr obj;
- if (!virFileStripSuffix(entry->d_name, ".xml"))
+ if (!virStringStripSuffix(entry->d_name, ".xml"))
continue;
obj = virNetworkLoadState(nets, stateDir, entry->d_name);
while ((ret = virDirRead(dir, &entry, configDir)) > 0) {
virNetworkObjPtr obj;
- if (!virFileStripSuffix(entry->d_name, ".xml"))
+ if (!virStringStripSuffix(entry->d_name, ".xml"))
continue;
/* NB: ignoring errors, so one malformed config doesn't
while ((ret = virDirRead(dir, &entry, configDir)) > 0) {
virNWFilterBindingObjPtr binding;
- if (!virFileStripSuffix(entry->d_name, ".xml"))
+ if (!virStringStripSuffix(entry->d_name, ".xml"))
continue;
/* NB: ignoring errors, so one malformed config doesn't
while ((ret = virDirRead(dir, &entry, configDir)) > 0) {
virNWFilterObjPtr obj;
- if (!virFileStripSuffix(entry->d_name, ".xml"))
+ if (!virStringStripSuffix(entry->d_name, ".xml"))
continue;
obj = virNWFilterObjListLoadConfig(nwfilters, configDir, entry->d_name);
while ((ret = virDirRead(dir, &entry, stateDir)) > 0) {
virStoragePoolObjPtr obj;
- if (!virFileStripSuffix(entry->d_name, ".xml"))
+ if (!virStringStripSuffix(entry->d_name, ".xml"))
continue;
if (!(obj = virStoragePoolObjLoadState(pools, stateDir, entry->d_name)))
virFileSetupDev;
virFileSetXAttr;
virFileSkipRoot;
-virFileStripSuffix;
virFileTouch;
virFileUnlock;
virFileUpdatePerm;
virStringSplitCount;
virStringStripControlChars;
virStringStripIPv6Brackets;
+virStringStripSuffix;
virStringToUpper;
virStringTrimOptionalNewline;
virStrncpy;
return ret;
}
-int
-virFileStripSuffix(char *str, const char *suffix)
-{
- int len = strlen(str);
- int suffixlen = strlen(suffix);
-
- if (len < suffixlen)
- return 0;
-
- if (STRNEQ(str + len - suffixlen, suffix))
- return 0;
-
- str[len-suffixlen] = '\0';
-
- return 1;
-}
-
-
/* Like read(), but restarts after EINTR. Doesn't play
* nicely with nonblocking FD and EAGAIN, in which case
* you want to use bare read(). Or even use virSocket()
const char *name,
const char *suffix);
-int virFileStripSuffix(char *str,
- const char *suffix) ATTRIBUTE_RETURN_CHECK;
-
int virFileLinkPointsTo(const char *checkLink,
const char *checkDest)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
return STRCASEEQ(str + len - suffixlen, suffix);
}
+int
+virStringStripSuffix(char *str,
+ const char *suffix)
+{
+ int len = strlen(str);
+ int suffixlen = strlen(suffix);
+
+ if (len < suffixlen)
+ return 0;
+
+ if (STRNEQ(str + len - suffixlen, suffix))
+ return 0;
+
+ str[len - suffixlen] = '\0';
+
+ return 1;
+}
+
/**
* virStringStripIPv6Brackets:
* @str: the string to strip
int virStringHasCaseSuffix(const char *str,
const char *suffix);
+int virStringStripSuffix(char *str,
+ const char *suffix) ATTRIBUTE_RETURN_CHECK;
void virStringStripIPv6Brackets(char *str);
bool virStringHasChars(const char *str,
if (rc == 0)
continue;
- if (virFileStripSuffix(tmp, fullsuffix) != 1)
+ if (virStringStripSuffix(tmp, fullsuffix) != 1)
continue;
if (virParseVersionString(tmp, &ver, false) < 0) {