IsGenuine 'grace days' questions

Hi,

1) When a computer fails its IsGenuine check (due to lack of internet connectivity) and the 'grace period' begins, my assumptions are that; (a) every subsequent call to IsGenuine during the grace period will attempt to contact your servers, (b) once a connection is successfully made, it will go back to only checking every x days (as specified by daysBetweenChecks), and the grace period will be reset. Are these assumptions correct?

2) Is it possible for a computer to check whether it has failed its IsGenuine check and is currently in the period specified by graceDaysOnInetErr?

3) Is there some way to check, server-side, which activations have not contacted your servers for a certain amount of time? We have clients who have infrequent internet connectivity who need to ensure that their machines don't drop their licenses without prior warning. It would be great if we could run a periodic job that could tell us which activated machines haven't connected to your servers in x number of days, so that we could notify our clients and get them to check their connectivity.

Regards,MK

(a) every subsequent call to IsGenuine during the grace period will attempt to contact your servers,

No. From TurboActivate.h:

   Checks whether the computer is genuinely activated by verifying with the LimeLM servers   after a certain number of days you specify.


   This is meant as a replacement of both IsActivated() and IsGenuine(). Call this at the   top 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 immediately 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,                          TA_E_ANDROID_NOT_INIT
(b) once a connection is successfully made, it will go back to only checking every x days (as specified by daysBetweenChecks), and the grace period will be reset.

Yes.

2) Is it possible for a computer to check whether it has failed its IsGenuine check and is currently in the period specified by graceDaysOnInetErr?

Not currently. It's planned (not for the next version, but the one after that).

3) Is there some way to check, server-side, which activations have not contacted your servers for a certain amount of time?

No.

It would be great if we could run a periodic job that could tell us which activated machines haven't connected to your servers in x number of days, so that we could notify our clients and get them to check their connectivity.

We'll consider it, but that's really not the best way to do things. It's better to just let the customer see the problem on their computer inside your running app (rather than blasting out an email to customers).