You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.6 KiB
32 lines
1.6 KiB
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
|