* [PATCH 2/6][devname mangling] Define string mangle type in libdevmapper and prepare a configure to select default mangling
@ 2011-10-14 14:59 Peter Rajnoha
0 siblings, 0 replies; only message in thread
From: Peter Rajnoha @ 2011-10-14 14:59 UTC (permalink / raw)
To: lvm-devel
Define new dm_string_mangle_t to select the string mangling used.
Possible values are:
DM_STRING_MANGLE_NONE - do nothing, no mangling at all (current behaviour)
DM_STRING_MANGLE_HEX - mangle each character not on a whitelist with \xNN
format, NN being a hex value of the character.
DM_STRING_MANGLE_AUTO - if \xNN is detected in the string, do not mangle it
again, keep it as it and consider that the string is
already mangled. If we hit a character that is not
on a whitelist, mangle it. If we hit both - so we have
mixed mangled/not mangled part in the string, return
with error.
Also, this patch adds a configure option "--with-default-name-mangle" to select
default operation. Patches using it will follow...
Peter
---
configure.in | 14 ++++++++++++++
libdm/libdevmapper.h | 13 +++++++++++++
2 files changed, 27 insertions(+), 0 deletions(-)
diff --git a/configure.in b/configure.in
index 5275b95..392fb9b 100644
--- a/configure.in
+++ b/configure.in
@@ -227,6 +227,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 mangle)
+AC_ARG_WITH(default-name-mangle,
+ AC_HELP_STRING([--with-default-name-mangle=MANGLE],
+ [default name mangle: auto/disabled/hex [[MANGLE=auto]]]),
+ MANGLE=$withval, MANGLE=auto)
+case "$MANGLE" in
+ auto) mangle=DM_STRING_MANGLE_AUTO;;
+ disabled) mangle=DM_STRING_MANGLE_NONE;;
+ hex) mangle=DM_STRING_MANGLE_HEX;;
+ *) AC_MSG_ERROR([--with-default-name-mangle parameter invalid]);;
+esac
+AC_MSG_RESULT($MANGLE)
+AC_DEFINE_UNQUOTED([DEFAULT_DM_NAME_MANGLE], $mangle, [Define default name mangle 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 fdf8943..1b30069 100644
--- a/libdm/libdevmapper.h
+++ b/libdm/libdevmapper.h
@@ -250,6 +250,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 mangle format: \xNN, NN being the hex value of the character.
+ * (whitelist and format supported by udev)
+*/
+typedef enum {
+ DM_STRING_MANGLE_NONE, /* do not mangle at all */
+ DM_STRING_MANGLE_AUTO, /* mangle only if not already mangled with hex, error when mixed */
+ DM_STRING_MANGLE_HEX /* always mangle with hex encoding, no matter what the input is */
+} dm_string_mangle_t;
+
+/*
* Configure the device-mapper directory
*/
int dm_set_dev_dir(const char *dir);
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2011-10-14 14:59 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-10-14 14:59 [PATCH 2/6][devname mangling] Define string mangle type in libdevmapper and prepare a configure to select default mangling Peter Rajnoha
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.