2019-12-04 11:02:52 +00:00
|
|
|
#include <time.h>
|
|
|
|
|
|
|
|
#define WITH_BROKER
|
|
|
|
|
|
|
|
#include <logging_mosq.h>
|
|
|
|
#include <memory_mosq.h>
|
|
|
|
#include <mosquitto_broker_internal.h>
|
|
|
|
#include <net_mosq.h>
|
|
|
|
#include <send_mosq.h>
|
|
|
|
#include <time_mosq.h>
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
extern uint64_t last_retained;
|
|
|
|
extern char *last_sub;
|
|
|
|
extern int last_qos;
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
struct mosquitto *context__init(mosq_sock_t sock)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
return mosquitto__calloc(1, sizeof(struct mosquitto));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int db__message_insert(struct mosquitto *context, uint16_t mid, enum mosquitto_msg_direction dir, uint8_t qos, bool retain, struct mosquitto_msg_store *stored, mosquitto_property *properties)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
void db__msg_store_ref_dec(struct mosquitto_msg_store **store)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void db__msg_store_ref_inc(struct mosquitto_msg_store *store)
|
|
|
|
{
|
|
|
|
store->ref_count++;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2020-10-17 00:23:08 +00:00
|
|
|
int log__printf(struct mosquitto *mosq, unsigned int priority, const char *fmt, ...)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(mosq);
|
|
|
|
UNUSED(priority);
|
|
|
|
UNUSED(fmt);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
time_t mosquitto_time(void)
|
|
|
|
{
|
|
|
|
return 123;
|
|
|
|
}
|
|
|
|
|
|
|
|
#if 0
|
2020-11-06 15:16:07 +00:00
|
|
|
int net__socket_close(struct mosquitto *mosq)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
int send__pingreq(struct mosquitto *mosq)
|
|
|
|
{
|
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int mosquitto_acl_check(struct mosquitto *context, const char *topic, uint32_tn payloadlen, void* payload, uint8_t qos, bool retain, int access)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int acl__find_acls(struct mosquitto *context)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2020-10-17 00:23:08 +00:00
|
|
|
int send__publish(struct mosquitto *mosq, uint16_t mid, const char *topic, uint32_t payloadlen, const void *payload, uint8_t qos, bool retain, bool dup, const mosquitto_property *cmsg_props, const mosquitto_property *store_props, uint32_t expiry_interval)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(mosq);
|
|
|
|
UNUSED(mid);
|
|
|
|
UNUSED(topic);
|
|
|
|
UNUSED(payloadlen);
|
|
|
|
UNUSED(payload);
|
|
|
|
UNUSED(qos);
|
|
|
|
UNUSED(retain);
|
|
|
|
UNUSED(dup);
|
|
|
|
UNUSED(cmsg_props);
|
|
|
|
UNUSED(store_props);
|
|
|
|
UNUSED(expiry_interval);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-07-10 10:03:29 +00:00
|
|
|
int send__pubcomp(struct mosquitto *mosq, uint16_t mid, const mosquitto_property *properties)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(mosq);
|
|
|
|
UNUSED(mid);
|
|
|
|
UNUSED(properties);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-07-10 10:03:29 +00:00
|
|
|
int send__pubrec(struct mosquitto *mosq, uint16_t mid, uint8_t reason_code, const mosquitto_property *properties)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(mosq);
|
|
|
|
UNUSED(mid);
|
|
|
|
UNUSED(reason_code);
|
|
|
|
UNUSED(properties);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-07-10 10:03:29 +00:00
|
|
|
int send__pubrel(struct mosquitto *mosq, uint16_t mid, const mosquitto_property *properties)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(mosq);
|
|
|
|
UNUSED(mid);
|
|
|
|
UNUSED(properties);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int mosquitto_acl_check(struct mosquitto *context, const char *topic, uint32_t payloadlen, void* payload, uint8_t qos, bool retain, int access)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(context);
|
|
|
|
UNUSED(topic);
|
|
|
|
UNUSED(payloadlen);
|
|
|
|
UNUSED(payload);
|
|
|
|
UNUSED(qos);
|
|
|
|
UNUSED(retain);
|
|
|
|
UNUSED(access);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
uint16_t mosquitto__mid_generate(struct mosquitto *mosq)
|
|
|
|
{
|
|
|
|
static uint16_t mid = 1;
|
|
|
|
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(mosq);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return ++mid;
|
|
|
|
}
|
|
|
|
|
|
|
|
int mosquitto_property_add_varint(mosquitto_property **proplist, int identifier, uint32_t value)
|
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(proplist);
|
|
|
|
UNUSED(identifier);
|
|
|
|
UNUSED(value);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int persist__backup(bool shutdown)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(shutdown);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int persist__restore(void)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
void mosquitto_property_free_all(mosquitto_property **properties)
|
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(properties);
|
2019-12-04 11:02:52 +00:00
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int retain__init(void)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
void retain__clean(struct mosquitto__retainhier **retainhier)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(retainhier);
|
2019-12-04 11:02:52 +00:00
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int retain__queue(struct mosquitto *context, const char *sub, uint8_t sub_qos, uint32_t subscription_identifier)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(context);
|
|
|
|
UNUSED(sub);
|
|
|
|
UNUSED(sub_qos);
|
|
|
|
UNUSED(subscription_identifier);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
2020-11-06 15:16:07 +00:00
|
|
|
int retain__store(const char *topic, struct mosquitto_msg_store *stored, char **split_topics)
|
2019-12-04 11:02:52 +00:00
|
|
|
{
|
2021-01-21 13:33:54 +00:00
|
|
|
UNUSED(topic);
|
|
|
|
UNUSED(stored);
|
|
|
|
UNUSED(split_topics);
|
|
|
|
|
2019-12-04 11:02:52 +00:00
|
|
|
return MOSQ_ERR_SUCCESS;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void util__decrement_receive_quota(struct mosquitto *mosq)
|
|
|
|
{
|
|
|
|
if(mosq->msgs_in.inflight_quota > 0){
|
|
|
|
mosq->msgs_in.inflight_quota--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void util__decrement_send_quota(struct mosquitto *mosq)
|
|
|
|
{
|
|
|
|
if(mosq->msgs_out.inflight_quota > 0){
|
|
|
|
mosq->msgs_out.inflight_quota--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2020-11-05 09:06:51 +00:00
|
|
|
void util__increment_receive_quota(struct mosquitto *mosq)
|
|
|
|
{
|
|
|
|
mosq->msgs_in.inflight_quota++;
|
|
|
|
}
|
|
|
|
|
|
|
|
void util__increment_send_quota(struct mosquitto *mosq)
|
|
|
|
{
|
|
|
|
mosq->msgs_out.inflight_quota++;
|
|
|
|
}
|
2022-05-25 15:16:48 +00:00
|
|
|
|
|
|
|
int session_expiry__add_from_persistence(struct mosquitto *context, time_t expiry_time)
|
|
|
|
{
|
|
|
|
UNUSED(context);
|
|
|
|
UNUSED(expiry_time);
|
|
|
|
return 0;
|
|
|
|
}
|