From: Alan T. DeKok Date: Sun, 10 Jan 2021 14:38:19 +0000 (-0500) Subject: allow RHS cast X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d9bac0656080d00f6448358d8fb4348fda568fbc;p=thirdparty%2Ffreeradius-server.git allow RHS cast because most of the time we can just promote things as necessary --- diff --git a/src/lib/server/cond_tokenize.c b/src/lib/server/cond_tokenize.c index 0773b5941a7..a487c737fdc 100644 --- a/src/lib/server/cond_tokenize.c +++ b/src/lib/server/cond_tokenize.c @@ -1320,12 +1320,6 @@ static ssize_t cond_tokenize(TALLOC_CTX *ctx, fr_cond_t **out, .rhs = rhs }; - if (rhs->cast != FR_TYPE_INVALID) { - fr_strerror_const("Unexpected cast in right side of comparison"); - fr_sbuff_set(&our_in, &m_rhs_cast); - goto error; - } - #ifdef HAVE_REGEX /* * LHS can't have regex. We can't use regex as a unary diff --git a/src/tests/unit/condition/base.txt b/src/tests/unit/condition/base.txt index 99db3b55b06..91df460f913 100644 --- a/src/tests/unit/condition/base.txt +++ b/src/tests/unit/condition/base.txt @@ -138,8 +138,12 @@ match &Filter-Id == &Framed-IP-Address condition &Filter-Id == &Framed-IP-Address match &Filter-Id == &Framed-IP-Address +# +# We can automatically promote things as needed. But if the +# user forces incompatible types, then that's an error. +# condition &Filter-Id == &Framed-IP-Address -match ERROR offset 22: Unexpected cast in right side of comparison +match ERROR offset 0: Incompatible casts condition &Filter-Id == &Framed-IP-Address match ERROR offset 23: Unknown data type