summaryrefslogtreecommitdiffstats
path: root/sysutils/hal/files/patch-tools_hal-storage-mount.c
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/hal/files/patch-tools_hal-storage-mount.c')
-rw-r--r--sysutils/hal/files/patch-tools_hal-storage-mount.c91
1 files changed, 0 insertions, 91 deletions
diff --git a/sysutils/hal/files/patch-tools_hal-storage-mount.c b/sysutils/hal/files/patch-tools_hal-storage-mount.c
deleted file mode 100644
index 390d35111..000000000
--- a/sysutils/hal/files/patch-tools_hal-storage-mount.c
+++ /dev/null
@@ -1,91 +0,0 @@
---- tools/hal-storage-mount.c.orig 2008-05-07 19:24:23.000000000 -0400
-+++ tools/hal-storage-mount.c 2008-10-09 00:54:34.000000000 -0400
-@@ -56,8 +56,9 @@
-
- #ifdef __FreeBSD__
- #define MOUNT "/sbin/mount"
--#define MOUNT_OPTIONS "noexec,nosuid"
-+#define MOUNT_OPTIONS "nosuid"
- #define MOUNT_TYPE_OPT "-t"
-+#define FUSE_DB "/tmp/.fuse-mnts"
- #elif sun
- #define MOUNT "/sbin/mount"
- #define MOUNT_OPTIONS "noexec,nosuid"
-@@ -255,6 +256,51 @@ out:
- return f;
- }
-
-+#ifdef __FreeBSD__
-+static char *
-+resolve_fuse (const char *special)
-+{
-+ gchar *contents;
-+ gchar **lines;
-+ gsize len;
-+ int i;
-+
-+ if (! g_file_get_contents (FUSE_DB, &contents, &len, NULL))
-+ return g_strdup (special);
-+
-+ lines = g_strsplit (contents, "\n", 0);
-+ g_free (contents);
-+
-+ for (i = 0; lines && lines[i]; i++) {
-+ gchar **fields;
-+
-+ fields = g_strsplit (lines[i], "=", 2);
-+ if (fields && g_strv_length (fields) == 2) {
-+ if (strcmp (fields[0], special) == 0) {
-+ g_strfreev (fields);
-+ g_strfreev (lines);
-+ return g_strdup (fields[1]);
-+ }
-+ }
-+ g_strfreev (fields);
-+ }
-+
-+ g_strfreev (lines);
-+
-+ return g_strdup (special);
-+}
-+#endif
-+
-+static char *
-+resolve_special (const char *special)
-+{
-+#ifdef __FreeBSD__
-+ if (strstr(special, "fuse"))
-+ return resolve_fuse (special);
-+#endif
-+ return g_strdup (special);
-+}
-+
- static LibHalVolume *
- volume_findby (LibHalContext *hal_ctx, const char *property, const char *value)
- {
-@@ -400,18 +446,20 @@ device_is_mounted (const char *device, c
- unknown_error ("Cannot open /etc/mtab or equivalent");
- }
- while (((entry = mtab_next (handle, mount_point)) != NULL) && (ret == FALSE)) {
-- char *resolved;
-+ char *resolved, *rspecial;
-
- resolved = resolve_symlink (entry);
-+ rspecial = resolve_special (resolved);
-+ g_free (resolved);
- #ifdef DEBUG
-- printf ("/proc/mounts: device %s -> %s \n", entry, resolved);
-+ printf ("/proc/mounts: device %s -> %s \n", entry, rspecial);
- #endif
-- if (strcmp (device, resolved) == 0) {
-- printf ("%s (-> %s) found in mount list. Not mounting.\n", entry, resolved);
-+ if (strcmp (device, rspecial) == 0) {
-+ printf ("%s (-> %s) found in mount list. Not mounting.\n", entry, rspecial);
- ret = TRUE;
- }
-
-- g_free (resolved);
-+ g_free (rspecial);
- }
- mtab_close (handle);
- return ret;