Move DEV_MAPPER_PATH from DMRaid.h to Utils.h (#760080)

Renamed from DEV_MAP_PATH to DEV_MAPPER_PATH.  Moved so that the
constant is logically intended for use outside of the DMRaid class.

Also specifically make the string constant have external linkage, rather
than the default internal (static) linkage for constants, so that there
is only one copy of the variable in the program, rather than one copy in
each compilation unit which included DMRaid.h.  Namely DMRaid.cc and
GParted_Core.cc.

References:
[1] Proper way to do const std::string in a header file?
    http://stackoverflow.com/questions/10201880/proper-way-to-do-const-stdstring-in-a-header-file
[2] What is external linkage and internal linkage in C++
    http://stackoverflow.com/questions/1358400/what-is-external-linkage-and-internal-linkage-in-c/1358796#1358796

Bug 760080 - Implement read-only LUKS support
This commit is contained in:
Mike Fleetwood 2016-01-03 08:42:49 +00:00 committed by Curtis Gedak
parent cd64d6503b
commit 1b55dfad5b
4 changed files with 15 additions and 14 deletions

View File

@ -32,9 +32,6 @@
#include <vector> #include <vector>
//Declare some constants
const Glib::ustring DEV_MAP_PATH = "/dev/mapper/" ;
namespace GParted namespace GParted
{ {

View File

@ -55,6 +55,8 @@ const Byte_Value EXBIBYTE=(PEBIBYTE * KIBIBYTE);
const Glib::ustring UUID_RANDOM = _("(New UUID - will be randomly generated)") ; const Glib::ustring UUID_RANDOM = _("(New UUID - will be randomly generated)") ;
const Glib::ustring UUID_RANDOM_NTFS_HALF = _("(Half new UUID - will be randomly generated)") ; const Glib::ustring UUID_RANDOM_NTFS_HALF = _("(Half new UUID - will be randomly generated)") ;
extern const Glib::ustring DEV_MAPPER_PATH;
enum FILESYSTEM enum FILESYSTEM
{ {
// Special partition types and functions // Special partition types and functions

View File

@ -167,7 +167,7 @@ void DMRaid::get_devices( std::vector<Glib::ustring> & device_list )
device_list .clear() ; device_list .clear() ;
for ( unsigned int k=0; k < dmraid_devices .size(); k++ ) for ( unsigned int k=0; k < dmraid_devices .size(); k++ )
device_list .push_back( DEV_MAP_PATH + dmraid_devices[k] ) ; device_list.push_back( DEV_MAPPER_PATH + dmraid_devices[k] );
} }
Glib::ustring DMRaid::get_dmraid_name( const Glib::ustring & dev_path ) Glib::ustring DMRaid::get_dmraid_name( const Glib::ustring & dev_path )
@ -220,7 +220,7 @@ void DMRaid::get_dmraid_dir_entries( const Glib::ustring & dev_path, std::vector
//Loop through the entries in the directory //Loop through the entries in the directory
Glib::ustring filename = "" ; Glib::ustring filename = "" ;
Glib::Dir dir( DEV_MAP_PATH) ; Glib::Dir dir( DEV_MAPPER_PATH );
while ( ( filename = dir .read_name() ) != "" ) while ( ( filename = dir .read_name() ) != "" )
{ {
if ( filename == "control" ) if ( filename == "control" )
@ -287,11 +287,11 @@ Glib::ustring DMRaid::make_path_dmraid_compatible( Glib::ustring partition_path
for ( unsigned int k=0; k < dmraid_devices .size(); k++ ) for ( unsigned int k=0; k < dmraid_devices .size(); k++ )
{ {
reg_exp = DEV_MAP_PATH + dmraid_devices[ k ] + "p([0-9]+)" ; reg_exp = DEV_MAPPER_PATH + dmraid_devices[k] + "p([0-9]+)";
partition_number = Utils::regexp_label( partition_path, reg_exp ) ; partition_number = Utils::regexp_label( partition_path, reg_exp ) ;
if ( ! partition_number .empty() ) if ( ! partition_number .empty() )
{ {
partition_path = DEV_MAP_PATH + dmraid_devices[ k ] + partition_number ; partition_path = DEV_MAPPER_PATH + dmraid_devices[k] + partition_number;
return partition_path ; return partition_path ;
} }
} }
@ -308,7 +308,7 @@ Glib::ustring DMRaid::make_path_dmraid_compatible( Glib::ustring partition_path
if ( ! device_path .empty() ) if ( ! device_path .empty() )
{ {
device_path = get_udev_dm_name( device_path ) ; device_path = get_udev_dm_name( device_path ) ;
partition_path = DEV_MAP_PATH + device_path + partition_number ; partition_path = DEV_MAPPER_PATH + device_path + partition_number;
} }
} }
@ -323,7 +323,7 @@ bool DMRaid::create_dev_map_entries( const Partition & partition, OperationDetai
bool exit_status = true ; bool exit_status = true ;
/*TO TRANSLATORS: looks like create missing /dev/mapper entries */ /*TO TRANSLATORS: looks like create missing /dev/mapper entries */
Glib::ustring tmp = String::ucompose ( _("create missing %1 entries"), DEV_MAP_PATH ) ; Glib::ustring tmp = String::ucompose ( _("create missing %1 entries"), DEV_MAPPER_PATH );
operationdetail .add_child( OperationDetail( tmp ) ); operationdetail .add_child( OperationDetail( tmp ) );
//Newer dmraid defaults to always inserting the letter 'p' between the device name //Newer dmraid defaults to always inserting the letter 'p' between the device name
@ -422,14 +422,14 @@ bool DMRaid::delete_affected_dev_map_entries( const Partition & partition, Opera
bool exit_status = true ; bool exit_status = true ;
/*TO TRANSLATORS: looks like delete affected /dev/mapper entries */ /*TO TRANSLATORS: looks like delete affected /dev/mapper entries */
Glib::ustring tmp = String::ucompose ( _("delete affected %1 entries"), DEV_MAP_PATH ) ; Glib::ustring tmp = String::ucompose ( _("delete affected %1 entries"), DEV_MAPPER_PATH );
operationdetail .add_child( OperationDetail( tmp ) ); operationdetail .add_child( OperationDetail( tmp ) );
get_affected_dev_map_entries( partition, affected_entries ) ; get_affected_dev_map_entries( partition, affected_entries ) ;
for ( unsigned int k=0; k < affected_entries .size(); k++ ) for ( unsigned int k=0; k < affected_entries .size(); k++ )
{ {
command = "dmsetup remove " + DEV_MAP_PATH + affected_entries[k] ; command = "dmsetup remove " + DEV_MAPPER_PATH + affected_entries[k];
if ( execute_command( command, operationdetail .get_last_child() ) ) if ( execute_command( command, operationdetail .get_last_child() ) )
exit_status = false ; //command failed exit_status = false ; //command failed
} }
@ -445,7 +445,7 @@ bool DMRaid::delete_dev_map_entry( const Partition & partition, OperationDetail
bool exit_status = true ; bool exit_status = true ;
/*TO TRANSLATORS: looks like delete /dev/mapper entry */ /*TO TRANSLATORS: looks like delete /dev/mapper entry */
Glib::ustring tmp = String::ucompose ( _("delete %1 entry"), DEV_MAP_PATH ) ; Glib::ustring tmp = String::ucompose ( _("delete %1 entry"), DEV_MAPPER_PATH );
operationdetail .add_child( OperationDetail( tmp ) ); operationdetail .add_child( OperationDetail( tmp ) );
std::vector<Glib::ustring> partition_entries ; std::vector<Glib::ustring> partition_entries ;
@ -476,7 +476,7 @@ bool DMRaid::purge_dev_map_entries( const Glib::ustring & dev_path )
for ( unsigned int k=0; k < dir_list .size(); k++ ) for ( unsigned int k=0; k < dir_list .size(); k++ )
{ {
command = "dmsetup remove " + DEV_MAP_PATH + dir_list[k] ; command = "dmsetup remove " + DEV_MAPPER_PATH + dir_list[k];
if ( Utils::execute_command( command, output, error, true ) ) if ( Utils::execute_command( command, output, error, true ) )
exit_status = false ; //command failed exit_status = false ; //command failed
} }
@ -495,7 +495,7 @@ bool DMRaid::update_dev_map_entry( const Partition & partition, OperationDetail
bool exit_status = true ; bool exit_status = true ;
/*TO TRANSLATORS: looks like update /dev/mapper entry */ /*TO TRANSLATORS: looks like update /dev/mapper entry */
Glib::ustring tmp = String::ucompose ( _("update %1 entry"), DEV_MAP_PATH ) ; Glib::ustring tmp = String::ucompose ( _("update %1 entry"), DEV_MAPPER_PATH );
operationdetail .add_child( OperationDetail( tmp ) ); operationdetail .add_child( OperationDetail( tmp ) );
if( ! delete_dev_map_entry( partition , operationdetail .get_last_child() ) ) if( ! delete_dev_map_entry( partition , operationdetail .get_last_child() ) )

View File

@ -39,6 +39,8 @@
namespace GParted namespace GParted
{ {
const Glib::ustring DEV_MAPPER_PATH = "/dev/mapper/";
Sector Utils::round( double double_value ) Sector Utils::round( double double_value )
{ {
return static_cast<Sector>( double_value + 0.5 ) ; return static_cast<Sector>( double_value + 0.5 ) ;