summaryrefslogtreecommitdiffstats
path: root/opensuse/tdebase/media-cryptosupport.diff
diff options
context:
space:
mode:
Diffstat (limited to 'opensuse/tdebase/media-cryptosupport.diff')
-rw-r--r--opensuse/tdebase/media-cryptosupport.diff31
1 files changed, 31 insertions, 0 deletions
diff --git a/opensuse/tdebase/media-cryptosupport.diff b/opensuse/tdebase/media-cryptosupport.diff
new file mode 100644
index 000000000..e9b4fb58d
--- /dev/null
+++ b/opensuse/tdebase/media-cryptosupport.diff
@@ -0,0 +1,31 @@
+Index: kioslave/media/mediamanager/halbackend.cpp
+===================================================================
+--- kioslave/media/mediamanager/halbackend.cpp.orig
++++ kioslave/media/mediamanager/halbackend.cpp
+@@ -214,10 +214,26 @@ void HALBackend::AddDevice(const char *u
+ {
+ /* We only list volume that have a filesystem or volume that have an audio track*/
+ if ( libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "filesystem" &&
++ libhal_device_get_property_QString(m_halContext, udi, "volume.fsusage") != "crypto" &&
+ !libhal_device_get_property_bool(m_halContext, udi, "volume.disc.has_audio", NULL) &&
+ !libhal_device_get_property_bool(m_halContext, udi, "volume.disc.is_blank", NULL) )
+ return;
+
++ /* For crypto_LUKS devices check its dm-device, if it is already mounted*/
++ if ( libhal_device_get_property_QString(m_halContext, udi, "volume.fstype") == "crypto_LUKS" &&
++ !libhal_device_get_property_bool(m_halContext, udi, "volume.ignore", NULL) ) {
++ int num;
++ char **dm_uuid = libhal_manager_find_device_string_match(m_halContext, "volume.crypto_luks.clear.backing_volume",udi,&num,NULL);
++ /* if a dm device is found the volume is already decrypted */
++ if (num == 0) {
++ // TODO: Check for kryptomedia binary.
++ KProcess proc;
++ proc << "kryptomedia" << udi;
++ proc.start(KProcess::DontCare);
++ return;
++ }
++ }
++
+ /* Query drive udi */
+ QString driveUdi = libhal_device_get_property_QString(m_halContext, udi, "block.storage_device");
+ if ( driveUdi.isNull() ) // no storage - no fun