The code to delete all attributes (as documented in unlang) was
previously added in evaluate.c. But the parser hadn't been updated,
so it was impossible to actually use that functionality.
case T_OP_SUB:
case T_OP_LE:
case T_OP_GE:
+ case T_OP_CMP_FALSE:
if (!this || (strcmp(this->name1, "update") != 0)) {
radlog(L_ERR, "%s[%d]: Invalid operator in assignment",
filename, *lineno);
*/
token = gettoken(&p, comp, sizeof(comp));
if ((token < T_OP_NE) || (token > T_OP_CMP_EQ) ||
- (token == T_OP_CMP_TRUE) ||
- (token == T_OP_CMP_FALSE)) {
+ (token == T_OP_CMP_TRUE)) {
radlog(L_ERR, "Expected comparison at: %s", comp);
return FALSE;
}
(vp->operator != T_OP_SUB) &&
(vp->operator != T_OP_LE) &&
(vp->operator != T_OP_GE) &&
+ (vp->operator != T_OP_CMP_FALSE) &&
(vp->operator != T_OP_SET)) {
pairfree(&head);
pairfree(&vp);