mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
Introduce virDirOpenQuiet
A helper function that does not report any errors.
This commit is contained in:
parent
42b4a37d68
commit
7a5df06e10
@ -1497,6 +1497,7 @@ virDirClose;
|
|||||||
virDirCreate;
|
virDirCreate;
|
||||||
virDirOpen;
|
virDirOpen;
|
||||||
virDirOpenIfExists;
|
virDirOpenIfExists;
|
||||||
|
virDirOpenQuiet;
|
||||||
virDirRead;
|
virDirRead;
|
||||||
virFileAbsPath;
|
virFileAbsPath;
|
||||||
virFileAccessibleAs;
|
virFileAccessibleAs;
|
||||||
|
@ -2723,10 +2723,13 @@ virFileRemove(const char *path,
|
|||||||
#endif /* WIN32 */
|
#endif /* WIN32 */
|
||||||
|
|
||||||
static int
|
static int
|
||||||
virDirOpenInternal(DIR **dirp, const char *name, bool ignoreENOENT)
|
virDirOpenInternal(DIR **dirp, const char *name, bool ignoreENOENT, bool quiet)
|
||||||
{
|
{
|
||||||
*dirp = opendir(name);
|
*dirp = opendir(name);
|
||||||
if (!*dirp) {
|
if (!*dirp) {
|
||||||
|
if (quiet)
|
||||||
|
return -1;
|
||||||
|
|
||||||
if (ignoreENOENT && errno == ENOENT)
|
if (ignoreENOENT && errno == ENOENT)
|
||||||
return 0;
|
return 0;
|
||||||
virReportSystemError(errno, _("cannot open directory '%s'"), name);
|
virReportSystemError(errno, _("cannot open directory '%s'"), name);
|
||||||
@ -2746,7 +2749,7 @@ virDirOpenInternal(DIR **dirp, const char *name, bool ignoreENOENT)
|
|||||||
int
|
int
|
||||||
virDirOpen(DIR **dirp, const char *name)
|
virDirOpen(DIR **dirp, const char *name)
|
||||||
{
|
{
|
||||||
return virDirOpenInternal(dirp, name, false);
|
return virDirOpenInternal(dirp, name, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -2761,7 +2764,23 @@ virDirOpen(DIR **dirp, const char *name)
|
|||||||
int
|
int
|
||||||
virDirOpenIfExists(DIR **dirp, const char *name)
|
virDirOpenIfExists(DIR **dirp, const char *name)
|
||||||
{
|
{
|
||||||
return virDirOpenInternal(dirp, name, true);
|
return virDirOpenInternal(dirp, name, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* virDirOpenQuiet
|
||||||
|
* @dirp: directory stream
|
||||||
|
* @name: path of the directory
|
||||||
|
*
|
||||||
|
* Returns 1 on success.
|
||||||
|
* -1 on failure.
|
||||||
|
*
|
||||||
|
* Does not report any errors and errno is preserved.
|
||||||
|
*/
|
||||||
|
int
|
||||||
|
virDirOpenQuiet(DIR **dirp, const char *name)
|
||||||
|
{
|
||||||
|
return virDirOpenInternal(dirp, name, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -234,6 +234,8 @@ int virDirOpen(DIR **dirp, const char *dirname)
|
|||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
|
||||||
int virDirOpenIfExists(DIR **dirp, const char *dirname)
|
int virDirOpenIfExists(DIR **dirp, const char *dirname)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
|
||||||
|
int virDirOpenQuiet(DIR **dirp, const char *dirname)
|
||||||
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
|
||||||
int virDirRead(DIR *dirp, struct dirent **ent, const char *dirname)
|
int virDirRead(DIR *dirp, struct dirent **ent, const char *dirname)
|
||||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
|
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2) ATTRIBUTE_RETURN_CHECK;
|
||||||
void virDirClose(DIR **dirp)
|
void virDirClose(DIR **dirp)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user