I'm sending a patch solving ticket #599 for review. After I tried some other
solutions, this one seemed to be the most simple one which didn't cause any
problems.
My only concern was whether monitoring the LDAP socket will be restored once
the backend goes online. Looking at the code, it should, because
sdap_install_callbacks is called every time sh->connected is set to true. But
still I wanted to be sure. From testing performed by Dmitri, it seems that I
was right and the backend is correctly restored.
Here is a complete test case:
1. Disconnect from the network
2. Try to log in
-- the data provider should now go offline
3. Connect to the network
4. Wait for the log filling message to appear in the log
-- ! The messsage should appear only once !
5. If the message doesn't appear, repeat from step 1
6. If the message appeared, try to log in
7. If successful, check that the login was performed online and not from
cached credentials
8. Step 7 might need to be repeated a couple times, it takes some time for
SSSD to go online again
Note: the reproduction of this issue might not be that easy. To achieve the
message appearing in the log, you would have to try different scenarios (NB
connected using VPN -> suspended -> woke up in the company network ->
suspended -> ...)
Jan