On 27/10/12 12:49, Alan DeKok wrote:
I managed to find an hour or two in between various things. I've taken a look at the proxy code, and added some fixes in "master".
To be polite, I didn't quite understand the previous code. So... I've deleted things, and simplified other things. The result is that the "zombie" home server detection should be better.
I don't know if it fixes the "crash on dead home server" issue that people were seeing. I wasn't able to reproduce that. But, the relevant code is now different. So I hope it's fixed.
As always, blame Arran for any bugs. :)
Just a quick note - I'm not sure the home server "status" is working properly in the new code; I'm getting: # radmin -d /etc/raddb3 -n eduroam -e 'show home_server list' 194.82.174.185 1812 udp auth unknown 0 194.82.174.185 1813 udp acct unknown 0 194.83.56.233 1812 udp auth unknown 0 194.83.56.233 1813 udp acct unknown 0 194.83.56.249 1812 udp auth unknown 0 194.83.56.249 1813 udp acct unknown 0 ...even though the servers are up and responding to packets. Same over the RADIUS-based stats interface (minor related note - the "FreeRADIUS-Stats-Server-State" attribute is missing a definition for value "3" i.e. "Unknown") I think it might be the logic in process.c:remove_from_proxy_hash_nl - that function seems to set the state to "UNKNOWN" if there are zero outstanding packets, which I guess is not right?