diff --git a/src/connection/mqtt_c_client.c b/src/connection/mqtt_c_client.c index db762c4d..f7def138 100644 --- a/src/connection/mqtt_c_client.c +++ b/src/connection/mqtt_c_client.c @@ -803,6 +803,15 @@ neu_err_code_e mqtt_c_client_subscribe(mqtt_c_client_t *client, assert(NULL != client); assert(NULL != topic && 0 < strlen(topic)); + for (struct subscribe_tuple **p = + (struct subscribe_tuple **) utarray_front(client->array); + NULL != p; + p = (struct subscribe_tuple **) utarray_next(client->array, p)) { + if (0 == strcmp((*p)->topic, topic)) { + return NEU_ERR_SUCCESS; + } + } + struct subscribe_tuple *tuple = client_subscribe_create(client, topic, qos, handle); if (NULL == tuple) {