Hi All,

A number of commits have been pushed to master branch to remove the attribute, vendor, type and flags fields from the VLAUE_PAIR struct.


When VALUE_PAIRs are created, the attribute number and vendor are resolved to a DICT_ATTR, the DICT_ATTR is then used as the source of type information for the VALUE_PAIR. For attributes not found in the FreeRADIUS dictionary, instances of DICT_ATTR are dynamically allocated, then freed when the VALUE_PAIR is freed.

Alan has also rewritten the RADIUS protocol decoder to better support nested attributes, which should be fully supported before 3.0 is released.

Next week work will begin on integrating talloc. talloc is a hierachical memory allocator which can dramatically simplify memory management for trees of dynamically allocated objects. This is in preparation for adding request chaining* and nested TLVs.

As talloc is small (3K LoC)  we plan to bundle it with the server, and integrate it into the new build system in a similar way to jlibtool.

As always testing is appreciated.

-Arran

* Initially this will be for proxying between multiple virtual servers internally, but will make it easier to implement request trees, where a single incoming request spawns multiple child requests.