Creating a timer within a module

Alejandro Pérez Méndez alex at
Mon May 8 21:18:40 CEST 2017

>    You should create a thread in the modules initialization routine.  Then, call radius_event_list_corral() to get the main server event list.
>    That thread can do updates.

Thanks. I'll look into it. I didn't want to make changes to rlm_realm, 
just to trustrouter.c. But if I need to create the thread there, so be it.

>    You will need to be sure that memory accesses are thread-safe.  How to do that... is not simple.  I've made some changes in realms.c, but I don't think they're finished.
>    In the end, v3 isn't designed to have dynamic realm updates.  And fixing it will be almost impossible at this stage.

I see. My code won't do anything different to what it is currently being 
done in trustrouter.c... would there be any difference? I assume current 
code can potentially be executed from different threads.

What I see is that trustrouter.c either:
1) Adds a new realm, which seems to be mutex protected by the tree itself.
2) Replaces one server pool with another one. This change does not seem 
to be mutex protected 

I will only do 2), in exactly the same way as it is being done right 
now, but within the event handler.

>    Alan DeKok.
> -
> List info/subscribe/unsubscribe? See

More information about the Freeradius-Devel mailing list