TA_IsGenuineEx doesn't detect activationAnswered

Hi,

I'm having a strange problem with a user on Mac. I thought this would get solved with the latest dylib, but it remains the same.

The problem is that TA_IsGenuineEx doesn't detect his activation (even though he had activated in December and was using our product successfully for months.

So he's asked to activate again, but doing so returns error code 26 (already activated).

Here below is the code I'm using for checking the activation. Hope you have an idea about what could be wrong.

Thanks.

Mariano

---

    if (product == SwarPlug && taIssue) return false;

    if (product == SwarShala && taIssueSH) return false;

    GENUINE_OPTIONS opts = {0};

    opts.nLength = sizeof(GENUINE_OPTIONS);

    // How often to verify with the LimeLM servers (90 days)

    opts.nDaysBetweenChecks = 60;

    // The grace period if TurboActivate couldn't connect to the servers.

    // after the grace period is over TA_IsGenuineEx() will return TA_FAIL instead of

    // TA_E_INET or TA_E_INET_DELAYED

    opts.nGraceDaysOnInetErr = 14;

    // In this example we won't show an error if the activation

    // was done offline by passing the TA_SKIP_OFFLINE flag

    opts.flags = TA_SKIP_OFFLINE;

HRESULT hr = TA_IsGenuineEx(product == SwarShala ? taHandleSH : taHandle, &opts);

return hr == TA_OK || hr == TA_E_FEATURES_CHANGED;

Answer

Sounds like you're not following the examples correctly. That is not, handling the TA_IsGenuineEx() return values correctly.

See: Handling the case where the customer has not re-verified with the server in X + Y days

Edit: Also, you're not handling the success codes correctly either. See the example article and app (hr == TA_OK || hr == TA_E_FEATURES_CHANGED are just 2 of the 4 possible successful responses).

, edited

Oh indeed. Thanks a lot for the hint.