* than a request qualifier.
*/
if (err == ATTR_REF_ERROR_INVALID_LIST_QUALIFIER) {
- fr_strerror_printf("Unknown module or invalid list qualifier");
+ fr_strerror_printf("Unknown expansion function or invalid list qualifier");
}
return slen - (p - fmt); /* error somewhere after second character */
}
/*
* Check for empty expressions %{} %{: %{[
*/
- if ((q == (p + 2)) && ((*q == '}') || (*q == ':') || (*q == '['))) {
- fr_strerror_printf("Empty expression is invalid");
- return -2; /* error @ third character of format string */
+ if (q == (p + 2)) {
+ switch (*q) {
+ case '}':
+ fr_strerror_printf("Empty expression is invalid");
+ return -2; /* error @ third character of format string */
+
+ case ':':
+ fr_strerror_printf("Missing expansion function or list qualifier");
+ return -2;
+
+ case '[':
+ fr_strerror_printf("Missing attribute name");
+ return -2;
+
+ default:
+ break;
+ }
}
/*
#
xlat %{foo: bar}
-data ERROR offset 2 'Unknown module or invalid list qualifier'
+data ERROR offset 2 'Unknown expansion function or invalid list qualifier'
xlat %{test:bar}
data %{test:bar}
data ERROR offset 2 'Empty expression is invalid'
xlat %{:}
-data ERROR offset 2 'Empty expression is invalid'
+data ERROR offset 2 'Missing expansion function or list qualifier'
xlat %{:bar}
-data ERROR offset 2 'Empty expression is invalid'
+data ERROR offset 2 'Missing expansion function or list qualifier'
xlat %{[}
-data ERROR offset 2 'Empty expression is invalid'
+data ERROR offset 2 'Missing attribute name'
xlat %{[baz}
-data ERROR offset 2 'Empty expression is invalid'
+data ERROR offset 2 'Missing attribute name'
xlat %{ }
data ERROR offset 2 'Invalid char ' ' in expression'