hal/hald device_info.c,1.16,1.16.2.1
David Zeuthen
david at freedesktop.org
Mon Nov 22 13:53:52 PST 2004
Update of /cvs/hal/hal/hald
In directory gabe:/tmp/cvs-serv19436/hald
Modified Files:
Tag: hal-0_4-stable-branch
device_info.c
Log Message:
2004-11-22 David Zeuthen <david at fubar.dk>
* hald/linux/volume_id/volume_id.c (volume_id_probe): Add some
logging of what size we call volume_id_probe with
* hald/linux/block_class_device.c (force_unmount): Only attempt to
'umount -l' if some hal policy piece are performing policy on the
device
2004-11-22 David Zeuthen <davidz at redhat.com>
* libhal-storage/libhal-storage.c (hal_drive_from_udi): Detect Zip
and Jaz drives
(hal_drive_policy_compute_display_name): Fix an ugly bug where
CD-ROM drives were being named "CD-R" instead of "CD-ROM"
* libhal-storage/libhal-storage.h: Add enums for Zip and Jaz drives
* hald/linux/platform_bus_device.c (platform_device_in_gdl): New
function. Actually check the /etc/mtab for whether the floppy is
mounted
* hald/linux/common.h: Add prototype for
etc_mtab_process_all_block_devices
* hald/linux/block_class_device.c (block_class_visit): Never add
child real childs (e.g. /dev/hdd4) if storage.no_partitions_hint is
set (for IDE Zip Drives)
(detect_media): Actually set child to what we find in the TDL
(mtab_handle_storage): Match on device file before attempting to
match on major/minor
(mtab_handle_volume): -do-
* hald/device_info.c (handle_match): Add the contains and
contains_ncase matching operators.
* fdi/90defaultpolicy/storage-policy.fdi: Add some policy pieces for
IDE Zip, Jaz and USB Zip drives
* fdi/20freedesktop/usb-zip-drives.fdi: New file to identify USB
Zip Drives
* fdi/20freedesktop/ide-drives.fdi: New file to identify strange IDE
drives such as Zip and Jaz drives; note that rewriting the device
file from e.g. /dev/hdd to /dev/hdd4 is actually sane enough to
do given the abstraction that hal exports :-)
2004-11-16 David Zeuthen <davidz at redhat.com>
* fdi/90defaultpolicy/storage-policy.fdi: Remove the "ro" option for
optical drives as it prevents mounting rw DVD-RAM media (RH bug #139600)
* hald/linux/volume_id/volume_id.h (VOLUME_ID_PARTITIONS_MAX): Increase
to 256 (RH bug #139227)
* hald/linux/volume_id/volume_id.c (probe_msdos_part_table): Fix a
typo ("to many partitions" -> "too many partitions"
(volume_id_probe): Do not probe for msdos_part_table since that doesn't
make sense (../block_class_device.c does that instead)
Index: device_info.c
===================================================================
RCS file: /cvs/hal/hal/hald/device_info.c,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -u -d -r1.16 -r1.16.2.1
--- device_info.c 14 Oct 2004 18:37:28 -0000 1.16
+++ device_info.c 22 Nov 2004 21:53:50 -0000 1.16.2.1
@@ -532,6 +532,48 @@
else
return TRUE;
}
+ } else if (strcmp (attr[2], "contains") == 0) {
+ const char *needle;
+ dbus_bool_t contains = FALSE;
+
+ needle = attr[3];
+
+ if (hal_device_property_get_type (d, prop_to_check) != DBUS_TYPE_STRING)
+ return FALSE;
+
+ if (hal_device_has_property (d, prop_to_check)) {
+ const char *haystack;
+
+ haystack = hal_device_property_get_string (d, prop_to_check);
+ if (needle != NULL && haystack != NULL && strstr (haystack, needle)) {
+ contains = TRUE;
+ }
+
+ }
+ return contains;
+ } else if (strcmp (attr[2], "contains_ncase") == 0) {
+ const char *needle;
+ dbus_bool_t contains_ncase = FALSE;
+
+ needle = attr[3];
+
+ if (hal_device_property_get_type (d, prop_to_check) != DBUS_TYPE_STRING)
+ return FALSE;
+
+ if (hal_device_has_property (d, prop_to_check)) {
+ char *needle_lowercase;
+ char *haystack_lowercase;
+
+ needle_lowercase = g_utf8_strdown (needle, -1);
+ haystack_lowercase = g_utf8_strdown (hal_device_property_get_string (d, prop_to_check), -1);
+ if (needle_lowercase != NULL && haystack_lowercase != NULL && strstr (haystack_lowercase, needle_lowercase)) {
+ contains_ncase = TRUE;
+ }
+
+ g_free (needle_lowercase);
+ g_free (haystack_lowercase);
+ }
+ return contains_ncase;
} else if (strcmp (attr[2], "compare_lt") == 0) {
dbus_int64_t result;
if (!match_compare_property (d, prop_to_check, attr[3], &result)) {
More information about the hal-commit
mailing list