Я реализую плагин для брокера mosquitto MQTT (версия 1.5) и пытаюсь получить доступ к некоторым элементам указателя на структуру клиента mosquitto внутри реализации моего плагина:
#include <mosquitto_plugin.h>
...
int mosquitto_auth_acl_check(void *userdata, int access, const struct mosquitto *client, const struct mosquitto_acl_msg *msg)
{
const char *clientid = client->id;
const char *username = client->username;
...
}
Во время компиляции я получаю ошибку:
ошибка: разыменование указателя на неполный тип const char * clientid = client-> id;
Может кто-нибудь дать мне несколько советовкак получить доступ к данным клиента?
Редактировать: struct mosquitto определяется внутри исходного кода mosquitto (mosquitto_internal.h):
struct mosquitto {
...
char *id;
char *username;
...
}
Но mosquitto_internal.hэто только для внутреннего использования в mosquitto и не может быть доступно моему плагину (по крайней мере, я так думаю ...)
Внутри mosquitto_plugin.h (который предоставлен mosquitto и включен в мой плагин) естьпросто "ссылка" на структуру mosquitto:
struct mosquitto;
Таким образом, до тех пор, пока у меня нет доступа к каким-либо данным структуры mosquitto, она успешно компилируется, но если я пытаюсьПолучите некоторые данные, такие как идентификатор, который вылетает.