I'd like to know what happens to an activated apps that tries to validate a license if the LimeLM server becomes unavailable (Internet is working but the server cannot be reached). How is that case handled by TurboActivate.IsGenuine?
If you open the code comments (you're using C# or VB.NET right?) you'll see an in-depth explanation. Ctrl + CLick the IsGenuine() function to go to the function definition and you'll see the explanation.
Here's the explanation from TurboActivate.h (same explanation, slightly different formatting):
Checks whether the computer is genuinely activated by verifying with the LimeLM serversafter a certain number of days you specify.
This is meant as a replacement of both IsActivated() and IsGenuine(). Call this at thetop of your program and let IsGenuineEx() handle all the details.
This differs with IsGenuine() in 3 major ways:
1. You can specify how often to verify with the LimeLM servers and it handles all the date tracking behind the scenes.
2. IsGenuineEx() prevents your app from hammering the end-user's network after and TA_E_INET error return code by not checking with the LimeLM servers until at least 5 hours has passed. If you call IsGenuineEx() after a TA_E_INET return and before 5 hours has elapsed then this function will return TA_E_INET_DELAYED.
(If you give the user the option to recheck with LimeLM, e.g. via a button like "Retry now" then call IsGenuine() to immeditately retry without waiting 5 hours).
3. If a TA_E_INET error is being returned, and the grace period has expired, then IsGenuineEx() will return TA_FAIL. IsGenuineEx() will continue to try contacting the LimeLM servers on subsequent calls (5 hours apart), but you should treat the TA_FAIL as a hard failure.
Returns: TA_OK or TA_E_FEATURES_CHANGED on success. Handle TA_E_INET and TA_E_INET_DELAYED as warnings that you should let the end user know about.
Handle all other return codes as failures.
Possible return codes: TA_OK, TA_FAIL, TA_E_ACTIVATE, TA_E_INET, TA_E_GUID TA_E_PDETS, TA_E_COM, TA_E_EXPIRED, TA_E_REVOKED, TA_E_INVALID_ARGS, TA_E_INVALID_FLAGS, TA_E_IN_VM, TA_E_INET_DELAYED, TA_E_FEATURES_CHANGED
Short answer: there's a grace period where you can notify the user if their internet is acting faulty (they can't access the server).
Is that helpful?