Problem with 3Com-User-Access-Level and rlm_perl
Krzysztof Olędzki
krzysztof.oledzki at axelspringer.pl
Sun Nov 26 21:02:53 CET 2006
On 2006-11-26 20:25, Alan DeKok wrote:
> Krzysztof Olędzki wrote:
>
>> Like I said in my first mail: problem with rlm_perl was tested with both
>> freeradius-1.1.2 and 1.1.3. The test with users file was done using
>> version 1.1.3.
>
> Ok... I get enough email that I don't keep track of previous messages
> in a thread.
>
> In any case, the issue is that the VALUE name starts with '3', so
> *any* of the '3Com-*' VALUES get parsed as '3'. The solution is to
> update the VALUE name so it doesn't start with '3'.
>
> Or, update the source code to be a little more intelligent about
> parsing VALUEs
OK, probably found it (src/lib/valuepair.c):
case PW_TYPE_INTEGER:
/*
* If it starts with a digit, it must
* be a number (or a range).
*
* Note that ALL integers are unsigned!
*/
if (isdigit((int) *value)) {
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
vp->lvalue = (uint32_t) strtoul(value, NULL, 10);
vp->length = 4;
}
/*
* Look for the named value for the given
* attribute.
*/
else if ((dval = dict_valbyname(vp->attribute, value)) == NULL){
librad_log("Unknown value %s for attribute %s",
value, vp->name);
return NULL;
} else {
vp->lvalue = dval->value;
vp->length = 4;
}
break;
I'll try to cook a patch.
Pozdrawiam,
Krzysztof Olędzki
--
Krzysztof Olędzki
Axel Springer Polska Sp. z o.o.
tel: +48-22-2320969
fax: +48-22-2325530
More information about the Freeradius-Users
mailing list