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