Can somebody do a code inspection of the declarations associated with SLQSSetDHCPv4ClientLeaseStatusCallback in qaGobiApiCbk.h?
I’m compiling on Ubuntu 16.04, using gcc 5.4.0. with the 04.00.22 SLQS. I cant the following to compile:
SLQSSetDHCPv4ClientLeaseStatusCallbackParam dhcpV4Param;
dhcpV4Param.instance = 0;
dhcpV4Param.pCallback = DHCPv4ClientLeaseStatusCallback; <----Compiler barfs here
Compiler complains:
src/qmi_callbacks.c: In function ‘SubscribeCallbacks’:
src/qmi_callbacks.c:97:25: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
dhcpV4Param.pCallback = DHCPv4ClientLeaseStatusCallback;
If I assign instance to 0 and pCallback to NULL it compiles fine. I’ve looked at other callback declarations (the typedefs and structs, etc) and see one thing interesting about the parameter declaration for SLQSSetDHCPv4ClientLeaseStatusCallback:
/**
- DHCPv4 client lease status message callback function parameter.
- \param instance[IN]
-
- QMI instance
- \param pCallback[IN]
-
- Callback function pointer (0 - Disable)
*/
typedef struct
{
BYTE instance;
tFNDHCPv4ClientLeaseStatus *pCallback;
}SLQSSetDHCPv4ClientLeaseStatusCallbackParam;
Should it be:
tFNDHCPv4ClientLeaseStatus pCallback;
instead?
Or then again, maybe the problem is between my keyboard and my chair.
Thanks for any help.
Forgot to add function:
// This compiles fine by itself
void DHCPv4ClientLeaseStatusCallback( BYTE instance, WdsDHCPv4ClientLeaseInd *pMsg)
{
printf(“DHCPv4ClientLeaseStatusCallback()\n”);
printf(“DCHP CL: my instance is %d\n”, instance);
printf(“DHCP CL: Lease State %d\n”, *(pMsg->pLeaseState));
printf(“DHCP CL: IPV4 Address %d\n”, *(pMsg->pIPv4Addr));
}