 |
MQTT C Client Libraries Internals
|
functions which apply to client structures
More...
#include "Clients.h"
#include <string.h>
#include <stdio.h>
functions which apply to client structures
◆ clientIDCompare()
int clientIDCompare |
( |
void * |
a, |
|
|
void * |
b |
|
) |
| |
List callback function for comparing clients by clientid.
- Parameters
-
a | first integer value |
b | second integer value |
- Returns
- boolean indicating whether a and b are equal
◆ clientSocketCompare()
int clientSocketCompare |
( |
void * |
a, |
|
|
void * |
b |
|
) |
| |
List callback function for comparing clients by socket.
- Parameters
-
a | first integer value |
b | second integer value |
- Returns
- boolean indicating whether a and b are equal
int pstclear(void *handle)
Delete all the persisted message in the client persistence directory.
Definition: MQTTPersistenceDefault.c:507
const MQTTClient_nameValue * httpHeaders
httpHeaders
Definition: MQTTClient.h:922
const void * data
binary payload data
Definition: MQTTClient.h:632
static int clientStructCompare(void *a, void *b)
List callback function for comparing clients by client structure.
Definition: MQTTAsync.c:2853
unsigned short integer2
holds the value of a 2 byte integer property type
Definition: MQTTProperties.h:100
ListElement * current
current element in the list, for iteration
Definition: LinkedList.h:71
Persistence_get pget
A function pointer to an implementation of Persistence_get().
Definition: MQTTClientPersistence.h:235
static int MQTTClient_disconnect_internal(MQTTClient handle, int timeout)
mqttclient_mutex must be locked when you call this function, if multi threaded
Definition: MQTTClient.c:1884
size_t datalen
current length of data in buf
Definition: SocketBuffer.h:44
unsigned char all
all connect flags
Definition: MQTTPacket.h:94
int Socket_continueWrites(fd_set *pwset)
Continue any outstanding writes for a socket set.
Definition: Socket.c:981
void MQTTProtocol_freeClient(Clients *client)
Free a client structure.
Definition: MQTTProtocolClient.c:805
int sessionPresent
if the MQTT version is 3.1.1, the value of sessionPresent returned in the connack
Definition: MQTTClient.h:901
Utility structure where name/value pairs are needed.
Definition: MQTTAsync.h:1043
char * data
pointer to the string data
Definition: MQTTProperties.h:87
int length
mbi: byte length of all properties
Definition: MQTTProperties.h:116
Structure to hold all data for one list element.
Definition: Tree.h:64
void * ListDetachHead(List *aList)
Removes and frees an the first item in a list.
Definition: LinkedList.c:268
int(* Persistence_clear)(void *handle)
Clears the persistence store, so that it no longer contains any persisted data.
Definition: MQTTClientPersistence.h:197
int MQTTProtocol_subscribe(Clients *client, List *topics, List *qoss, int msgID, MQTTSubscribe_options *opts, MQTTProperties *props)
MQTT outgoing subscribe processing for a client.
Definition: MQTTProtocolOut.c:349
MQTTAsync_willOptions defines the MQTT "Last Will and Testament" (LWT) settings for the client.
Definition: MQTTAsync.h:903
static char * trace_destination_backup_name
the name of the backup trace file
Definition: Log.c:101
int Socket_setnonblocking(int sock)
Set a socket non-blocking, OS independently.
Definition: Socket.c:74
struct ListElementStruct * prev
pointer to previous list element
Definition: LinkedList.h:74
void MQTTClient_global_init(MQTTClient_init_options *inits)
Global init of mqtt library.
Definition: MQTTClient.c:85
MQTTClient_sslProperties defines the settings to establish an SSL/TLS connection using the OpenSSL li...
Definition: MQTTClient.h:656
size_t size
heap storage used
Definition: LinkedList.h:73
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:953
const char * username
MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user nam...
Definition: MQTTAsync.h:1115
int Thread_wait_sem(sem_type sem, int timeout)
Wait for a semaphore to be posted, or timeout.
Definition: Thread.c:230
unsigned char all
all connack flags
Definition: MQTTPacket.h:138
void ListAppendNoMalloc(List *aList, void *content, ListElement *newel, size_t size)
Append an already allocated ListElement and content to a list.
Definition: LinkedList.c:69
Header header
MQTT header byte.
Definition: MQTTPacket.h:215
int pstput(void *handle, char *key, int bufcount, char *buffers[], int buflens[])
Write wire message to the client persistence directory.
Definition: MQTTPersistenceDefault.c:187
int MQTTPacket_send_connect(Clients *client, int MQTTVersion, MQTTProperties *connectProperties, MQTTProperties *willProperties)
Send an MQTT CONNECT packet down a socket for V5 or later.
Definition: MQTTPacketOut.c:48
List * inboundMsgs
inbound in flight messages
Definition: Clients.h:133
int maxInflightMessages
the max number of inflight outbound messages we allow
Definition: Clients.h:131
Header header
MQTT header byte.
Definition: MQTTPacket.h:186
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the disconnect successfully completes.
Definition: MQTTAsync.h:1273
MQTTAsync_nameValue * MQTTAsync_getVersionInfo(void)
This function returns version information about the library.
Definition: MQTTAsync.c:4379
int verify
Whether to carry out post-connect checks, including that a certificate matches the given host name.
Definition: MQTTAsync.h:996
int ListRemove(List *aList, void *content)
Removes and frees an item in a list by comparing the pointer to the content.
Definition: LinkedList.c:257
const char * message
The LWT payload.
Definition: MQTTAsync.h:913
int serverURIcount
The number of entries in the optional serverURIs array.
Definition: MQTTClient.h:874
bool will
will flag
Definition: MQTTPacket.h:111
int MQTTProtocol_handleSubacks(void *pack, int sock)
Process an incoming suback packet for a socket.
Definition: MQTTProtocolOut.c:367
union MQTTAsync_successData::@6 alt
A union of the different values that can be returned for subscribe, unsubscribe and publish.
int Socket_abortWrite(int socket)
Continue an outstanding write for a particular socket.
Definition: Socket.c:948
Data for a suback packet.
Definition: MQTTPacket.h:172
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the connect successfully completes.
Definition: MQTTAsync.h:1213
size_t max_size
max size the heap has reached in bytes
Definition: Heap.h:65
ListElement * cur_clientsds
current client socket descriptor (iterator)
Definition: Socket.h:121
void * TreeRemoveNodeIndex(Tree *aTree, Node *curnode, int index)
Remove an item from a tree.
Definition: Tree.c:420
MQTTClient_willOptions * will
This is a pointer to an MQTTClient_willOptions structure.
Definition: MQTTClient.h:841
int msgId
MQTT message id.
Definition: MQTTPacket.h:187
Definition: MQTTClient.c:299
void Socket_addPendingWrite(int socket)
Add a socket to the pending write list, so that it is checked for writing in select.
Definition: Socket.c:578
int MQTTAsync_subscribe(MQTTAsync handle, const char *topic, int qos, MQTTAsync_responseOptions *response)
This function attempts to subscribe a client to a single topic, which may contain wildcards (see wild...
Definition: MQTTAsync.c:3611
int MQTTAsync_unsubscribeMany(MQTTAsync handle, int count, char *const *topic, MQTTAsync_responseOptions *response)
This function attempts to remove existing subscriptions to a list of topics made by the specified cli...
Definition: MQTTAsync.c:3621
int clientIDCompare(void *a, void *b)
List callback function for comparing clients by clientid.
Definition: Clients.c:36
static thread_return_type WINAPI connectionLost_call(void *context)
Wrapper function to call connection lost on a separate thread.
Definition: MQTTClient.c:671
int qos
The quality of service (QoS) assigned to the message.
Definition: MQTTClient.h:290
fd_set rset
socket read set (see select doc)
Definition: Socket.h:117
int MQTTClient_receive(MQTTClient handle, char **topicName, int *topicLen, MQTTClient_message **message, unsigned long timeout)
This function performs a synchronous receive of incoming messages.
Definition: MQTTClient.c:2664
int packet_type
Packet type on which the failure occurred - used for publish QoS 1/2 exchanges.
Definition: MQTTAsync.h:479
void SocketBuffer_freeDefQ(void)
Free the default queue memory.
Definition: SocketBuffer.c:122
Definition: MQTTAsync.c:319
builds a websocket frame for data transmission
Definition: WebSocket.c:227
void SocketBuffer_terminate(void)
Terminate the socketBuffer module.
Definition: SocketBuffer.c:133
ListElement * ListFindItem(List *aList, void *content, int(*callback)(void *, void *))
Finds an element in a list by comparing the content or pointer to the content.
Definition: LinkedList.c:154
size_t size
size of content
Definition: Tree.h:82
void * context
Definition: MQTTAsync.h:1285
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:260
int socketcompare(void *a, void *b)
List callback function for comparing socket_queues by socket.
Definition: SocketBuffer.c:70
void * MQTTPacket_suback(int MQTTVersion, unsigned char aHeader, char *data, size_t datalen)
Function used in the new packets table to create suback packets.
Definition: MQTTPacketOut.c:292
Definition: MQTTClient.c:333
char * topic
topic string
Definition: MQTTPacket.h:200
#define MQTTCLIENT_PERSISTENCE_ERROR
Application-specific persistence functions must return this error code if there is a problem executin...
Definition: MQTTClientPersistence.h:85
void MQTTClient_setTraceCallback(MQTTClient_traceCallback *callback)
This function sets the trace callback if needed.
Definition: MQTTClient.c:2851
void MQTTProtocol_specialChars(char *p0, char *p1, b64_size_t *basic_auth_in_len)
Allow user or password characters to be expressed in the form of XX, XX being the hexadecimal value o...
Definition: MQTTProtocolOut.c:105
Definition: MQTTProtocol.h:29
int ListRemoveHead(List *aList)
Removes and frees an the first item in a list.
Definition: LinkedList.c:294
void * payload
A pointer to the payload of the MQTT message.
Definition: MQTTClient.h:276
Definition: MQTTAsync.c:311
int readInt4(char **pptr)
Calculates an integer from two bytes read from the input buffer.
Definition: MQTTPacket.c:929
MQTT version 5 property list.
Definition: MQTTProperties.h:113
int pstkeys(void *handle, char ***keys, int *nkeys)
Returns the keys (file names w/o the extension) in the client persistence directory.
Definition: MQTTPersistenceDefault.c:613
#define MQTTCLIENT_PERSISTENCE_USER
This persistence_type value specifies an application-specific persistence mechanism (see MQTTClient_c...
Definition: MQTTClientPersistence.h:79
Information about the state of the heap.
Definition: Heap.h:63
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:205
int keepAliveInterval
The "keep alive" interval, measured in seconds, defines the maximum time that should pass without com...
Definition: MQTTClient.h:803
int(* Persistence_get)(void *handle, char *key, char **buffer, int *buflen)
Retrieve the specified data from the persistent store.
Definition: MQTTClientPersistence.h:156
int len
PUBREC, PUBREL, PUBCOMP
Definition: Clients.h:61
static int MQTTProtocol_startPublishCommon(Clients *pubclient, Publish *publish, int qos, int retained)
Utility function to start a new publish exchange.
Definition: MQTTProtocolClient.c:139
int MQTTPersistence_restore(Clients *c)
Restores the persisted records to the outbound and inbound message queues of the client.
Definition: MQTTPersistence.c:180
void * phandle
the persistence handle
Definition: Clients.h:137
MQTTClient_persistence * persistence
a persistence implementation
Definition: Clients.h:138
char *const * serverURIs
An optional array of null-terminated strings specifying the servers to which the client will connect.
Definition: MQTTClient.h:885
static void MQTTProtocol_checkPendingWrites(void)
See if any pending writes have been completed, and cleanup if so.
Definition: MQTTClient.c:2940
int MQTTVersion
Whether the MQTT version is 3.1, 3.1.1, or 5.
Definition: MQTTAsync.h:879
char * serverURI
the connection string of the server
Definition: MQTTAsync.h:507
int qos
The quality of service setting for the LWT message (see MQTTClient_message.qos and qos).
Definition: MQTTClient.h:627
networkHandles net
network info for this client
Definition: Clients.h:127
unsigned int reserved
message type nibble
Definition: MQTTPacket.h:149
int(* Persistence_close)(void *handle)
Close the persistent store referred to by the handle.
Definition: MQTTClientPersistence.h:123
Data for a packet with header only.
Definition: MQTTPacket.h:163
int code
A numeric code identifying the MQTT client library error.
Definition: MQTTAsync.h:475
void MQTTProtocol_freeMessageList(List *msgList)
Empty and free up all storage used by a message list.
Definition: MQTTProtocolClient.c:877
int MQTTPacket_send_publish(Publish *pack, int dup, int qos, int retained, networkHandles *net, const char *clientID)
Send an MQTT PUBLISH packet down a socket.
Definition: MQTTPacket.c:823
fd_set rset_saved
saved socket read set
Definition: Socket.h:118
pending_writes * SocketBuffer_getWrite(int socket)
Get any queued write data for a specific socket.
Definition: SocketBuffer.c:399
int MQTTVersion
Sets the version of MQTT to be used on the connect.
Definition: MQTTAsync.h:1176
Data for an MQTT V5 unsuback packet.
Definition: MQTTPacket.h:185
int Socket_continueWrite(int socket)
Continue an outstanding write for a particular socket.
Definition: Socket.c:862
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:1260
const char * privateKey
If not included in the sslKeyStore, this setting points to the file in PEM format containing the clie...
Definition: MQTTAsync.h:968
void * MQTTPacket_ack(int MQTTVersion, unsigned char aHeader, char *data, size_t datalen)
Function used in the new packets table to create acknowledgement packets.
Definition: MQTTPacket.c:771
MQTTResponse MQTTClient_subscribeMany5(MQTTClient handle, int count, char *const *topic, int *qos, MQTTSubscribe_options *opts, MQTTProperties *props)
This function attempts to subscribe an MQTT version 5.0 client to a list of topics,...
Definition: MQTTClient.c:1936
int SocketBuffer_getQueuedChar(int socket, char *c)
Get any queued character for a specific socket.
Definition: SocketBuffer.c:219
A structure representing the payload and attributes of an MQTT message.
Definition: MQTTClient.h:267
char * destinationName
the topic destination for the message
Definition: MQTTAsync.h:537
int MQTTPersistence_initialize(Clients *c, const char *serverURI)
Open persistent store and restore any persisted messages.
Definition: MQTTPersistence.c:114
int ListDetach(List *aList, void *content)
Removes but does not free an item in a list by comparing the pointer to the content.
Definition: LinkedList.c:245
void Log(enum LOG_LEVELS log_level, int msgno, const char *format,...)
Log a message.
Definition: Log.c:417
int MQTTProtocol_connect(const char *ip_address, Clients *aClient, int websocket, int MQTTVersion, MQTTProperties *connectProperties, MQTTProperties *willProperties)
MQTT outgoing connect processing for a client.
Definition: MQTTProtocolOut.c:149
int MQTTClient_createWithOptions(MQTTClient *handle, const char *serverURI, const char *clientId, int persistence_type, void *persistence_context, MQTTClient_createOptions *options)
A version of :MQTTClient_create() with additional options.
Definition: MQTTClient.c:368
void ListFreeNoContent(List *aList)
Removes and but does not free all items in a list, and frees the list itself.
Definition: LinkedList.c:392
void * content
pointer to element content
Definition: Tree.h:81
const char * CApath
From the OpenSSL documentation: If CApath is not NULL, it points to a directory containing CA certifi...
Definition: MQTTClient.h:708
int MQTTClient_publish(MQTTClient handle, const char *topicName, int payloadlen, const void *payload, int qos, int retained, MQTTClient_deliveryToken *deliveryToken)
This function attempts to publish a message to a given topic (see also MQTTClient_publishMessage()).
Definition: MQTTClient.c:2377
MQTTClient_libraryInfo is used to store details relating to the currently used library such as the ve...
Definition: MQTTClient.h:754
enum MQTTPropertyCodes identifier
The MQTT V5 property id.
Definition: MQTTProperties.h:96
char * Socket_getdata(int socket, size_t bytes, size_t *actual_len)
Attempts to read a number of bytes from a socket, non-blocking.
Definition: Socket.c:370
int MQTTAsync_disconnect(MQTTAsync handle, const MQTTAsync_disconnectOptions *options)
This function attempts to disconnect the client from the MQTT server.
Definition: MQTTAsync.c:3415
Header header
MQTT header byte.
Definition: MQTTPacket.h:91
void MQTTPacket_freeUnsuback(Unsuback *pack)
Free allocated storage for a suback packet.
Definition: MQTTPacket.c:688
#define MQTTCLIENT_PERSISTENCE_NONE
This persistence_type value specifies a memory-based persistence mechanism (see MQTTClient_create()).
Definition: MQTTClientPersistence.h:74
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:626
unsigned char rc
connack reason code
Definition: MQTTPacket.h:153
const char * trustStore
The file in PEM format containing the public digital certificates trusted by the client.
Definition: MQTTAsync.h:958
int line
the line no in the source file where it was allocated
Definition: Heap.c:71
ListElement * ListNextElement(List *aList, ListElement **pos)
Forward iteration through a list.
Definition: LinkedList.c:411
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:175
unsigned char version
MQTT version number.
Definition: MQTTPacket.h:126
Definition: MQTTPersistence.h:80
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:865
Definition: StackTrace.c:47
int Socket_writev(int socket, iobuf *iovecs, int count, unsigned long *bytes)
Attempts to write a series of iovec buffers to a socket in one system call so that they are sent as o...
Definition: Socket.c:434
int MQTTPersistence_create(MQTTClient_persistence **persistence, int type, void *pcontext)
Creates a MQTTClient_persistence structure representing a persistence implementation.
Definition: MQTTPersistence.c:47
MQTTLenString value
The value of a user property.
Definition: MQTTProperties.h:104
int Thread_destroy_mutex(mutex_type mutex)
Destroy a mutex which has already been created.
Definition: Thread.c:156
char * MQTTStrncpy(char *dest, const char *src, size_t dest_size)
Copy no more than dest_size -1 characters from the string pointed to by src to the array pointed to b...
Definition: MQTTProtocolClient.c:894
char * SocketBuffer_complete(int socket)
A socket read has now completed so we can get rid of the queue.
Definition: SocketBuffer.c:281
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:219
void writeData(char **pptr, const void *data, int datalen)
Writes length delimited data to an output buffer.
Definition: MQTTPacket.c:467
MQTTAsync_sslProperties defines the settings to establish an SSL/TLS connection using the OpenSSL lib...
Definition: MQTTAsync.h:951
const char * message
Optional further text explaining the error.
Definition: MQTTAsync.h:477
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:905
int MQTTClient_publishMessage(MQTTClient handle, const char *topicName, MQTTClient_message *message, MQTTClient_deliveryToken *deliveryToken)
This function attempts to publish a message to a given topic (see also MQTTClient_publish()).
Definition: MQTTClient.c:2422
void MQTTAsync_destroy(MQTTAsync *handle)
This function frees the memory allocated to an MQTT client (see MQTTAsync_create()).
Definition: MQTTAsync.c:2165
bool sessionPresent
was a session found on the server?
Definition: MQTTPacket.h:148
char * willMsg
will payload
Definition: MQTTPacket.h:123
void MQTTAsync_setTraceLevel(enum MQTTASYNC_TRACE_LEVELS level)
This function sets the level of trace information which will be returned in the trace callback.
Definition: MQTTAsync.c:4367
int MQTTAsync_sendMessage(MQTTAsync handle, const char *destinationName, const MQTTAsync_message *message, MQTTAsync_responseOptions *response)
This function attempts to publish a message to a given topic (see also MQTTAsync_publish()).
Definition: MQTTAsync.c:3813
int MQTTProtocol_handleUnsubacks(void *pack, int sock)
Process an incoming unsuback packet for a socket.
Definition: MQTTProtocolOut.c:405
cond_type Thread_create_cond(int *rc)
Create a new condition variable.
Definition: Thread.c:365
void Heap_terminate(void)
Heap termination.
Definition: Heap.c:417
int SocketBuffer_writeComplete(int socket)
A socket write has now completed so we can get rid of the queue.
Definition: SocketBuffer.c:411
static thread_return_type WINAPI call_disconnected(void *context)
Wrapper function to call disconnected on a separate thread.
Definition: MQTTClient.c:709
MQTTProperties properties
MQTT V5 properties returned, if any.
Definition: MQTTAsync.h:523
int indexes
no of indexes into tree
Definition: Tree.h:83
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:519
static int MQTTClient_disconnect1(MQTTClient handle, int timeout, int internal, int stop, enum MQTTReasonCodes, MQTTProperties *)
mqttclient_mutex must be locked when you call this function, if multi threaded
Definition: MQTTClient.c:1837
int UTF8_validate(int len, const char *data)
Validate a length-delimited string has only UTF-8 characters.
Definition: utf-8.c:129
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the connect successfully completes.
Definition: MQTTAsync.h:1144
int msgId
MQTT message id.
Definition: MQTTPacket.h:216
void MQTTClient_yield(void)
When implementing a single-threaded client, call this function periodically to allow processing of me...
Definition: MQTTClient.c:2720
int serverURIcount
The number of entries in the serverURIs array.
Definition: MQTTAsync.h:1160
int retained
The retained flag for the LWT message (see MQTTClient_message.retained).
Definition: MQTTClient.h:622
Options for the ::MQTTAsync_createWithOptions call.
Definition: MQTTAsync.h:863
void Socket_outInitialize(void)
Initialize the socket module.
Definition: Socket.c:122
unsigned int integer4
holds the value of a 4 byte integer property type
Definition: MQTTProperties.h:101
thread_type Thread_start(thread_fn fn, void *parameter)
Start a new thread.
Definition: Thread.c:60
int keepAliveTimer
keepalive timeout value in seconds
Definition: MQTTPacket.h:125
void MQTTAsync_setTraceCallback(MQTTAsync_traceCallback *callback)
This function sets the trace callback if needed.
Definition: MQTTAsync.c:4373
const char * topicName
The LWT topic to which the LWT message will be published.
Definition: MQTTAsync.h:911
void MQTTPacket_freeSuback(Suback *pack)
Free allocated storage for a suback packet.
Definition: MQTTPacket.c:672
thread_id_type Thread_getid(void)
Get the thread id of the thread from which this function is called.
Definition: Thread.c:176
Stored publication data to minimize copying.
Definition: Clients.h:40
int pstget(void *handle, char *key, char **buffer, int *buflen)
Retrieve a wire message from the client persistence directory.
Definition: MQTTPersistenceDefault.c:243
MQTTClient_willOptions defines the MQTT "Last Will and Testament" (LWT) settings for the client.
Definition: MQTTClient.h:608
const char * keyStore
The file in PEM format containing the public certificate chain of the client.
Definition: MQTTAsync.h:963
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:658
enum MQTTReasonCodes * reasonCodes
an array of reasonCodes
Definition: MQTTAsync.h:531
MQTTResponse MQTTClient_unsubscribeMany5(MQTTClient handle, int count, char *const *topic, MQTTProperties *props)
This function attempts to remove existing subscriptions to a list of topics made by the specified cli...
Definition: MQTTClient.c:2109
int Thread_check_sem(sem_type sem)
Check to see if a semaphore has been posted, without waiting The semaphore will be unchanged,...
Definition: Thread.c:292
void * context
Definition: MQTTAsync.h:1156
Data for a publish packet.
Definition: MQTTPacket.h:198
MQTTResponse MQTTClient_publishMessage5(MQTTClient handle, const char *topicName, MQTTClient_message *message, MQTTClient_deliveryToken *deliveryToken)
Attempts to publish a message to the given topic using MQTT version 5.0 (see also MQTTClient_publish5...
Definition: MQTTClient.c:2391
size_t size
heap storage used
Definition: Tree.h:85
Structure to define call options.
Definition: MQTTAsync.h:624
int clientSocketCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: Clients.c:50
MQTTClient_connectOptions defines several settings that control the way the client connects to an MQT...
Definition: MQTTClient.h:781
int MQTTClient_subscribe(MQTTClient handle, const char *topic, int qos)
This function attempts to subscribe a client to a single topic, which may contain wildcards (see wild...
Definition: MQTTClient.c:2095
Messages * MQTTProtocol_createMessage(Publish *publish, Messages **mm, int qos, int retained, int allocatePayload)
Copy and store message data for retries.
Definition: MQTTProtocolClient.c:193
int maxfdp1
max descriptor used +1 (again see select doc)
Definition: Socket.h:119
int MQTTClient_isConnected(MQTTClient handle)
This function allows the client application to test whether or not a client is currently connected to...
Definition: MQTTClient.c:1921
MQTTAsync_SSLOptions * ssl
This is a pointer to an MQTTAsync_SSLOptions structure.
Definition: MQTTAsync.h:1138
struct MQTTAsync_willOptions::@14 payload
The LWT payload in binary form.
const char * message
Optional text explaining the error.
Definition: MQTTAsync.h:457
static List * queues
List of queued input buffers.
Definition: SocketBuffer.c:50
Definition: SocketBuffer.h:49
void MQTTProtocol_closeSession(Clients *c, int sendwill)
mqttclient_mutex must be locked when you call this function, if multi threaded
Definition: MQTTClient.c:1893
int sessionExpiry
MQTT 5 session expiry.
Definition: Clients.h:141
int sendWhileDisconnected
Whether to allow messages to be sent when the client library is not connected.
Definition: MQTTAsync.h:871
int MQTTVersion
the version of MQTT being used
Definition: MQTTAsync.h:508
static List writes
List of queued write buffers.
Definition: SocketBuffer.c:55
void MQTTClient_free(void *memory)
This function frees memory allocated by the MQTT C client library, especially the topic name.
Definition: MQTTClient.c:610
Definition: MQTTPersistence.h:67
void MQTTPacket_freeConnack(Connack *pack)
Free allocated storage for a connack packet.
Definition: MQTTPacketOut.c:187
static void HeapScan(enum LOG_LEVELS log_level)
Scans the heap and reports any items currently allocated.
Definition: Heap.c:383
void Socket_close(int socket)
Close a socket and remove it from the select list.
Definition: Socket.c:628
Tree * TreeInitialize(int(*compare)(void *, void *, int))
Allocates and initializes a new tree structure.
Definition: Tree.c:65
MQTTProperties * connectProperties
MQTT V5 properties for connect.
Definition: MQTTAsync.h:1203
unsigned int(* ssl_psk_cb)(const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len, void *u)
Callback function for setting TLS-PSK options.
Definition: MQTTClient.h:727
void MQTTClient_setTraceLevel(enum MQTTCLIENT_TRACE_LEVELS level)
This function sets the level of trace information which will be returned in the trace callback.
Definition: MQTTClient.c:2845
unsigned int allow_duplicates
switch to allow duplicate entries
Definition: Tree.h:87
int cleansession
This is a boolean value.
Definition: MQTTAsync.h:1099
Persistence_put pput
A function pointer to an implementation of Persistence_put().
Definition: MQTTClientPersistence.h:231
enum MQTTReasonCodes reasonCode
The MQTT reason code returned.
Definition: MQTTAsync.h:471
void * TreeRemoveIndex(Tree *aTree, void *content, int index)
Remove an item from a tree.
Definition: Tree.c:487
int verify
Whether to carry out post-connect checks, including that a certificate matches the given host name.
Definition: MQTTClient.h:701
MQTTClient_SSLOptions * ssl
This is a pointer to an MQTTClient_SSLOptions structure.
Definition: MQTTClient.h:870
int MQTTPersistence_remove(Clients *c, char *type, int qos, int msgId)
Deletes a record from the persistent store.
Definition: MQTTPersistence.c:503
int Socket_close_only(int socket)
Close a socket without removing it from the select list.
Definition: Socket.c:600
int max_trace_entries
max no of entries in the trace buffer
Definition: Log.h:58
int len
binary payload length
Definition: MQTTClient.h:631
char lower
lower limit of valid range
Definition: utf-8.c:49
int count
no of items
Definition: LinkedList.h:72
A structure representing the payload and attributes of an MQTT message.
Definition: MQTTAsync.h:258
Definition: SocketBuffer.h:38
int dup
The dup flag indicates whether or not this message is a duplicate.
Definition: MQTTClient.h:316
MQTTAsync_onFailure5 * onFailure5
A pointer to a callback function to be called if the disconnect fails.
Definition: MQTTAsync.h:1305
int(* ssl_error_cb)(const char *str, size_t len, void *u)
Callback function for OpenSSL error handler ERR_print_errors_cb Exists only if struct_version >= 3.
Definition: MQTTAsync.h:1009
MQTTAsync_token token
A token identifying the successful request.
Definition: MQTTAsync.h:488
unsigned int(* ssl_psk_cb)(const char *hint, char *identity, unsigned int max_identity_len, unsigned char *psk, unsigned int max_psk_len, void *u)
Callback function for setting TLS-PSK options.
Definition: MQTTAsync.h:1022
int Thread_signal_cond(cond_type condvar)
Signal a condition variable.
Definition: Thread.c:399
Initialization options.
Definition: MQTTClient.h:225
char * Socket_getpeer(int sock)
Get information about the other end connected to a socket.
Definition: Socket.c:1056
Header header
MQTT header byte.
Definition: MQTTPacket.h:135
int stringcompare(void *a, void *b)
List callback function for comparing C strings.
Definition: LinkedList.c:448
const char * password
MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user nam...
Definition: MQTTAsync.h:1121
struct MQTTAsync_successData5::@9::@10 sub
For subscribeMany, the list of reasonCodes returned by the server.
static int ptrCompare(void *a, void *b, int value)
List callback function for comparing storage elements.
Definition: Heap.c:114
List * reasonCodes
list of reason codes
Definition: MQTTPacket.h:190
int code
A numeric code identifying the error.
Definition: MQTTAsync.h:455
int Socket_putdatas(int socket, char *buf0, size_t buf0len, int count, char **buffers, size_t *buflens, int *frees)
Attempts to write a series of buffers to a socket in one system call so that they are sent as one pac...
Definition: Socket.c:506
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:635
static void MQTTProtocol_checkPendingWrites(void)
See if any pending writes have been completed, and cleanup if so.
Definition: MQTTAsync.c:1337
const char * topicName
The LWT topic to which the LWT message will be published.
Definition: MQTTClient.h:616
int qos
For subscribe, the granted QoS of the subscription returned by the server.
Definition: MQTTAsync.h:494
heap_info * Heap_get_info(void)
Access to heap state.
Definition: Heap.c:432
int qos
The quality of service setting for the LWT message (see MQTTAsync_message.qos and qos).
Definition: MQTTAsync.h:922
const char * trustStore
The file in PEM format containing the public digital certificates trusted by the client.
Definition: MQTTClient.h:663
bool willRetain
will retain setting
Definition: MQTTPacket.h:113
MQTTResponse MQTTClient_subscribe5(MQTTClient handle, const char *topic, int qos, MQTTSubscribe_options *opts, MQTTProperties *props)
This function attempts to subscribe an MQTT version 5.0 client to a single topic, which may contain w...
Definition: MQTTClient.c:2081
const char * keyStore
The file in PEM format containing the public certificate chain of the client.
Definition: MQTTClient.h:668
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:218
int reliable
This is a boolean value that controls how many messages can be in-flight simultaneously.
Definition: MQTTClient.h:835
#define MQTTCLIENT_PERSISTENCE_DEFAULT
This persistence_type value specifies the default file system-based persistence mechanism (see MQTTCl...
Definition: MQTTClientPersistence.h:69
int cleansession
This is a boolean value.
Definition: MQTTClient.h:825
int MQTTPersistence_put(int socket, char *buf0, size_t buf0len, int count, char **buffers, size_t *buflens, int htype, int msgId, int scr, int MQTTVersion)
Adds a record to the persistent store.
Definition: MQTTPersistence.c:411
enum LOG_LEVELS trace_level
trace level
Definition: Log.h:57
List * connect_pending
list of sockets for which a connect is pending
Definition: Socket.h:122
void * ssl_error_context
Application-specific contex for OpenSSL error handler ERR_print_errors_cb Exists only if struct_versi...
Definition: MQTTAsync.h:1015
int MQTTAsync_setConnectionLostCallback(MQTTAsync handle, void *context, MQTTAsync_connectionLost *cl)
This function sets the callback function for a connection lost event for a specific client.
Definition: MQTTAsync.c:2693
void MQTTPersistence_insertInOrder(List *list, void *content, size_t size)
Inserts the specified message into the list, maintaining message ID order.
Definition: MQTTPersistence.c:378
int(* Persistence_keys)(void *handle, char ***keys, int *nkeys)
Returns the keys in this persistent data store.
Definition: MQTTClientPersistence.h:186
int dup
The dup flag indicates whether or not this message is a duplicate.
Definition: MQTTAsync.h:307
MQTTAsync_onFailure * onFailure
A pointer to a callback function to be called if the disconnect fails.
Definition: MQTTAsync.h:1279
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:1056
int MQTTAsync_create(MQTTAsync *handle, const char *serverURI, const char *clientId, int persistence_type, void *persistence_context)
This function creates an MQTT client ready for connection to the specified server and using the speci...
Definition: MQTTAsync.c:722
struct MQTTAsync_successData5::@9::@13 unsub
For unsubscribeMany, the list of reasonCodes returned by the server.
Structure to hold all data for one list element.
Definition: LinkedList.h:57
Header header
MQTT header byte.
Definition: MQTTPacket.h:164
int ListRemoveItem(List *aList, void *content, int(*callback)(void *, void *))
Removes and frees an element in a list by comparing the content.
Definition: LinkedList.c:349
struct NodeStruct * child[2]
pointers to child tree nodes 0 = left, 1 = right
Definition: Tree.h:80
bool cleanstart
cleansession flag
Definition: MQTTPacket.h:110
Configuration data related to all clients.
Definition: Clients.h:155
int enableServerCertAuth
True/False option to enable verification of the server certificate.
Definition: MQTTAsync.h:983
size_t size
size of the allocated storage
Definition: Heap.c:73
char * readUTF(char **pptr, char *enddata)
Reads a "UTF" string from the input buffer.
Definition: MQTTPacket.c:401
void MQTTClient_destroy(MQTTClient *handle)
This function frees the memory allocated to an MQTT client (see MQTTClient_create()).
Definition: MQTTClient.c:554
void * payload
A pointer to the payload of the MQTT message.
Definition: MQTTAsync.h:267
int enableServerCertAuth
True/False option to enable verification of the server certificate.
Definition: MQTTClient.h:688
unsigned int good
if we have an error on the socket we turn this off
Definition: Clients.h:124
void * MQTTPacket_connack(int MQTTVersion, unsigned char aHeader, char *data, size_t datalen)
Function used in the new packets table to create connack packets.
Definition: MQTTPacketOut.c:142
int retained
The retained flag for the LWT message (see MQTTAsync_message.retained).
Definition: MQTTAsync.h:917
The data for a length delimited string.
Definition: MQTTProperties.h:85
Persistence_close pclose
A function pointer to an implementation of Persistence_close().
Definition: MQTTClientPersistence.h:227
void MQTTAsync_freeMessage(MQTTAsync_message **message)
This function frees memory allocated to an MQTT message, including the additional memory allocated to...
Definition: MQTTAsync.c:2225
int connectTimeout
The time interval in seconds to allow a connect to complete.
Definition: MQTTAsync.h:1125
char nextMessageType
used for retry and expiry
Definition: Clients.h:60
void * MQTTPacket_unsuback(int MQTTVersion, unsigned char aHeader, char *data, size_t datalen)
Function used in the new packets table to create unsuback packets.
Definition: MQTTPacketOut.c:408
int MQTTClient_subscribeMany(MQTTClient handle, int count, char *const *topic, int *qos)
This function attempts to subscribe a client to a list of topics, which may contain wildcards (see wi...
Definition: MQTTClient.c:2066
int struct_version
The version number of this structure.
Definition: MQTTClient.h:793
int MQTTAsync_setDeliveryCompleteCallback(MQTTAsync handle, void *context, MQTTAsync_deliveryComplete *dc)
This function sets the callback function for a delivery complete event for a specific client.
Definition: MQTTAsync.c:2738
const MQTTAsync_nameValue * httpHeaders
httpHeaders
Definition: MQTTAsync.h:1223
void ListZero(List *newl)
Sets a list structure to empty - all null values.
Definition: LinkedList.c:42
struct MQTTClient_willOptions::@16 payload
The LWT payload in binary form.
void MQTTPacket_freeAck(Ack *pack)
Free allocated storage for an ack packet.
Definition: MQTTPacket.c:605
char fixed_header[5]
header plus up to 4 length bytes
Definition: SocketBuffer.h:42
void SocketBuffer_cleanup(int socket)
Cleanup any buffers for a specific socket.
Definition: SocketBuffer.c:151
The data returned on completion of an unsuccessful API call in the response callback onFailure.
Definition: MQTTAsync.h:463
const void * data
binary password data
Definition: MQTTClient.h:909
MQTTAsync_onFailure * onFailure
A pointer to a callback function to be called if the API call fails.
Definition: MQTTAsync.h:641
int maxBufferedMessages
the maximum number of messages allowed to be buffered while not connected.
Definition: MQTTAsync.h:873
const char * serverURI
the serverURI connected to
Definition: MQTTClient.h:899
static int lines_written
number of lines written to the current output file
Definition: Log.c:102
MQTTAsync_willOptions * will
This is a pointer to an MQTTAsync_willOptions structure.
Definition: MQTTAsync.h:1109
void MQTTProtocol_keepalive(START_TIME_TYPE now)
MQTT protocol keepAlive processing.
Definition: MQTTProtocolClient.c:652
int count
no of items
Definition: Tree.h:84
static size_t Heap_roundup(size_t size)
Round allocation size up to a multiple of the size of an int.
Definition: Heap.c:98
int msgid
The message identifier is normally reserved for internal use by the MQTT client and server.
Definition: MQTTClient.h:320
static int MQTTAsync_Socket_noPendingWrites(int socket)
Call Socket_noPendingWrites(int socket) with protection by socket_mutex, see https://github....
Definition: MQTTAsync.c:1323
int MQTTVersion
Sets the version of MQTT to be used on the connect.
Definition: MQTTClient.h:893
int disableDefaultTrustStore
Don't load default SSL CA.
Definition: MQTTClient.h:740
MQTTAsync_message message
the message being sent to the server
Definition: MQTTAsync.h:501
int retained
The retained flag serves two purposes depending on whether the message it is associated with is being...
Definition: MQTTAsync.h:300
int MQTTClient_setDisconnected(MQTTClient handle, void *context, MQTTClient_disconnected *disconnected)
Sets the MQTTClient_disconnected() callback function for a client.
Definition: MQTTClient.c:680
unsigned char retainAsPublished
To keep the retain flag as on the original publish message, set to 1.
Definition: MQTTSubscribeOpts.h:50
size_t len
length of frame
Definition: WebSocket.c:145
unsigned char rc
MQTT 5 reason code.
Definition: MQTTPacket.h:217
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:629
Data for a connack packet.
Definition: MQTTPacket.h:134
int Thread_destroy_sem(sem_type sem)
Destroy a semaphore which has already been created.
Definition: Thread.c:341
void MQTTProtocol_retry(START_TIME_TYPE now, int doRetry, int regardless)
MQTT retry protocol and socket pending writes processing.
Definition: MQTTProtocolClient.c:774
int MQTTVersion
Whether the MQTT version is 3.1, 3.1.1, or 5.
Definition: MQTTClient.h:543
int MQTTClient_disconnect(MQTTClient handle, int timeout)
This function attempts to disconnect the client from the MQTT server.
Definition: MQTTClient.c:1899
char * SocketBuffer_getQueuedData(int socket, size_t bytes, size_t *actual_len)
Get any queued data for a specific socket.
Definition: SocketBuffer.c:176
int MQTTVersion
the version of MQTT being used, 3, 4 or 5
Definition: Clients.h:140
Sockets s
Structure to hold all socket data for the module.
Definition: Socket.c:66
Structure to hold all socket data for the module.
Definition: Socket.h:116
unsigned int heap_tracking
switch on heap tracking for this tree?
Definition: Tree.h:86
int len
binary password length
Definition: MQTTAsync.h:1193
const char * privateKey
If not included in the sslKeyStore, this setting points to the file in PEM format containing the clie...
Definition: MQTTClient.h:673
const char * enabledCipherSuites
The list of cipher suites that the client will present to the server during the SSL handshake.
Definition: MQTTClient.h:685
void writeChar(char **pptr, char c)
Writes one character to an output buffer.
Definition: MQTTPacket.c:426
int len
the length of the string
Definition: MQTTProperties.h:86
const char * privateKeyPassword
The password to load the client's privateKey if encrypted.
Definition: MQTTAsync.h:970
static void MQTTProtocol_retries(START_TIME_TYPE now, Clients *client, int regardless)
MQTT retry processing per client.
Definition: MQTTProtocolClient.c:702
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:1262
int MQTTPacket_send_subscribe(List *topics, List *qoss, MQTTSubscribe_options *opts, MQTTProperties *props, int msgid, int dup, Clients *client)
Send an MQTT subscribe packet down a socket.
Definition: MQTTPacketOut.c:228
int Thread_wait_cond(cond_type condvar, int timeout)
Wait with a timeout (seconds) for condition variable.
Definition: Thread.c:416
int timeout
The client delays disconnection for up to this time (in milliseconds) in order to allow in-flight mes...
Definition: MQTTAsync.h:1267
#define ARRAY_SIZE(a)
Macro to determine the number of elements in a single-dimension array.
Definition: utf-8.c:37
const char * enabledCipherSuites
The list of cipher suites that the client will present to the server during the SSL handshake.
Definition: MQTTAsync.h:980
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:467
void * ssl_error_context
Application-specific contex for OpenSSL error handler ERR_print_errors_cb Exists only if struct_versi...
Definition: MQTTClient.h:720
MQTTProperties properties
MQTT V5 input properties.
Definition: MQTTAsync.h:1289
enum MQTTReasonCodes reasonCode
MQTT V5 reason code returned.
Definition: MQTTAsync.h:522
int MQTTClient_unsubscribeMany(MQTTClient handle, int count, char *const *topic)
This function attempts to remove existing subscriptions to a list of topics made by the specified cli...
Definition: MQTTClient.c:2213
int MQTTClient_setCallbacks(MQTTClient handle, void *context, MQTTClient_connectionLost *cl, MQTTClient_messageArrived *ma, MQTTClient_deliveryComplete *dc)
This function sets the callback functions for a specific client.
Definition: MQTTClient.c:1030
struct MQTTClient_connectOptions::@18 binarypwd
Optional binary password.
pending_writes * SocketBuffer_updateWrite(int socket, char *topic, char *payload)
Update the queued write data for a socket in the case of QoS 0 messages.
Definition: SocketBuffer.c:424
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:869
char * clientID
string client id
Definition: MQTTPacket.h:121
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:783
int sslVersion
The SSL/TLS version to use.
Definition: MQTTAsync.h:989
int MQTTClient_unsubscribe(MQTTClient handle, const char *topic)
This function attempts to remove an existing subscription made by the specified client.
Definition: MQTTClient.c:2230
bool password
3.1 password
Definition: MQTTPacket.h:114
int Socket_getch(int socket, char *c)
Reads one byte from a socket.
Definition: Socket.c:332
int msgId
MQTT message id.
Definition: MQTTPacket.h:174
int(* Persistence_put)(void *handle, char *key, int bufcount, char *buffers[], int buflens[])
Put the specified data into the persistent store.
Definition: MQTTClientPersistence.h:140
int payloadlen
payload length
Definition: MQTTPacket.h:204
int maxInflight
This controls how many messages can be in-flight simultaneously.
Definition: MQTTAsync.h:1103
willMessages * will
the MQTT will message, if any
Definition: Clients.h:132
Data for a connect packet.
Definition: MQTTPacket.h:90
int disableDefaultTrustStore
Don't load default SSL CA.
Definition: MQTTAsync.h:1035
int struct_version
The version number of this structure.
Definition: MQTTClient.h:272
int MQTTAsync_isConnected(MQTTAsync handle)
This function allows the client application to test whether or not a client is currently connected to...
Definition: MQTTAsync.c:3424
void ListEmpty(List *aList)
Removes and frees all items in a list, leaving the list ready for new items.
Definition: LinkedList.c:359
int struct_version
The version number of this structure.
Definition: MQTTClient.h:229
int MQTTAsync_unsubscribe(MQTTAsync handle, const char *topic, MQTTAsync_responseOptions *response)
This function attempts to remove an existing subscription made by the specified client.
Definition: MQTTAsync.c:3699
int struct_version
The version number of this structure.
Definition: MQTTSubscribeOpts.h:41
int messageIDCompare(void *a, void *b)
List callback function for comparing Message structures by message id.
Definition: MQTTProtocolClient.c:64
static const char * UTF8_char_validate(int len, const char *data)
Validate a single UTF-8 character.
Definition: utf-8.c:76
int Socket_getReadySocket(int more_work, struct timeval *tp, mutex_type mutex)
Returns the next socket ready for communications as indicated by select.
Definition: Socket.c:242
int do_openssl_init
1 = we do openssl init, 0 = leave it to the application
Definition: MQTTClient.h:231
The data returned on completion of a successful API call in the response callback onSuccess.
Definition: MQTTAsync.h:517
int MQTTAsync_subscribeMany(MQTTAsync handle, int count, char *const *topic, int *qos, MQTTAsync_responseOptions *response)
This function attempts to subscribe a client to a list of topics, which may contain wildcards (see wi...
Definition: MQTTAsync.c:3494
int isReady(int socket, fd_set *read_set, fd_set *write_set)
Don't accept work from a client unless it is accepting work back, i.e.
Definition: Socket.c:221
const char * CApath
From the OpenSSL documentation: If CApath is not NULL, it points to a directory containing CA certifi...
Definition: MQTTAsync.h:1003
Persistence_keys pkeys
A function pointer to an implementation of Persistence_keys().
Definition: MQTTClientPersistence.h:243
unsigned char readChar(char **pptr)
Reads one character from the input buffer.
Definition: MQTTPacket.c:413
int max_count
max number of properties that the currently allocated array can store
Definition: MQTTProperties.h:115
static Tree heap
Tree that holds the allocation records.
Definition: Heap.c:79
MQTTResponse MQTTClient_connect5(MQTTClient handle, MQTTClient_connectOptions *options, MQTTProperties *connectProperties, MQTTProperties *willProperties)
Attempts to connect a previously-created client (see MQTTClient_create()) to an MQTT server using MQT...
Definition: MQTTClient.c:1649
Options for the MQTTAsync_disconnect call.
Definition: MQTTAsync.h:1258
Persistence_remove premove
A function pointer to an implementation of Persistence_remove().
Definition: MQTTClientPersistence.h:239
MQTTClient_nameValue * MQTTClient_getVersionInfo(void)
This function returns version information about the library.
Definition: MQTTClient.c:2857
union MQTTAsync_successData5::@9 alt
A union of the different values that can be returned for subscribe, unsubscribe and publish.
int SocketBuffer_pendingWrite(int socket, int count, iobuf *iovecs, int *frees, size_t total, size_t bytes)
A socket write was interrupted so store the remaining data.
Definition: SocketBuffer.c:349
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:206
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:189
int MQTTProtocol_startPublish(Clients *pubclient, Publish *publish, int qos, int retained, Messages **mm)
Start a new publish exchange.
Definition: MQTTProtocolClient.c:161
int payloadlen
The length of the MQTT message payload in bytes.
Definition: MQTTClient.h:274
static FILE * trace_destination
flag to indicate if trace is to be sent to a stream
Definition: Log.c:99
void MQTTAsync_free(void *memory)
This function frees memory allocated by the MQTT C client library, especially the topic name.
Definition: MQTTAsync.c:2236
int SocketBuffer_newDefQ(void)
Create a new default queue when one has just been used.
Definition: SocketBuffer.c:79
const char * MQTTClient_strerror(int code)
Returns a pointer to the string representation of the error or NULL.
Definition: MQTTClient.c:2893
Node * root
root node pointer
Definition: Tree.h:80
union Connack::@22 flags
connack flags byte
unsigned char byte
holds the value of a byte property type
Definition: MQTTProperties.h:99
List * ListInitialize(void)
Allocates and initializes a new list structure.
Definition: LinkedList.c:52
int HeapDump(FILE *file)
Dump the state of the heap.
Definition: Heap.c:462
static int MQTTAsync_assignMsgId(MQTTAsyncs *m)
Assign a new message id for a client.
Definition: MQTTAsync.c:3452
List * clientsds
list of client socket descriptors
Definition: Socket.h:120
const char * username
MQTT v3.1 user name.
Definition: Clients.h:118
raw websocket frame data
Definition: WebSocket.c:144
int pstcontainskey(void *handle, char *key)
Returns whether if a wire message is persisted in the client persistence directory.
Definition: MQTTPersistenceDefault.c:381
Client will message data.
Definition: Clients.h:68
int Thread_destroy_cond(cond_type condvar)
Destroy a condition variable.
Definition: Thread.c:437
int maxInflightMessages
The maximum number of messages in flight.
Definition: MQTTClient.h:914
static int clientSockCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: MQTTAsync.c:532
int pstclose(void *handle)
Delete client persistence directory (if empty).
Definition: MQTTPersistenceDefault.c:347
char *const * serverURIs
Definition: MQTTAsync.h:1169
int maxRetryInterval
Maximum retry interval in seconds.
Definition: MQTTAsync.h:1188
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:610
int keepAliveInterval
The "keep alive" interval, measured in seconds, defines the maximum time that should pass without com...
Definition: MQTTAsync.h:1077
ListElement * ListInsert(List *aList, void *content, size_t size, ListElement *index)
Insert an item to a list at a specific position.
Definition: LinkedList.c:107
unsigned int cleanstart
MQTT V5 clean start flag.
Definition: Clients.h:122
int Socket_noPendingWrites(int socket)
Indicate whether any data is pending outbound for a socket.
Definition: Socket.c:418
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:269
void * ListPopTail(List *aList)
Removes but does not free the last item in a list.
Definition: LinkedList.c:306
Header header
MQTT header byte.
Definition: MQTTPacket.h:173
char * payload
binary payload, length delimited
Definition: MQTTPacket.h:203
struct MQTTAsync_successData5::@9::@11 pub
For publish, the message being sent to the server.
void * ssl_psk_context
Application-specific contex for ssl_psk_cb Exists only if struct_version >= 4.
Definition: MQTTAsync.h:1028
const void * password
MQTT v3.1 binary password.
Definition: Clients.h:120
int SocketBuffer_initialize(void)
Initialize the socketBuffer module.
Definition: SocketBuffer.c:102
int MQTTPacket_send_pubcomp(int MQTTVersion, int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBCOMP packet down a socket.
Definition: MQTTPacket.c:751
int struct_version
The version number of this structure.
Definition: MQTTClient.h:614
List * messageQueue
inbound complete but undelivered messages
Definition: Clients.h:135
unsigned int cleansession
MQTT V3 clean session flag.
Definition: Clients.h:121
int MQTTVersion
the version of MQTT being used
Definition: MQTTAsync.h:543
int MQTTPacket_send_pubrec(int MQTTVersion, int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBREC packet down a socket.
Definition: MQTTPacket.c:710
int MQTTPacket_send(networkHandles *net, Header header, char *buffer, size_t buflen, int freeData, int MQTTVersion)
Sends an MQTT packet in one system call write.
Definition: MQTTPacket.c:185
int msgid
The message identifier is normally reserved for internal use by the MQTT client and server.
Definition: MQTTAsync.h:311
const char * value
value string
Definition: MQTTAsync.h:1045
int MQTTAsync_send(MQTTAsync handle, const char *destinationName, int payloadlen, const void *payload, int qos, int retained, MQTTAsync_responseOptions *response)
This function attempts to publish a message to a given topic (see also MQTTAsync_sendMessage()).
Definition: MQTTAsync.c:3727
sem_type Thread_create_sem(int *rc)
Create a new semaphore.
Definition: Thread.c:190
static int max_lines_per_file
maximum number of lines to write to one trace file
Definition: Log.c:103
Structure to hold all data for one tree.
Definition: Tree.h:77
void * ptr
pointer to the allocated storage
Definition: Heap.c:72
List * outboundMsgs
outbound in flight messages
Definition: Clients.h:134
Each item on the heap is recorded with this structure.
Definition: Heap.c:69
Options for the MQTTClient_createWithOptions call.
Definition: MQTTClient.h:533
int Socket_new(const char *addr, size_t addr_len, int port, int *sock)
Create a new socket and TCP connect to an address/port.
Definition: Socket.c:672
Publications * MQTTProtocol_storePublication(Publish *publish, int *len)
Store message data for possible retry.
Definition: MQTTProtocolClient.c:249
int(* ssl_error_cb)(const char *str, size_t len, void *u)
Callback function for OpenSSL error handler ERR_print_errors_cb Exists only if struct_version >= 3.
Definition: MQTTClient.h:714
Persistence_open popen
A function pointer to an implementation of Persistence_open().
Definition: MQTTClientPersistence.h:223
int Thread_post_sem(sem_type sem)
Post a semaphore.
Definition: Thread.c:313
int UTF8_validateString(const char *string)
Validate a null-terminated string has only UTF-8 characters.
Definition: utf-8.c:156
int MQTTPacket_encode(char *buf, size_t length)
Encodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:285
char * destinationName
the topic destination for the message
Definition: MQTTAsync.h:502
unsigned int connected
whether it is currently connected
Definition: Clients.h:123
ListElement * ListAppend(List *aList, void *content, size_t size)
Append an item to a list.
Definition: LinkedList.c:90
size_t current_size
current size of the heap in bytes
Definition: Heap.h:64
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTSubscribeOpts.h:38
static int ListUnlink(List *aList, void *content, int(*callback)(void *, void *), int freeContent)
Removes and optionally frees an element in a list by comparing the content.
Definition: LinkedList.c:201
int retryInterval
The time interval in seconds after which unacknowledged publish requests are retried during a TCP ses...
Definition: MQTTAsync.h:1133
void MQTTProtocol_emptyMessageList(List *msgList)
Empty a message list, leaving it able to accept new messages.
Definition: MQTTProtocolClient.c:856
static const char * packet_names[]
List of the predefined MQTT v3/v5 packet names.
Definition: MQTTPacket.c:50
int MQTTProtocol_unsubscribe(Clients *client, List *topics, int msgID, MQTTProperties *props)
MQTT outgoing unsubscribe processing for a client.
Definition: MQTTProtocolOut.c:388
#define _unlink
_unlink mapping for linux
Definition: Log.c:59
int MQTTPacket_sends(networkHandles *net, Header header, int count, char **buffers, size_t *buflens, int *frees, int MQTTVersion)
Sends an MQTT packet from multiple buffers in one system call write.
Definition: MQTTPacket.c:237
static char * readUTFlen(char **pptr, char *enddata, int *len)
Reads a "UTF" string from the input buffer.
Definition: MQTTPacket.c:368
const char * password
MQTT servers that support the MQTT v3.1.1 protocol provide authentication and authorisation by user n...
Definition: MQTTClient.h:853
int MQTTPacket_send_unsubscribe(List *topics, MQTTProperties *props, int msgid, int dup, Clients *client)
Send an MQTT unsubscribe packet down a socket.
Definition: MQTTPacketOut.c:359
const char * username
MQTT servers that support the MQTT v3.1.1 protocol provide authentication and authorisation by user n...
Definition: MQTTClient.h:847
Data for one of the ack packets.
Definition: MQTTPacket.h:214
void MQTTAsync_global_init(MQTTAsync_init_options *inits)
Global init of mqtt library.
Definition: MQTTAsync.c:79
char * MQTTStrdup(const char *src)
Duplicate a string, safely, allocating space on the heap.
Definition: MQTTProtocolClient.c:919
void * MQTTPacket_header_only(int MQTTVersion, unsigned char aHeader, char *data, size_t datalen)
Function used in the new packets table to create packets which have only a header.
Definition: MQTTPacket.c:483
void Socket_outTerminate(void)
Terminate the socket module.
Definition: Socket.c:151
Definition: MQTTAsync.c:425
Definition: MQTTProperties.c:29
Persistence_containskey pcontainskey
A function pointer to an implementation of Persistence_containskey().
Definition: MQTTClientPersistence.h:251
unsigned char retainHandling
0 - send retained messages at the time of the subscribe (original MQTT behaviour) 1 - send retained m...
Definition: MQTTSubscribeOpts.h:55
int Socket_error(char *aString, int sock)
Gets the specific error corresponding to SOCKET_ERROR.
Definition: Socket.c:101
int MQTTClient_create(MQTTClient *handle, const char *serverURI, const char *clientId, int persistence_type, void *persistence_context)
This function creates an MQTT client ready for connection to the specified server and using the speci...
Definition: MQTTClient.c:505
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the disconnect successfully completes.
Definition: MQTTAsync.h:1299
int MQTTPersistence_restoreMessageQueue(Clients *c)
Restores a queue of messages from persistence to memory.
Definition: MQTTPersistence.c:777
const char * Messages_get(int index, enum LOG_LEVELS log_level)
Get a log message by its index.
Definition: Messages.c:94
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:955
int readInt(char **pptr)
Calculates an integer from two bytes read from the input buffer.
Definition: MQTTPacket.c:347
void * TreeAddByIndex(Tree *aTree, void *content, size_t size, int index)
Add an item to a tree.
Definition: Tree.c:210
int websocket
socket has been upgraded to use web sockets
Definition: Clients.h:90
const char * privateKeyPassword
The password to load the client's privateKey if encrypted.
Definition: MQTTClient.h:675
Initialization options.
Definition: MQTTAsync.h:218
Persistence_clear pclear
A function pointer to an implementation of Persistence_clear().
Definition: MQTTClientPersistence.h:247
void MQTTPersistence_wrapMsgID(Clients *client)
Checks whether the message IDs wrapped by looking for the largest gap between two consecutive message...
Definition: MQTTPersistence.c:551
int qos
The quality of service (QoS) assigned to the message.
Definition: MQTTAsync.h:281
MQTTAsync_token token
A token identifying the failed request.
Definition: MQTTAsync.h:453
int msgId
MQTT message id.
Definition: MQTTPacket.h:202
static heap_info state
global heap state information
Definition: Heap.c:58
int retryInterval
The time interval in seconds after which unacknowledged publish requests are retried during a TCP ses...
Definition: MQTTClient.h:865
int(* compare)(void *, void *, int)
comparison function
Definition: Tree.h:81
MQTTAsync_token token
A token is returned from the call.
Definition: MQTTAsync.h:653
List * qoss
list of granted QoSs (MQTT 3/4) / reason codes (MQTT 5)
Definition: MQTTPacket.h:177
int Thread_lock_mutex(mutex_type mutex)
Lock a mutex which has alrea.
Definition: Thread.c:112
void SocketBuffer_queueChar(int socket, char c)
Queued a Charactor to a specific socket.
Definition: SocketBuffer.c:303
int pending_socketcompare(void *a, void *b)
List callback function for comparing pending_writes by socket.
Definition: SocketBuffer.c:388
MQTTResponse MQTTClient_unsubscribe5(MQTTClient handle, const char *topic, MQTTProperties *props)
This function attempts to remove an existing subscription made by the specified client using MQTT 5....
Definition: MQTTClient.c:2221
int msgID
the MQTT message id
Definition: Clients.h:128
int MQTTPersistence_clear(Clients *c)
Clears the persistent store.
Definition: MQTTPersistence.c:161
static socket_queue * def_queue
Default input queue buffer.
Definition: SocketBuffer.c:45
static int MQTTPacket_send_ack(int MQTTVersion, int type, int msgid, int dup, networkHandles *net)
Send an MQTT acknowledgement packet down a socket.
Definition: MQTTPacket.c:624
int passwordlen
MQTT password length.
Definition: Clients.h:119
MQTTProperties properties
The MQTT V5 properties associated with the message.
Definition: MQTTClient.h:324
const char * name
name string
Definition: MQTTAsync.h:1044
int MQTTClient_getPendingDeliveryTokens(MQTTClient handle, MQTTClient_deliveryToken **tokens)
This function sets a pointer to an array of delivery tokens for messages that are currently in-flight...
Definition: MQTTClient.c:2804
int MQTTPersistence_close(Clients *c)
Close persistent store.
Definition: MQTTPersistence.c:136
MQTTProperties properties
The MQTT V5 properties associated with the message.
Definition: MQTTAsync.h:315
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:176
MQTTAsync_onFailure5 * onFailure5
A pointer to a callback function to be called if the connect fails.
Definition: MQTTAsync.h:1219
int pstremove(void *handle, char *key)
Delete a persisted message from the client persistence directory.
Definition: MQTTPersistenceDefault.c:303
MQTTProperties properties
The MQTT properties on the ack, if any.
Definition: MQTTAsync.h:473
MQTTProperties * willProperties
MQTT V5 properties for the will message in the connect.
Definition: MQTTAsync.h:1207
The data returned on completion of a successful API call in the response callback onSuccess.
Definition: MQTTAsync.h:486
A structure containing the function pointers to a persistence implementation and the context or state...
Definition: MQTTClientPersistence.h:215
int keepAliveInterval
the MQTT keep alive interval
Definition: Clients.h:129
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:188
The data returned on completion of an unsuccessful API call in the response callback onFailure.
Definition: MQTTAsync.h:451
char * Socket_getaddrname(struct sockaddr *sa, int sock)
Convert a numeric address to character string.
Definition: Socket.c:1021
Structure to hold all data for one list.
Definition: LinkedList.h:68
Structure to hold an MQTT version 5 property of any type.
Definition: MQTTProperties.h:95
This structure represents a persistent data store, used to store outbound and inbound messages,...
MQTTResponse MQTTClient_publish5(MQTTClient handle, const char *topicName, int payloadlen, const void *payload, int qos, int retained, MQTTProperties *properties, MQTTClient_deliveryToken *deliveryToken)
Attempts to publish a message to a given topic using MQTT version 5.0 (see also MQTTClient_publishMes...
Definition: MQTTClient.c:2238
const char * message
The LWT payload in string form.
Definition: MQTTClient.h:618
enum MQTTReasonCodes reasonCode
Reason code for MQTTV5 disconnect.
Definition: MQTTAsync.h:1293
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:155
void MQTTPacket_free_packet(MQTTPacket *pack)
Free allocated storage for a various packet tyoes.
Definition: MQTTPacket.c:889
void * mymalloc(char *file, int line, size_t size)
Allocates a block of memory.
Definition: Heap.c:158
int len
number of elements in the following array (1 to 4)
Definition: utf-8.c:46
MQTTAsync_connectOptions defines several settings that control the way the client connects to an MQTT...
Definition: MQTTAsync.h:1054
void * context
A pointer to any application-specific context.
Definition: MQTTAsync.h:647
size_t buflen
total length of the buffer
Definition: SocketBuffer.h:43
MQTT version 5.0 response information.
Definition: MQTTClient.h:955
ListElement * last
last element in the list
Definition: LinkedList.h:70
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:535
Data related to one client.
Definition: Clients.h:116
ListElement * ListFind(List *aList, void *content)
Finds an element in a list by comparing the content pointers, rather than the contents.
Definition: LinkedList.c:140
void Heap_unlink(char *file, int line, void *p)
Remove an item from the recorded heap without actually freeing it.
Definition: Heap.c:300
size_t pos
current position within the buffer
Definition: WebSocket.c:146
int Thread_unlock_mutex(mutex_type mutex)
Unlock a mutex which has already been locked.
Definition: Thread.c:133
struct MQTTClient_connectOptions::@17 returned
Returned from the connect when the MQTT version used to connect is 3.1.1.
ListElement * first
first element in the list
Definition: LinkedList.h:69
int MQTTAsync_reconnect(MQTTAsync handle)
Reconnects a client with the previously used connect options.
Definition: MQTTAsync.c:1234
pf new_packets[]
Array of functions to build packets, indexed according to packet code.
Definition: MQTTPacket.c:73
void * context
A pointer to any data required to initialize the persistent store.
Definition: MQTTClientPersistence.h:219
int Heap_initialize(void)
Heap initialization.
Definition: Heap.c:406
char * willTopic
will topic
Definition: MQTTPacket.h:122
const void * data
binary payload data
Definition: MQTTAsync.h:927
mutex_type Thread_create_mutex(int *rc)
Create a new mutex.
Definition: Thread.c:88
unsigned char noLocal
To not receive our own publications, set to 1.
Definition: MQTTSubscribeOpts.h:45
MQTTAsync_onFailure * onFailure
A pointer to a callback function to be called if the connect fails.
Definition: MQTTAsync.h:1150
int MQTTAsync_setMessageArrivedCallback(MQTTAsync handle, void *context, MQTTAsync_messageArrived *ma)
This function sets the callback function for a message arrived event for a specific client.
Definition: MQTTAsync.c:2716
MQTTAsync_onFailure5 * onFailure5
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:665
int MQTTAsync_connect(MQTTAsync handle, const MQTTAsync_connectOptions *options)
This function attempts to connect a previously-created client (see MQTTAsync_create()) to an MQTT ser...
Definition: MQTTAsync.c:2985
void MQTTPacket_freePublish(Publish *pack)
Free allocated storage for a publish packet.
Definition: MQTTPacket.c:589
void writeUTF(char **pptr, const char *string)
Writes a "UTF" string to an output buffer.
Definition: MQTTPacket.c:452
ListElement * ListPrevElement(List *aList, ListElement **pos)
Backward iteration through a list.
Definition: LinkedList.c:424
int count
number of property entries in the array
Definition: MQTTProperties.h:114
int MQTTProtocol_handlePubrecs(void *pack, int sock)
Process an incoming pubrec packet for a socket.
Definition: MQTTProtocolClient.c:449
char * Protocol
MQTT protocol name.
Definition: MQTTPacket.h:120
const char * MQTTPacket_name(int ptype)
Converts an MQTT packet code into its name.
Definition: MQTTPacket.c:65
void writeInt(char **pptr, int anInt)
Writes an integer as 2 bytes to an output buffer.
Definition: MQTTPacket.c:438
int MQTTPacket_send_pubrel(int MQTTVersion, int msgid, int dup, networkHandles *net, const char *clientID)
Send an MQTT PUBREL packet down a socket.
Definition: MQTTPacket.c:731
MQTTProperty * array
array of properties
Definition: MQTTProperties.h:117
void Log_stackTrace(enum LOG_LEVELS log_level, int msgno, int thread_id, int current_depth, const char *name, int line, int *rc)
The reason for this function is to make trace logging as fast as possible so that the function exit/e...
Definition: Log.c:448
void MQTTClient_freeMessage(MQTTClient_message **message)
This function frees memory allocated to an MQTT message, including the additional memory allocated to...
Definition: MQTTClient.c:599
const void * data
binary password data
Definition: MQTTAsync.h:1194
Definition: StackTrace.c:54
int MQTTVersion
current MQTT version being used to connect
Definition: MQTTAsync.c:361
static char * trace_destination_name
the name of the trace file
Definition: Log.c:100
MQTTAsync_message message
the message being sent to the server
Definition: MQTTAsync.h:536
char upper
upper limit of valid range
Definition: utf-8.c:50
int retained
The retained flag serves two purposes depending on whether the message it is associated with is being...
Definition: MQTTClient.h:309
int ListDetachItem(List *aList, void *content, int(*callback)(void *, void *))
Removes but does not free an element in a list by comparing the content.
Definition: LinkedList.c:335
int MQTTClient_connect(MQTTClient handle, MQTTClient_connectOptions *options)
This function attempts to connect a previously-created client (see MQTTClient_create()) to an MQTT se...
Definition: MQTTClient.c:1635
void SocketBuffer_interrupted(int socket, size_t actual_len)
A socket read was interrupted so we need to queue data.
Definition: SocketBuffer.c:252
int reasonCodeCount
the number of reason codes in the reasonCodes array
Definition: MQTTAsync.h:530
int struct_version
The version number of this structure.
Definition: MQTTClient.h:660
static int Internal_heap_unlink(char *file, int line, void *p)
Remove an item from the recorded heap without actually freeing it.
Definition: Heap.c:245
char * FindString(char *filename, const char *eyecatcher_input)
Finds an eyecatcher in a binary file and returns the following value.
Definition: MQTTVersion.c:73
MQTTProperties properties
MQTT V5 input properties.
Definition: MQTTAsync.h:669
int(* Persistence_open)(void **handle, const char *clientID, const char *serverURI, void *context)
Initialize the persistent store.
Definition: MQTTClientPersistence.h:113
void * MQTTPacket_Factory(int MQTTVersion, networkHandles *net, int *error)
Reads one MQTT packet from a socket.
Definition: MQTTPacket.c:103
int sslVersion
The SSL/TLS version to use.
Definition: MQTTClient.h:694
int pstopen(void **handle, const char *clientID, const char *serverURI, void *context)
Create persistence directory for the client: context/clientID-serverURI.
Definition: MQTTPersistenceDefault.c:64
int MQTTClient_waitForCompletion(MQTTClient handle, MQTTClient_deliveryToken mdt, unsigned long timeout)
This function is called by the client application to synchronize execution of the main thread with co...
Definition: MQTTClient.c:2762
Definition: MQTTAsync.c:368
struct @32::@33 bytes[4]
up to 4 bytes can be used per character
int do_openssl_init
1 = we do openssl init, 0 = leave it to the application
Definition: MQTTAsync.h:224
int MQTTPacket_VBIdecode(int(*getcharfn)(char *, int), unsigned int *value)
Decodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:996
int MQTTAsync_setDisconnected(MQTTAsync handle, void *context, MQTTAsync_disconnected *disconnected)
Sets the MQTTAsync_disconnected() callback function for a client.
Definition: MQTTAsync.c:2762
size_t MQTTProtocol_addressPort(const char *uri, int *port, const char **topic)
Separates an address:port into two separate values.
Definition: MQTTProtocolOut.c:54
void MQTTResponse_free(MQTTResponse response)
Frees the storage associated with the MQTT response.
Definition: MQTTClient.c:618
Header header
MQTT header byte.
Definition: MQTTPacket.h:199
int automaticReconnect
Reconnect automatically in the case of a connection being lost?
Definition: MQTTAsync.h:1180
int MQTTAsync_setConnected(MQTTAsync handle, void *context, MQTTAsync_connected *connected)
Sets the MQTTAsync_connected() callback function for a client.
Definition: MQTTAsync.c:2784
int Socket_addSocket(int newSd)
Add a socket to the list of socket to check with select.
Definition: Socket.c:169
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:659
int pstmkdir(char *pPathname)
Function to create a directory.
Definition: MQTTPersistenceDefault.c:157
struct MQTTAsync_connectOptions::@15 binarypwd
Optional binary password.
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:263
void writeInt4(char **pptr, int anInt)
Writes an integer as 4 bytes to an output buffer.
Definition: MQTTPacket.c:909
void ListFree(List *aList)
Removes and frees all items in a list, and frees the list itself.
Definition: LinkedList.c:381
void Socket_clearPendingWrite(int socket)
Clear a socket from the pending write list - if one was added with Socket_addPendingWrite.
Definition: Socket.c:588
int MQTTPacket_send_puback(int MQTTVersion, int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBACK packet down a socket.
Definition: MQTTPacket.c:656
char * file
the name of the source file where the storage was allocated
Definition: Heap.c:70
int(* Persistence_containskey)(void *handle, char *key)
Returns whether any data has been persisted using the specified key.
Definition: MQTTClientPersistence.h:208
int MQTTProtocol_handlePingresps(void *pack, int sock)
Process an incoming pingresp packet for a socket.
Definition: MQTTProtocolOut.c:326
int len
binary payload length
Definition: MQTTAsync.h:926
int connectTimeout
The time interval in seconds to allow a connect to complete.
Definition: MQTTClient.h:857
int MQTTProtocol_handlePubrels(void *pack, int sock)
Process an incoming pubrel packet for a socket.
Definition: MQTTProtocolClient.c:518
int MQTTPacket_send_pingreq(networkHandles *net, const char *clientID)
Send an MQTT PINGREQ packet down a socket.
Definition: MQTTPacketOut.c:203
int minRetryInterval
Minimum retry interval in seconds.
Definition: MQTTAsync.h:1184
static int clientSockCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: MQTTClient.c:658
void * MQTTPersistence_restorePacket(int MQTTVersion, char *buffer, size_t buflen)
Returns a MQTT packet restored from persisted data.
Definition: MQTTPersistence.c:340
union Connect::@20 flags
connect flags byte
int MQTTProtocol_handlePubcomps(void *pack, int sock)
Process an incoming pubcomp packet for a socket.
Definition: MQTTProtocolClient.c:597
void * ssl_psk_context
Application-specific contex for ssl_psk_cb Exists only if struct_version >= 4.
Definition: MQTTClient.h:733
void MQTTProtocol_removePublication(Publications *p)
Remove stored message data.
Definition: MQTTProtocolClient.c:281
List * write_pending
list of sockets for which a write is pending
Definition: Socket.h:123
int MQTTProtocol_handlePublishes(void *pack, int sock)
Process an incoming publish packet for a socket The payload field of the packet has not been transfer...
Definition: MQTTProtocolClient.c:301
int HeapDumpString(FILE *file, char *str)
Dump a string from the heap so that it can be displayed conveniently.
Definition: Heap.c:443
void * MQTTPacket_publish(int MQTTVersion, unsigned char aHeader, char *data, size_t datalen)
Function used in the new packets table to create publish packets.
Definition: MQTTPacket.c:541
int len
binary password length
Definition: MQTTClient.h:908
int MQTTProtocol_handlePubacks(void *pack, int sock)
Process an incoming puback packet for a socket.
Definition: MQTTProtocolClient.c:403
struct ListElementStruct * next
pointer to next list element
Definition: LinkedList.h:75
bool username
3.1 user name
Definition: MQTTPacket.h:115
int payloadlen
The length of the MQTT message payload in bytes.
Definition: MQTTAsync.h:265
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:222
int MQTTAsync_getPendingTokens(MQTTAsync handle, MQTTAsync_token **tokens)
This function sets a pointer to an array of tokens for messages that are currently in-flight (pending...
Definition: MQTTAsync.c:4208
int MQTTPacket_send_disconnect(Clients *client, enum MQTTReasonCodes reason, MQTTProperties *props)
Send an MQTT disconnect packet down a socket.
Definition: MQTTPacket.c:496
int MQTTProtocol_assignMsgId(Clients *client)
Assign a new message id for a client.
Definition: MQTTProtocolClient.c:77
int sessionPresent
the session present flag returned from the server
Definition: MQTTAsync.h:544
MQTTLenString data
The value of a string property, or the name of a user property.
Definition: MQTTProperties.h:103
int sessionPresent
the session present flag returned from the server
Definition: MQTTAsync.h:509
MQTTAsync_token token
A token identifying the successful request.
Definition: MQTTAsync.h:521
void * myrealloc(char *file, int line, void *p, size_t size)
Reallocates a block of memory.
Definition: Heap.c:320
struct @32 valid_ranges[]
Structure to hold the valid ranges of UTF-8 characters, for each byte up to 4.
void * content
pointer to element content
Definition: LinkedList.h:76
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:909
char * serverURI
the connection string of the server
Definition: MQTTAsync.h:542
void myfree(char *file, int line, void *p)
Frees a block of memory.
Definition: Heap.c:277
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:1066
int MQTTPacket_decode(networkHandles *net, size_t *value)
Decodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:313
char * clientID
the string id of the client
Definition: Clients.h:117
The MQTT V5 subscribe options, apart from QoS which existed before V5.
Definition: MQTTSubscribeOpts.h:22
const char * MQTTAsync_strerror(int code)
Returns a pointer to a string representation of the error code, or NULL.
Definition: MQTTAsync.c:4414
unsigned int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:154
Definition: MQTTProtocol.h:36
int MQTTAsync_waitForCompletion(MQTTAsync handle, MQTTAsync_token dt, unsigned long timeout)
Waits for a request corresponding to a token to complete.
Definition: MQTTAsync.c:4319
MQTTAsync_token token
A token identifying the failed request.
Definition: MQTTAsync.h:469
struct NodeStruct * parent
pointer to parent tree node, in case we need it
Definition: Tree.h:79
Client publication message data.
Definition: Clients.h:52
int struct_version
The version number of this structure.
Definition: MQTTClient.h:537
int intcompare(void *a, void *b)
List callback function for comparing integers.
Definition: LinkedList.c:436
int MQTTAsync_setCallbacks(MQTTAsync handle, void *context, MQTTAsync_connectionLost *cl, MQTTAsync_messageArrived *ma, MQTTAsync_deliveryComplete *dc)
This function sets the global callback functions for a specific client.
Definition: MQTTAsync.c:2667
unsigned int willQoS
will QoS value
Definition: MQTTPacket.h:112
void * Heap_findItem(void *p)
Utility to find an item in the heap.
Definition: Heap.c:368
struct MQTTAsync_successData::@6::@7 pub
For publish, the message being sent to the server.
fd_set pending_wset
socket pending write set for select
Definition: Socket.h:124
int * qosList
For subscribeMany, if more than one subscription was requested, the list of granted QoSs of the subsc...
Definition: MQTTAsync.h:497
int(* Persistence_remove)(void *handle, char *key)
Remove the data for the specified key from the store.
Definition: MQTTClientPersistence.h:169