help-gnu-radius
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Help-gnu-radius] Fw: USR Total Control - attribute not found


From: Michael Samanov
Subject: [Help-gnu-radius] Fw: USR Total Control - attribute not found
Date: Tue, 26 Nov 2002 15:45:19 +0300

This message is primarily to Serge.

Serge, I suspect that you missed this when you was at your vacation. The
patch itself is attached

Sincerely yours,
  Michael (mailto:address@hidden)
----- Original Message -----
From: "Michael Samanov" <address@hidden>
To: "Andrea Mistrali" <address@hidden>; "Sergey Poznyakoff"
<address@hidden>
Cc: <address@hidden>
Sent: Wednesday, October 02, 2002 5:56 PM
Subject: Re: USR Total Control - attribute not found


> ----- Original Message -----
> From: "Andrea Mistrali" <address@hidden>
> To: <address@hidden>
> Cc: <address@hidden>; <address@hidden>
> Sent: Wednesday, October 02, 2002 5:16 PM
> Subject: USR Total Control - attribute not found
>
>
> >
> > Hi to all!
> >
> > I've seen in the archives a thread about GNU Radius not supporting
> USR/3Com
> > VSA.
> >
> > It has been said it could be a problem with an old dictionary. It is not
a
> > dictionary problem, but Total Control Hubs does not follow RFCs sending
> VSA.
> >
> > RFC says that a VSA packet should be made in this way:
> >
> > 1 byte for Attribute (26)
> > 1 byte for Attribute length
> > 4 bytes for Vendor Code (V009 for Cisco, V429 for USR/3Com, so on)
> > 1 byte for Vendor attribute
> > 1 byte for Vendor attribute value length
> > N bytes for value
> >
> > USR/3Com VSA packets are made this other way:
> >
> > 1 byte for Attribute (26)
> > 1 byte for Attribute length
> > 4 bytes for Vendor Code (V429)
> > 4 bytes for Vendor attribute
> > N bytes for value
> >
> > I tried to hack source code to make GNU Radius work with USR Total
Control
> and
> > here is the patch:
> >
> > --- gnu-radius-0.96.4-nousr/radiusd/radius.c    Wed Oct  2 14:58:40 2002
> > +++ gnu-radius-0.96.4/radiusd/radius.c  Wed Oct  2 14:58:59 2002
> > @@ -428,10 +428,21 @@ radrecv (host, udp_port, buffer, length)
> >           if ((vendorcode = vendor_pec_to_id (vendorpec)) != 0)
> >             {
> >               ptr += 4;
> > -             attribute = *ptr | (vendorcode << 16);
> > -             ptr += 2;
> > -             attrlen -= 6;
> > -             length -= 6;
> > +             if (vendorpec == 429)
> > +               {               /* Hack for non-compliant USR VSA */
> > +                 memcpy (&attribute, ptr, 4);
> > +                 ptr += 4;
> > +                 attribute = ntohl (attribute) | (vendorcode << 16);
> > +                 attrlen -= 8;
> > +                 length -= 8;
> > +               }
> > +             else
> > +               {
> > +                 attribute = *ptr | (vendorcode << 16);
> > +                 ptr += 2;
> > +                 attrlen -= 6;
> > +                 length -= 6;
> > +               }
> >             }
> >         }
> >
> >
> > This patch works with the USR dictionary given with GNU radius
(dict/usr).
> >
> > Hope to help
> >
> > Andrea Mistrali
>
> Andrea! Many big, great, huge, giant thanks!!! Now it works!!!
>
> Thanks again!
>
> These guys from USR/3COM (and Gate'sSoft, of course) probably don't read
any
> RFC's. What a reason - they think - to study first and to follow then the
> common standards? We'll better invent our very own ones instead of it.
>
> Well done, 3COM!
>
> To Sergey Poznyakoff: Sergey, could you, please, incorporate this patch
into
> the source?
>
> Sincerely yours,
>   Michael (mailto:address@hidden)
>

Attachment: patch-radiusd.c
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]