diff --git a/include/client/taos.h b/include/client/taos.h index 73086ce666..bca93f611f 100644 --- a/include/client/taos.h +++ b/include/client/taos.h @@ -230,7 +230,7 @@ DLL_EXPORT int taos_get_tables_vgId(TAOS *taos, const char *db, const char *tabl DLL_EXPORT int taos_load_table_info(TAOS *taos, const char *tableNameList); -DLL_EXPORT int taos_set_notify_cb(TAOS *taos, __taos_notify_fn_t *fp, void *param); +DLL_EXPORT int taos_set_notify_cb(TAOS *taos, __taos_notify_fn_t *fp, void *param, int type); /* --------------------------schemaless INTERFACE------------------------------- */ diff --git a/source/client/inc/clientInt.h b/source/client/inc/clientInt.h index 8878275d68..93ea433723 100644 --- a/source/client/inc/clientInt.h +++ b/source/client/inc/clientInt.h @@ -135,6 +135,7 @@ typedef struct SAppInfo { typedef struct { int32_t ver; + void* param; __taos_notify_fn_t* fp; } SPassInfo; diff --git a/source/client/src/clientHb.c b/source/client/src/clientHb.c index 6596bc4bb3..dd40a18c88 100644 --- a/source/client/src/clientHb.c +++ b/source/client/src/clientHb.c @@ -73,7 +73,7 @@ static int32_t hbProcessUserPassInfoRsp(void *value, int32_t valueLen, SClientHb if (atomic_load_32(&passInfo->ver) < rsp->version) { atomic_store_32(&passInfo->ver, rsp->version); if (passInfo->fp) { - (*passInfo->fp)(&pTscObj->id, NULL, TAOS_NOTIFY_PASSVER); + (*passInfo->fp)(&pTscObj->id, passInfo->param, TAOS_NOTIFY_PASSVER); } } } diff --git a/source/client/src/clientMain.c b/source/client/src/clientMain.c index 2491f5d70a..b47e5bf53b 100644 --- a/source/client/src/clientMain.c +++ b/source/client/src/clientMain.c @@ -119,7 +119,7 @@ TAOS *taos_connect(const char *ip, const char *user, const char *pass, const cha return NULL; } -int taos_set_notify_cb(TAOS *taos, __taos_notify_fn_t *fp, void *param) { +int taos_set_notify_cb(TAOS *taos, __taos_notify_fn_t *fp, void *param, int type) { if (taos == NULL) { return TSDB_CODE_INVALID_PARA; } @@ -130,10 +130,10 @@ int taos_set_notify_cb(TAOS *taos, __taos_notify_fn_t *fp, void *param) { return TSDB_CODE_TSC_DISCONNECTED; } - int32_t type = param ? *(int32_t *)param : 0; switch (type) { case TAOS_NOTIFY_PASSVER: { pObj->passInfo.fp = fp; + pObj->passInfo.param = param; break; } default: