I've been working the past days on adding support for multi-valued attributes in rlm_cache.
Thanks.
Before I send a pull request, I'll be glad if you could review my work and report if I need to correct anything.
Reviewed and left line comments on your commit.
What's currently supported :
attr <op> 'string value' attr <op> "xlat expanded value" attr :=|+= attr-name
Code available here : https://github.com/olivierbeytrison/freeradius-server/tree/rlm_cache-update
I also wanted to know if it is "allowed" to have multiple identical attributes with the SET operator in a list.
If people want to do multiple set operations that's fine. I mean yeah it's pointless, but it doesn't seem worth adding extra code to prevent it.
When are enforced the logic behind the operators ? when the radius packet is being crafted ?
No, it'd done when the pairs are moved between the cache list and the request_list with radius_pairmove. You need to add checks for operators and value types into cache_verify. -Arran