58 lines
1.6 KiB
Diff
58 lines
1.6 KiB
Diff
|
---
|
||
|
libmultipath/dict.c | 28 ++++++++++++++++++++++++++++
|
||
|
1 file changed, 28 insertions(+)
|
||
|
|
||
|
Index: multipath-tools/libmultipath/dict.c
|
||
|
===================================================================
|
||
|
--- multipath-tools.orig/libmultipath/dict.c
|
||
|
+++ multipath-tools/libmultipath/dict.c
|
||
|
@@ -720,6 +720,22 @@ product_handler(vector strvec)
|
||
|
}
|
||
|
|
||
|
static int
|
||
|
+revision_handler(vector strvec)
|
||
|
+{
|
||
|
+ struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);
|
||
|
+
|
||
|
+ if (!hwe)
|
||
|
+ return 1;
|
||
|
+
|
||
|
+ hwe->revision = set_value(strvec);
|
||
|
+
|
||
|
+ if (!hwe->revision)
|
||
|
+ return 1;
|
||
|
+
|
||
|
+ return 0;
|
||
|
+}
|
||
|
+
|
||
|
+static int
|
||
|
bl_product_handler(vector strvec)
|
||
|
{
|
||
|
struct hwentry * hwe = VECTOR_LAST_SLOT(conf->hwtable);
|
||
|
@@ -1625,6 +1641,17 @@ snprint_hw_product (char * buff, int len
|
||
|
}
|
||
|
|
||
|
static int
|
||
|
+snprint_hw_revision (char * buff, int len, void * data)
|
||
|
+{
|
||
|
+ struct hwentry * hwe = (struct hwentry *)data;
|
||
|
+
|
||
|
+ if (!hwe->revision)
|
||
|
+ return 0;
|
||
|
+
|
||
|
+ return snprintf(buff, len, "\"%s\"", hwe->revision);
|
||
|
+}
|
||
|
+
|
||
|
+static int
|
||
|
snprint_hw_bl_product (char * buff, int len, void * data)
|
||
|
{
|
||
|
struct hwentry * hwe = (struct hwentry *)data;
|
||
|
@@ -2184,6 +2211,7 @@ init_keywords(void)
|
||
|
install_sublevel();
|
||
|
install_keyword("vendor", &vendor_handler, &snprint_hw_vendor);
|
||
|
install_keyword("product", &product_handler, &snprint_hw_product);
|
||
|
+ install_keyword("revision", &revision_handler, &snprint_hw_revision);
|
||
|
install_keyword("product_blacklist", &bl_product_handler, &snprint_hw_bl_product);
|
||
|
install_keyword("path_grouping_policy", &hw_pgpolicy_handler, &snprint_hw_path_grouping_policy);
|
||
|
install_keyword("getuid_callout", &hw_getuid_callout_handler, &snprint_hw_getuid_callout);
|