mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 00:36:51 +00:00
gst/registries/gstxmlregistry.c (gst_xml_registry_get_perms_func): Just use access() instead of actually creating and...
Original commit message from CVS: 2004-03-20 Colin Walters <walters@verbum.org> * gst/registries/gstxmlregistry.c (gst_xml_registry_get_perms_func): Just use access() instead of actually creating and deleting files.
This commit is contained in:
parent
7ba2b5541d
commit
59c20484d0
2 changed files with 15 additions and 23 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2004-03-20 Colin Walters <walters@verbum.org>
|
||||||
|
|
||||||
|
* gst/registries/gstxmlregistry.c (gst_xml_registry_get_perms_func): Just use
|
||||||
|
access() instead of actually creating and deleting files.
|
||||||
|
|
||||||
2004-03-18 David Schleef <ds@schleef.org>
|
2004-03-18 David Schleef <ds@schleef.org>
|
||||||
|
|
||||||
* configure.ac: Remove HAVE_ATOMIC_H test, since it's unused.
|
* configure.ac: Remove HAVE_ATOMIC_H test, since it's unused.
|
||||||
|
|
|
@ -327,8 +327,7 @@ make_dir (gchar * filename)
|
||||||
static void
|
static void
|
||||||
gst_xml_registry_get_perms_func (GstXMLRegistry * registry)
|
gst_xml_registry_get_perms_func (GstXMLRegistry * registry)
|
||||||
{
|
{
|
||||||
time_t mod_time = 0;
|
gchar *dirname;
|
||||||
FILE *temp;
|
|
||||||
|
|
||||||
/* if the dir does not exist, make it. if that can't be done, flags = 0x0.
|
/* if the dir does not exist, make it. if that can't be done, flags = 0x0.
|
||||||
if the file can be appended to, it's writable. if it can then be read,
|
if the file can be appended to, it's writable. if it can then be read,
|
||||||
|
@ -340,33 +339,21 @@ gst_xml_registry_get_perms_func (GstXMLRegistry * registry)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
mod_time = get_time (registry->location);
|
dirname = g_path_get_dirname (registry->location);
|
||||||
|
|
||||||
if ((temp = fopen (registry->location, "a"))) {
|
|
||||||
GST_REGISTRY (registry)->flags |= GST_REGISTRY_WRITABLE;
|
|
||||||
fclose (temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((temp = fopen (registry->location, "r"))) {
|
|
||||||
GST_REGISTRY (registry)->flags |= GST_REGISTRY_READABLE;
|
|
||||||
fclose (temp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (g_file_test (registry->location, G_FILE_TEST_EXISTS)) {
|
if (g_file_test (registry->location, G_FILE_TEST_EXISTS)) {
|
||||||
GST_REGISTRY (registry)->flags |= GST_REGISTRY_EXISTS;
|
GST_REGISTRY (registry)->flags |= GST_REGISTRY_EXISTS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mod_time) {
|
if (!access (dirname, W_OK)) {
|
||||||
struct utimbuf utime_buf;
|
GST_REGISTRY (registry)->flags |= GST_REGISTRY_WRITABLE;
|
||||||
|
|
||||||
/* set the modification time back to its previous value */
|
|
||||||
utime_buf.actime = mod_time;
|
|
||||||
utime_buf.modtime = mod_time;
|
|
||||||
utime (registry->location, &utime_buf);
|
|
||||||
} else if (GST_REGISTRY (registry)->flags & GST_REGISTRY_WRITABLE) {
|
|
||||||
/* it did not exist before, so delete it */
|
|
||||||
unlink (registry->location);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!access (dirname, R_OK)) {
|
||||||
|
GST_REGISTRY (registry)->flags |= GST_REGISTRY_READABLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
g_free (dirname);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in a new issue