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