Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

One way to check the dongle is by ensuring that LMX_HOSTID_DONGLE_HASPHL HostID is in use and, if so, comparing the HostID value against the last known good value, as demonstrated in the following example. 

Code Block
languagecpp
int i;

...


LMX_FEATURE_INFO FI;

...


LMX_HOSTID LmxHostid[LMX_MAX_HOSTIDS];

...


int nHostids;

...


LMX_GetFeatureInfo(LmxHandle, "my_app", &FI);

...


/* Go through each hostid used for this particular feature */

...


for (i = 0; i < FI.nClientLicenseHostids; i++)

...


{

...


/* See if the hostid is a dongle hostid */

...


  if (FI.ClientLicenseHostid[i].nHostidType == LMX_HOSTID_DONGLE_HASPHL)

...


  {

...


/* See if hostid function reports the same value as we used when checking out the license */

...


    if (LMX_Hostid(LmxHandle, LMX_HOSTID_DONGLE_HASPHL, LmxHostid, &nHostids)!= LMX_SUCCESS) 

...


      return BAD_DONGLE;

...


    if (nHostid != 1)

...


      return BAD_DONGLE;

...


/* Compare if the hostid at checkout time matches the hostid at present time */

...


    if (strcmp(FI.ClientLicenseHostid[0].szValue, LmxHostID[0].szValue) != 0) 

...


      return BAD_DONGLE;

...


  }

...


}

This check should preferably be done every few minutes to ensure that users do not move the dongle to other workstations and overuse standalone licenses.

...