Control sub-TLV attributes order in rest module

Avner Elizarov avnerelizarov at gmail.com
Wed Sep 13 20:09:25 CEST 2017


Thanks everyone for trying to help :-)
I've tried many different options in the json and none of them did what I
wanted. When my json looked like this:
{"attr": {"op": "+=", "value":"value1"}, "attr": {"op": "+=",
"value":"value2"}}
only the second instance of "attr" was parsed by the rest module (The debug
log only printed the last value - "value2" and there was no mention of
"value1") and the response contained only the last value.
The only way I got the rest module to parse several instances of the same
attribute is by using an array like this: {"attr": ["value1",
"value2"]} however this results in all the values being adjacent on the
resulting packet created and I want to seperate them.
Am I missing something regarding the use of the "+=" operator? It seems
that because of the dict-like structure of json it isn't possible to have
more than one attribute with the same name in the json.

On Wed, Sep 13, 2017 at 4:32 AM Arran Cudbard-Bell <
a.cudbardb at freeradius.org> wrote:

> From the examples OP is assuming TLVs are structural so I think that's
> throwing off their assumptions generally.
>
> OP - Again - RADIUS TLVs are not structural, they're used purely to extend
> the numberspace, the only reason why they're packed inside one another is
> for efficiency, not to indicate a parent/child relationship between the
> attributes.
>
> >  The use of "operator" is clear, and is documented extensively all
> through the rest of the server.
>
> Yes, just not sure the behaviour is quite what people expect... But OTOH
> it is the correct behaviour given how the server works elsewhere.
>
> -Arran
>
> -
> List info/subscribe/unsubscribe? See
> http://www.freeradius.org/list/users.html


More information about the Freeradius-Users mailing list