From: Alan T. DeKok Date: Tue, 9 Aug 2011 14:06:53 +0000 (-0400) Subject: Allow comparisons for integer64 data type X-Git-Tag: release_3_0_0_beta0~689 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1e0024e94135c51d173db5482dcc67b42b1fe0d;p=thirdparty%2Ffreeradius-server.git Allow comparisons for integer64 data type --- diff --git a/src/lib/valuepair.c b/src/lib/valuepair.c index 5a37116e5bd..97c4e2e22d4 100644 --- a/src/lib/valuepair.c +++ b/src/lib/valuepair.c @@ -2162,6 +2162,18 @@ int paircmp(VALUE_PAIR *one, VALUE_PAIR *two) compare = two->vp_integer - one->vp_integer; break; + case PW_TYPE_INTEGER64: + /* + * Don't want integer overflow! + */ + if (two->vp_integer64 < one->vp_integer64) { + compare = -1; + } else if (two->vp_integer64 > one->vp_integer64) { + compare = +1; + } else { + compare = 0; + } + break; case PW_TYPE_IPADDR: compare = ntohl(two->vp_ipaddr) - ntohl(one->vp_ipaddr); break; diff --git a/src/main/valuepair.c b/src/main/valuepair.c index e6f29b62276..b644fd75834 100644 --- a/src/main/valuepair.c +++ b/src/main/valuepair.c @@ -230,6 +230,18 @@ int radius_compare_vps(REQUEST *request, VALUE_PAIR *check, VALUE_PAIR *vp) case PW_TYPE_INTEGER: ret = vp->vp_integer - check->vp_integer; break; + case PW_TYPE_INTEGER64: + /* + * Don't want integer overflow! + */ + if (vp->vp_integer64 < check->vp_integer64) { + ret = -1; + } else if (vp->vp_integer64 > check->vp_integer64) { + ret = +1; + } else { + ret = 0; + } + break; case PW_TYPE_DATE: ret = vp->vp_date - check->vp_date; break;