v2.5.1: Allow ';' as selector separator in resource URI
diff --git a/ChangeLog b/ChangeLog
index 76b9558..7997dd8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2.5.1
+- Features
+  - Allow ';' as separator for URI selectors
+    (RFC 1866 section 8.2.1)
+  - Warn if ',' is used as selector separator
+
 2.5.0
 - Features
   - Rewrite selector and property handling to keep
diff --git a/VERSION.cmake b/VERSION.cmake
index 18bcd01..2cad2f9 100644
--- a/VERSION.cmake
+++ b/VERSION.cmake
@@ -44,10 +44,10 @@
 #    set COMPATMINOR to MINOR. (binary incompatible change)
 #
 
-# Package version 2.5.0
+# Package version 2.5.1
 SET(OPENWSMAN_MAJOR "2")
 SET(OPENWSMAN_MINOR "5")
-SET(OPENWSMAN_PATCH "0")
+SET(OPENWSMAN_PATCH "1")
 
 # Plugin API 2.2
 SET(OPENWSMAN_PLUGIN_API_MAJOR "2")
diff --git a/src/lib/u/uri.c b/src/lib/u/uri.c
index abc6ecd..25ddb9c 100644
--- a/src/lib/u/uri.c
+++ b/src/lib/u/uri.c
@@ -232,6 +232,17 @@
 
 		u_trim(key);
 		u_trim(val);
+          /* if we parse a URI (& separator) and the value contains
+           * ',' and '=', then the query probably has wrong syntax
+           * and uses ',' instead of '&'
+           */
+          if (*separator == '&') {
+            if (strchr(val, ',')) {
+              if (strchr(val, '=')) {
+                fprintf(stderr, "Maybe wrong use of ',' separator in URI, should be '&'\n");
+              }
+            }
+          }
 		u_trim_quotes(val);
 		if (u_string_unify(key) || u_string_unify(val)) {
 			u_free(key);
@@ -259,10 +270,17 @@
 	return NULL;
 }
 
+/*
+ * parse query according to
+ * http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax
+ * and  RFC 1866 section 8.2.1 : by Tim Berners-Lee in 1995 encourages CGI authors to support ';' in addition to '&'.
+ *
+ */
+
 hash_t *
 u_parse_query(const char *query)
 {
-  return _u_parse(query, "&");
+  return _u_parse(query, "&;");
 }
 
 hash_t *