gpt4 book ai didi

c++ - 无法在 Mosquitto MQTT Broker 插件中访问 struct mosquitto 的元素

转载 作者:行者123 更新时间:2023-11-28 04:32:54 48 4
gpt4 key购买 nike

我正在为 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;
...
}

在编译时我检索到错误:

error: dereferencing pointer to incomplete type 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 结构的任何数据,它就会成功编译,但如果我尝试访问一些数据,比如 id,它就会崩溃。

最佳答案

请使用mosquitto_broker.h中提供的访问函数,例如

const char *mosquitto_client_id(const struct mosquitto *client);

关于c++ - 无法在 Mosquitto MQTT Broker 插件中访问 struct mosquitto 的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52404126/

48 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com