Why is this behavior. How do we make IsGenuineEx return TA_INET whenever no internet is presented.
It is. That's what TA_E_INET_DELAYED is. This is all described in very clear detail in the TurboActivate.h file:
/* 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 TA_IsActivated() and TA_IsGenuine(). Call this at the top of your program and let TA_IsGenuineEx() handle all the details.
This differs with TA_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. TA_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 TA_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 TA_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 TA_IsGenuineEx() will return TA_FAIL. TA_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_INVALID_HANDLE, 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, TA_E_ENABLE_NETWORK_ADAPTERS*/TURBOACTIVATE_API HRESULT TA_CC TA_IsGenuineEx(uint32_t handle, PGENUINE_OPTIONS options);
And:
/* MessageId: TA_E_INET_DELAYED Message code (in Hex): 0x15 Message code (in Decimal): 21
MessageText:
TA_IsGenuineEx() previously had a TA_E_INET error, and instead of hammering the end-user's network, TA_IsGenuineEx() is waiting 5 hours before rechecking on the network.*/#define TA_E_INET_DELAYED ((HRESULT)0x00000015L)
3. We change the system date some days ahead( more or equal to 4), which have to make IsGenuineEx to check with the servers again, but still on the firs call TA_OK is returned.
We can't reproduce that. Show me your code.