diff options
-rw-r--r-- | WHATS_NEW_DM | 1 | ||||
-rw-r--r-- | configure.in | 14 | ||||
-rw-r--r-- | libdm/libdevmapper.h | 13 |
3 files changed, 28 insertions, 0 deletions
diff --git a/WHATS_NEW_DM b/WHATS_NEW_DM index 0f598c6d4..86f563337 100644 --- a/WHATS_NEW_DM +++ b/WHATS_NEW_DM @@ -1,5 +1,6 @@ Version 1.02.71 - ==================================== + Add configure --with-default-name-mangling. Test for parsed words in _umount() dmeventd snapshot plugin. Fix memory leak in fail path of parse_loop_device_name() in dmsetup. Check for missing reply_uuid in dm_event_get_registered_device(). diff --git a/configure.in b/configure.in index a4006bcb3..784cfa1c4 100644 --- a/configure.in +++ b/configure.in @@ -229,6 +229,20 @@ esac AC_MSG_RESULT(on $ADD_NODE) AC_DEFINE_UNQUOTED([DEFAULT_DM_ADD_NODE], $add_on, [Define default node creation behavior with dmsetup create]) +AC_MSG_CHECKING(default name mangling) +AC_ARG_WITH(default-name-mangling, + AC_HELP_STRING([--with-default-name-mangling=MANGLING], + [default name mangling: auto/none/hex [[MANGLING=auto]]]), + MANGLING=$withval, MANGLING=auto) +case "$MANGLING" in + auto) mangling=DM_STRING_MANGLING_AUTO;; + disabled) mangling=DM_STRING_MANGLING_NONE;; + hex) mangling=DM_STRING_MANGLING_HEX;; + *) AC_MSG_ERROR([--with-default-name-mangling parameter invalid]);; +esac +AC_MSG_RESULT($MANGLING) +AC_DEFINE_UNQUOTED([DEFAULT_DM_NAME_MANGLING], $mangling, [Define default name mangling behaviour]) + ################################################################################ dnl -- LVM1 tool fallback option AC_MSG_CHECKING(whether to enable lvm1 fallback) diff --git a/libdm/libdevmapper.h b/libdm/libdevmapper.h index 61a4374f7..b7bb94f16 100644 --- a/libdm/libdevmapper.h +++ b/libdm/libdevmapper.h @@ -274,6 +274,19 @@ int dm_task_run(struct dm_task *dmt); void dm_task_update_nodes(void); /* + * Mangling support + * + * Character whitelist: 0-9, A-Z, a-z, #+-.:=@_ + * HEX mangling format: \xNN, NN being the hex value of the character. + * (whitelist and format supported by udev) +*/ +typedef enum { + DM_STRING_MANGLING_NONE, /* do not mangle at all */ + DM_STRING_MANGLING_AUTO, /* mangle only if not already mangled with hex, error when mixed */ + DM_STRING_MANGLING_HEX /* always mangle with hex encoding, no matter what the input is */ +} dm_string_mangling_t; + +/* * Configure the device-mapper directory */ int dm_set_dev_dir(const char *dir); |