To make use of custom HostIDs, you must set a callback function using LMX_SetOption with the flag LMX_OPT_CUSTOM_HOSTID_FUNCTION. See LMX_OPT_CUSTOM_HOSTID_FUNCTION in LMX_SetOption for more information.

You should ensure that you complete the LMX_HOSTID structure correctly and return the appropriate error code, as shown in the following example.

LMX_STATUS LMX_CALLBACK MyHostidCallback(LMX_HOSTID *pHostid, int *npHostids)
{
 printf("My HostID called\n");
 /* Set the length of the data of this HostID. */
 /* Its length can be up to LMX_MAX_SHORT_STRING_LENGTH */
 strcpy(pHostid[0].szValue, "abcd");
 /* Set optional description. */
 /* Its length can be up to LMX_MAX_SHORT_STRING_LENGTH */
 strcpy(pHostid[0].szDescription, "my HostID");
 /* Now we do it once more for a 2nd HostID. */
 strcpy(pHostid[1].szValue, "12345");
 strcpy(pHostid[1].szDescription, "my HostID2");
 /* Set that we return 2 custom HostIDs. */
 *npHostids = 2;
 /* The function must return either LMX_SUCCESS or LMX_UNKNOWN_ERROR. */
 return LMX_SUCCESS;
 /* return LMX_UNKNOWN_ERROR; */
}

The same callback function is also required to use custom HostIDs on a license server. In lmx_server_conf.c you can set the custom HostID callback function to create licenses that are locked to a license server with a custom HostID.

You can easily use multiple HostID sources for such a custom callback function. Either fill the array with the independent values or use a cryptographic hash function such as SHA-1 to combine the HostIDs into a single value.