 |
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:448
const void * data
binary payload data
Definition: MQTTClient.h:627
static int clientStructCompare(void *a, void *b)
List callback function for comparing clients by client structure.
Definition: MQTTAsync.c:2604
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:1732
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:923
void MQTTProtocol_freeClient(Clients *client)
Free a client structure.
Definition: MQTTProtocolClient.c:754
int sessionPresent
if the MQTT version is 3.1.1, the value of sessionPresent returned in the connack
Definition: MQTTClient.h:855
Definition: MQTTAsync.h:1486
char * data
pointer to the string data
Definition: MQTTProperties.h:93
int length
mbi: byte length of all properties
Definition: MQTTProperties.h:122
Structure to hold all data for one list element.
Definition: Tree.h:63
void * ListDetachHead(List *aList)
Removes and frees an the first item in a list.
Definition: LinkedList.c:266
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:190
MQTTAsync_willOptions defines the MQTT "Last Will and Testament" (LWT) settings for the client.
Definition: MQTTAsync.h:857
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:84
MQTTClient_sslProperties defines the settings to establish an SSL/TLS connection using the OpenSSL li...
Definition: MQTTClient.h:650
size_t size
heap storage used
Definition: LinkedList.h:73
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:908
const char * username
MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user nam...
Definition: MQTTAsync.h:1041
int Thread_wait_sem(sem_type sem, int timeout)
Wait for a semaphore to be posted, or timeout.
Definition: Thread.c:227
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:72
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:163
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
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:1195
MQTTAsync_nameValue * MQTTAsync_getVersionInfo(void)
This function returns version information about the library.
Definition: MQTTAsync.c:3988
int verify
Whether to carry out post-connect checks, including that a certificate matches the given host name.
Definition: MQTTAsync.h:951
int ListRemove(List *aList, void *content)
Removes and frees an item in a list by comparing the pointer to the content.
Definition: LinkedList.c:255
const char * message
The LWT payload.
Definition: MQTTAsync.h:868
int serverURIcount
The number of entries in the optional serverURIs array.
Definition: MQTTClient.h:828
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:208
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:890
Messages * MQTTProtocol_createMessage(Publish *publish, Messages **mm, int qos, int retained)
Copy and store message data for retries.
Definition: MQTTProtocolClient.c:182
Data for a suback packet.
Definition: MQTTPacket.h:171
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the connect successfully completes.
Definition: MQTTAsync.h:1139
size_t max_size
max size the heap has reached in bytes
Definition: Heap.h:59
ListElement * cur_clientsds
current client socket descriptor (iterator)
Definition: Socket.h:120
char byte
holds the value of a byte property type
Definition: MQTTProperties.h:105
void * TreeRemoveNodeIndex(Tree *aTree, Node *curnode, int index)
Remove an item from a tree.
Definition: Tree.c:417
MQTTClient_willOptions * will
This is a pointer to an MQTTClient_willOptions structure.
Definition: MQTTClient.h:795
int msgId
MQTT message id.
Definition: MQTTPacket.h:187
Definition: MQTTClient.c:195
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:561
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:3281
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:3292
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:620
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:116
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:2465
void SocketBuffer_initialize(void)
Initialize the socketBuffer module.
Definition: SocketBuffer.c:92
int packet_type
Packet type on which the failure occurred - used for publish QoS 1/2 exchanges.
Definition: MQTTAsync.h:457
void SocketBuffer_freeDefQ(void)
Free the default queue memory.
Definition: SocketBuffer.c:105
Definition: MQTTAsync.c:261
void SocketBuffer_terminate(void)
Terminate the socketBuffer module.
Definition: SocketBuffer.c:116
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:152
size_t size
size of content
Definition: Tree.h:82
void * context
Definition: MQTTAsync.h:1207
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:278
Definition: MQTTClient.c:228
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:2648
Definition: MQTTProtocol.h:28
int ListRemoveHead(List *aList)
Removes and frees an the first item in a list.
Definition: LinkedList.c:292
void * payload
A pointer to the payload of the MQTT message.
Definition: MQTTClient.h:276
Definition: MQTTAsync.c:253
int readInt4(char **pptr)
Calculates an integer from two bytes read from the input buffer.
Definition: MQTTPacket.c:884
MQTT version 5 property list.
Definition: MQTTProperties.h:118
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:548
#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:56
void SocketBuffer_newDefQ(void)
Create a new default queue when one has just been used.
Definition: SocketBuffer.c:79
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:757
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:62
static int MQTTProtocol_startPublishCommon(Clients *pubclient, Publish *publish, int qos, int retained)
Utility function to start a new publish exchange.
Definition: MQTTProtocolClient.c:129
int MQTTPersistence_restore(Clients *c)
Restores the persisted records to the outbound and inbound message queues of the client.
Definition: MQTTPersistence.c:175
char *const * serverURIs
An optional array of null-terminated strings specifying the servers to which the client will connect.
Definition: MQTTClient.h:839
static void MQTTProtocol_checkPendingWrites(void)
See if any pending writes have been completed, and cleanup if so.
Definition: MQTTClient.c:2733
int MQTTVersion
Whether the MQTT version is 3.1, 3.1.1, or 5.
Definition: MQTTAsync.h:836
int qos
The quality of service setting for the LWT message (see MQTTClient_message.qos and qos).
Definition: MQTTClient.h:622
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:162
int code
A numeric code identifying the MQTT client library error.
Definition: MQTTAsync.h:453
void MQTTProtocol_freeMessageList(List *msgList)
Empty and free up all storage used by a message list.
Definition: MQTTProtocolClient.c:826
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:785
fd_set rset_saved
saved socket read set
Definition: Socket.h:117
pending_writes * SocketBuffer_getWrite(int socket)
Get any queued write data for a specific socket.
Definition: SocketBuffer.c:372
int MQTTVersion
Sets the version of MQTT to be used on the connect.
Definition: MQTTAsync.h:1102
Data for an MQTT V5 unsuback packet.
Definition: MQTTPacket.h:184
int Socket_continueWrite(int socket)
Continue an outstanding write for a particular socket.
Definition: Socket.c:804
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:1182
const char * privateKey
If not included in the sslKeyStore, this setting points to the file in PEM format containing the clie...
Definition: MQTTAsync.h:923
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:740
int SocketBuffer_getQueuedChar(int socket, char *c)
Get any queued character for a specific socket.
Definition: SocketBuffer.c:199
A structure representing the payload and attributes of an MQTT message.
Definition: MQTTClient.h:266
char * destinationName
the topic destination for the message
Definition: MQTTAsync.h:513
int MQTTPersistence_initialize(Clients *c, const char *serverURI)
Open persistent store and restore any persisted messages.
Definition: MQTTPersistence.c:109
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:243
void Log(enum LOG_LEVELS log_level, int msgno, const char *format,...)
Log a message.
Definition: Log.c:404
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:107
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:334
void ListFreeNoContent(List *aList)
Removes and but does not free all items in a list, and frees the list itself.
Definition: LinkedList.c:390
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:703
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:2184
MQTTClient_libraryInfo is used to store details relating to the currently used library such as the ve...
Definition: MQTTClient.h:886
enum MQTTPropertyCodes identifier
The MQTT V5 property id.
Definition: MQTTProperties.h:102
static void MQTTProtocol_retries(time_t now, Clients *client, int regardless)
MQTT retry processing per client.
Definition: MQTTProtocolClient.c:651
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:358
int MQTTAsync_disconnect(MQTTAsync handle, const MQTTAsync_disconnectOptions *options)
This function attempts to disconnect the client from the MQTT server.
Definition: MQTTAsync.c:3107
Header header
MQTT header byte.
Definition: MQTTPacket.h:91
void MQTTPacket_freeUnsuback(Unsuback *pack)
Free allocated storage for a suback packet.
Definition: MQTTPacket.c:661
#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:585
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:913
int line
the line no in the source file where it was allocated
Definition: Heap.c:67
ListElement * ListNextElement(List *aList, ListElement **pos)
Forward iteration through a list.
Definition: LinkedList.c:409
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:175
unsigned char version
MQTT version number.
Definition: MQTTPacket.h:126
Definition: MQTTPersistence.h:79
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:822
Definition: StackTrace.c:46
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:422
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:110
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:843
char * SocketBuffer_complete(int socket)
A socket read has now completed so we can get rid of the queue.
Definition: SocketBuffer.c:261
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:454
MQTTAsync_sslProperties defines the settings to establish an SSL/TLS connection using the OpenSSL lib...
Definition: MQTTAsync.h:905
const char * message
Optional further text explaining the error.
Definition: MQTTAsync.h:455
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:860
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:2229
void MQTTAsync_destroy(MQTTAsync *handle)
This function frees the memory allocated to an MQTT client (see MQTTAsync_create()).
Definition: MQTTAsync.c:1933
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:3976
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:3460
int MQTTProtocol_handleUnsubacks(void *pack, int sock)
Process an incoming unsuback packet for a socket.
Definition: MQTTProtocolOut.c:246
void Heap_terminate(void)
Heap termination.
Definition: Heap.c:403
int SocketBuffer_writeComplete(int socket)
A socket write has now completed so we can get rid of the queue.
Definition: SocketBuffer.c:384
static thread_return_type WINAPI call_disconnected(void *context)
Wrapper function to call disconnected on a separate thread.
Definition: MQTTClient.c:658
MQTTProperties properties
MQTT V5 properties returned, if any.
Definition: MQTTAsync.h:499
int indexes
no of indexes into tree
Definition: Tree.h:83
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:495
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:1680
int UTF8_validate(int len, const char *data)
Validate a length-delimited string has only UTF-8 characters.
Definition: utf-8.c:126
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the connect successfully completes.
Definition: MQTTAsync.h:1070
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:2521
int serverURIcount
The number of entries in the serverURIs array.
Definition: MQTTAsync.h:1086
int retained
The retained flag for the LWT message (see MQTTClient_message.retained).
Definition: MQTTClient.h:617
Definition: MQTTAsync.h:819
void Socket_outInitialize(void)
Initialize the socket module.
Definition: Socket.c:122
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:3982
const char * topicName
The LWT topic to which the LWT message will be published.
Definition: MQTTAsync.h:866
void MQTTPacket_freeSuback(Suback *pack)
Free allocated storage for a suback packet.
Definition: MQTTPacket.c:645
thread_id_type Thread_getid(void)
Get the thread id of the thread from which this function is called.
Definition: Thread.c:174
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:214
MQTTClient_willOptions defines the MQTT "Last Will and Testament" (LWT) settings for the client.
Definition: MQTTClient.h:602
const char * keyStore
The file in PEM format containing the public certificate chain of the client.
Definition: MQTTAsync.h:918
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:653
enum MQTTReasonCodes * reasonCodes
an array of reasonCodes
Definition: MQTTAsync.h:507
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:289
void * context
Definition: MQTTAsync.h:1082
Data for a publish packet.
Definition: MQTTPacket.h:197
size_t size
heap storage used
Definition: Tree.h:85
Definition: MQTTAsync.h:582
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:735
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:1936
int maxfdp1
max descriptor used +1 (again see select doc)
Definition: Socket.h:118
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:1769
MQTTAsync_SSLOptions * ssl
This is a pointer to an MQTTAsync_SSLOptions structure.
Definition: MQTTAsync.h:1064
struct MQTTAsync_willOptions::@14 payload
The LWT payload in binary form.
const char * message
Optional text explaining the error.
Definition: MQTTAsync.h:435
static List * queues
List of queued input buffers.
Definition: SocketBuffer.c:50
Definition: SocketBuffer.h:48
void MQTTProtocol_closeSession(Clients *c, int sendwill)
mqttclient_mutex must be locked when you call this function, if multi threaded
Definition: MQTTClient.c:1741
int MQTTPacket_send_pubrel(int msgid, int dup, networkHandles *net, const char *clientID)
Send an MQTT PUBREL packet down a socket.
Definition: MQTTPacket.c:702
int sessionExpiry
MQTT 5 session expiry.
Definition: Clients.h:134
int sendWhileDisconnected
Whether to allow messages to be sent when the client library is not connected.
Definition: MQTTAsync.h:828
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:559
Definition: MQTTPersistence.h:66
void MQTTPacket_freeConnack(Connack *pack)
Free allocated storage for a connack packet.
Definition: MQTTPacketOut.c:176
static void HeapScan(enum LOG_LEVELS log_level)
Scans the heap and reports any items currently allocated.
Definition: Heap.c:369
void Socket_close(int socket)
Close a socket and remove it from the select list.
Definition: Socket.c:611
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:1129
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:2642
unsigned int allow_duplicates
switch to allow duplicate entries
Definition: Tree.h:87
int cleansession
This is a boolean value.
Definition: MQTTAsync.h:1025
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:449
void * TreeRemoveIndex(Tree *aTree, void *content, int index)
Remove an item from a tree.
Definition: Tree.c:484
int verify
Whether to carry out post-connect checks, including that a certificate matches the given host name.
Definition: MQTTClient.h:696
MQTTClient_SSLOptions * ssl
This is a pointer to an MQTTClient_SSLOptions structure.
Definition: MQTTClient.h:824
int MQTTPersistence_remove(Clients *c, char *type, int qos, int msgId)
Deletes a record from the persistent store.
Definition: MQTTPersistence.c:468
int Socket_close_only(int socket)
Close a socket without removing it from the select list.
Definition: Socket.c:583
int max_trace_entries
max no of entries in the trace buffer
Definition: Log.h:58
int len
binary payload length
Definition: MQTTClient.h:626
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:257
Definition: SocketBuffer.h:37
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:1227
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:964
MQTTAsync_token token
A token identifying the successful request.
Definition: MQTTAsync.h:466
int Thread_signal_cond(cond_type condvar)
Signal a condition variable.
Definition: Thread.c:389
Initialization options.
Definition: MQTTClient.h:224
char * Socket_getpeer(int sock)
Get information about the other end connected to a socket.
Definition: Socket.c:998
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:446
const char * password
MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user nam...
Definition: MQTTAsync.h:1047
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:110
void ListAppend(List *aList, void *content, size_t size)
Append an item to a list.
Definition: LinkedList.c:93
List * reasonCodes
list of reason codes
Definition: MQTTPacket.h:190
int code
A numeric code identifying the error.
Definition: MQTTAsync.h:433
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:494
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:594
static void MQTTProtocol_checkPendingWrites(void)
See if any pending writes have been completed, and cleanup if so.
Definition: MQTTAsync.c:1136
const char * topicName
The LWT topic to which the LWT message will be published.
Definition: MQTTClient.h:611
int qos
For subscribe, the granted QoS of the subscription returned by the server.
Definition: MQTTAsync.h:471
heap_info * Heap_get_info(void)
Access to heap state.
Definition: Heap.c:418
int qos
The quality of service setting for the LWT message (see MQTTAsync_message.qos and qos).
Definition: MQTTAsync.h:877
const char * trustStore
The file in PEM format containing the public digital certificates trusted by the client.
Definition: MQTTClient.h:658
static int MQTTPacket_send_ack(int type, int msgid, int dup, networkHandles *net)
Send an MQTT acknowledgement packet down a socket.
Definition: MQTTPacket.c:601
bool willRetain
will retain setting
Definition: MQTTPacket.h:113
const char * keyStore
The file in PEM format containing the public certificate chain of the client.
Definition: MQTTClient.h:663
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:789
#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:779
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:392
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:121
void * ssl_error_context
Application-specific contex for OpenSSL error handler ERR_print_errors_cb Exists only if struct_versi...
Definition: MQTTAsync.h:970
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:2444
void MQTTPersistence_insertInOrder(List *list, void *content, size_t size)
Inserts the specified message into the list, maintaining message ID order.
Definition: MQTTPersistence.c:359
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:1201
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:983
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:598
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:56
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:347
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:147
int enableServerCertAuth
True/False option to enable verification of the server certificate.
Definition: MQTTAsync.h:938
size_t size
size of the allocated storage
Definition: Heap.c:69
char * readUTF(char **pptr, char *enddata)
Reads a "UTF" string from the input buffer.
Definition: MQTTPacket.c:388
void MQTTClient_destroy(MQTTClient *handle)
This function frees the memory allocated to an MQTT client (see MQTTClient_create()).
Definition: MQTTClient.c:505
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:683
unsigned int good
if we have an error on the socket we turn this off
Definition: Clients.h:117
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:138
int retained
The retained flag for the LWT message (see MQTTAsync_message.retained).
Definition: MQTTAsync.h:872
The data for a length delimited string.
Definition: MQTTProperties.h:90
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:1993
int connectTimeout
The time interval in seconds to allow a connect to complete.
Definition: MQTTAsync.h:1051
char nextMessageType
used for retry and expiry
Definition: Clients.h:61
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:367
void Thread_destroy_mutex(mutex_type mutex)
Destroy a mutex which has already been created.
Definition: Thread.c:155
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:1906
int struct_version
The version number of this structure.
Definition: MQTTClient.h:747
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:2489
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:583
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:134
The data returned on completion of an unsuccessful API call in the response callback onFailure.
Definition: MQTTAsync.h:440
const void * data
binary password data
Definition: MQTTClient.h:863
MQTTAsync_onFailure * onFailure
A pointer to a callback function to be called if the API call fails.
Definition: MQTTAsync.h:600
int maxBufferedMessages
the maximum number of messages allowed to be buffered while not connected.
Definition: MQTTAsync.h:830
const char * serverURI
the serverURI connected to
Definition: MQTTClient.h:853
void ListInsert(List *aList, void *content, size_t size, ListElement *index)
Insert an item to a list at a specific position.
Definition: LinkedList.c:108
void 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:329
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:1035
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:94
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:1122
int MQTTVersion
Sets the version of MQTT to be used on the connect.
Definition: MQTTClient.h:847
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:629
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:134
unsigned char rc
MQTT 5 reason code.
Definition: MQTTPacket.h:217
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:588
Data for a connack packet.
Definition: MQTTPacket.h:133
int Thread_destroy_sem(sem_type sem)
Destroy a semaphore which has already been created.
Definition: Thread.c:334
int MQTTVersion
Whether the MQTT version is 3.1, 3.1.1, or 5.
Definition: MQTTClient.h:538
int MQTTClient_disconnect(MQTTClient handle, int timeout)
This function attempts to disconnect the client from the MQTT server.
Definition: MQTTClient.c:1747
char * SocketBuffer_getQueuedData(int socket, size_t bytes, size_t *actual_len)
Get any queued data for a specific socket.
Definition: SocketBuffer.c:159
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:114
unsigned int heap_tracking
switch on heap tracking for this tree?
Definition: Tree.h:86
int len
binary password length
Definition: MQTTAsync.h:1119
const char * privateKey
If not included in the sslKeyStore, this setting points to the file in PEM format containing the clie...
Definition: MQTTClient.h:668
const char * enabledCipherSuites
The list of cipher suites that the client will present to the server during the SSL handshake.
Definition: MQTTClient.h:680
void writeChar(char **pptr, char c)
Writes one character to an output buffer.
Definition: MQTTPacket.c:413
int len
the length of the string
Definition: MQTTProperties.h:92
const char * privateKeyPassword
The password to load the client's privateKey if encrypted.
Definition: MQTTAsync.h:925
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:1184
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:217
int Thread_wait_cond(cond_type condvar, int timeout)
Wait with a timeout (seconds) for condition variable.
Definition: Thread.c:406
int timeout
The client delays disconnection for up to this time (in milliseconds) in order to allow in-flight mes...
Definition: MQTTAsync.h:1189
#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:935
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:445
void * ssl_error_context
Application-specific contex for OpenSSL error handler ERR_print_errors_cb Exists only if struct_versi...
Definition: MQTTClient.h:715
MQTTProperties properties
MQTT V5 input properties.
Definition: MQTTAsync.h:1211
enum MQTTReasonCodes reasonCode
MQTT V5 reason code returned.
Definition: MQTTAsync.h:498
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:2046
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:959
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:397
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:826
char * clientID
string client id
Definition: MQTTPacket.h:121
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:738
int sslVersion
The SSL/TLS version to use.
Definition: MQTTAsync.h:944
int MQTTClient_unsubscribe(MQTTClient handle, const char *topic)
This function attempts to remove an existing subscription made by the specified client.
Definition: MQTTClient.c:2064
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:320
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:1029
Data for a connect packet.
Definition: MQTTPacket.h:89
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:3116
void ListEmpty(List *aList)
Removes and frees all items in a list, leaving the list ready for new items.
Definition: LinkedList.c:357
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:3362
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:65
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:230
int do_openssl_init
1 = we do openssl init, 0 = leave it to the application
Definition: MQTTClient.h:231
void MQTTProtocol_retry(time_t now, int doRetry, int regardless)
MQTT retry protocol and socket pending writes processing.
Definition: MQTTProtocolClient.c:723
The data returned on completion of a successful API call in the response callback onSuccess.
Definition: MQTTAsync.h:492
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:3181
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:209
const char * CApath
From the OpenSSL documentation: If CApath is not NULL, it points to a directory containing CA certifi...
Definition: MQTTAsync.h:958
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:400
int max_count
max number of properties that the currently allocated array can store
Definition: MQTTProperties.h:121
static Tree heap
Tree that holds the allocation records.
Definition: Heap.c:75
Definition: MQTTAsync.h:1179
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:2654
union MQTTAsync_successData5::@9 alt
A union of the different values that can be returned for subscribe, unsubscribe and publish.
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:151
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:2004
const char * MQTTClient_strerror(int code)
Returns a pointer to the string representation of the error or NULL.
Definition: MQTTClient.c:2690
Node * root
root node pointer
Definition: Tree.h:80
int integer4
holds the value of a 4 byte integer property type
Definition: MQTTProperties.h:107
union Connack::@22 flags
connack flags byte
List * ListInitialize(void)
Allocates and initializes a new list structure.
Definition: LinkedList.c:56
int HeapDump(FILE *file)
Dump the state of the heap.
Definition: Heap.c:448
static int MQTTAsync_assignMsgId(MQTTAsyncs *m)
Assign a new message id for a client.
Definition: MQTTAsync.c:3144
List * clientsds
list of client socket descriptors
Definition: Socket.h:119
const char * username
MQTT v3.1 user name.
Definition: Clients.h:111
raw websocket frame data
Definition: WebSocket.c:132
int pstcontainskey(void *handle, char *key)
Returns whether if a wire message is persisted in the client persistence directory.
Definition: MQTTPersistenceDefault.c:338
Client will message data.
Definition: Clients.h:68
int Thread_destroy_cond(cond_type condvar)
Destroy a condition variable.
Definition: Thread.c:427
int maxInflightMessages
The maximum number of messages in flight.
Definition: MQTTClient.h:868
static int clientSockCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: MQTTAsync.c:436
int pstclose(void *handle)
Delete client persistence directory (if empty).
Definition: MQTTPersistenceDefault.c:304
char *const * serverURIs
Definition: MQTTAsync.h:1095
int maxRetryInterval
Maximum retry interval in seconds.
Definition: MQTTAsync.h:1114
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:605
int keepAliveInterval
The "keep alive" interval, measured in seconds, defines the maximum time that should pass without com...
Definition: MQTTAsync.h:1003
unsigned int cleanstart
MQTT V5 clean start flag.
Definition: Clients.h:115
int Socket_noPendingWrites(int socket)
Indicate whether any data is pending outbound for a socket.
Definition: Socket.c:406
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:304
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.
const void * password
MQTT v3.1 binary password.
Definition: Clients.h:113
int struct_version
The version number of this structure.
Definition: MQTTClient.h:609
unsigned int cleansession
MQTT V3 clean session flag.
Definition: Clients.h:114
int MQTTVersion
the version of MQTT being used
Definition: MQTTAsync.h:519
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:178
int msgid
The message identifier is normally reserved for internal use by the MQTT client and server.
Definition: MQTTAsync.h:311
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:3389
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:76
void * ptr
pointer to the allocated storage
Definition: Heap.c:68
List * outboundMsgs
in flight
Definition: Clients.h:127
Each item on the heap is recorded with this structure.
Definition: Heap.c:64
Definition: MQTTClient.h:527
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:651
Publications * MQTTProtocol_storePublication(Publish *publish, int *len)
Store message data for possible retry.
Definition: MQTTProtocolClient.c:220
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:709
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:310
int UTF8_validateString(const char *string)
Validate a null-terminated string has only UTF-8 characters.
Definition: utf-8.c:153
int MQTTPacket_encode(char *buf, size_t length)
Encodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:277
unsigned int connected
whether it is currently connected
Definition: Clients.h:116
size_t current_size
current size of the heap in bytes
Definition: Heap.h:58
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:199
int retryInterval
The time interval in seconds after which unacknowledged publish requests are retried during a TCP ses...
Definition: MQTTAsync.h:1059
void MQTTProtocol_emptyMessageList(List *msgList)
Empty a message list, leaving it able to accept new messages.
Definition: MQTTProtocolClient.c:805
static const char * packet_names[]
List of the predefined MQTT v3/v5 packet names.
Definition: MQTTPacket.c:49
int MQTTProtocol_unsubscribe(Clients *client, List *topics, int msgID, MQTTProperties *props)
MQTT outgoing unsubscribe processing for a client.
Definition: MQTTProtocolOut.c:229
#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:231
static char * readUTFlen(char **pptr, char *enddata, int *len)
Reads a "UTF" string from the input buffer.
Definition: MQTTPacket.c:357
const char * password
MQTT servers that support the MQTT v3.1.1 protocol provide authentication and authorisation by user n...
Definition: MQTTClient.h:807
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:321
const char * username
MQTT servers that support the MQTT v3.1.1 protocol provide authentication and authorisation by user n...
Definition: MQTTClient.h:801
Data for one of the ack packets.
Definition: MQTTPacket.h:213
void MQTTAsync_global_init(MQTTAsync_init_options *inits)
Global init of mqtt library.
Definition: MQTTAsync.c:77
char * MQTTStrdup(const char *src)
Duplicate a string, safely, allocating space on the heap.
Definition: MQTTProtocolClient.c:868
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:470
void Socket_outTerminate(void)
Terminate the socket module.
Definition: Socket.c:151
Definition: MQTTAsync.c:366
Definition: MQTTProperties.c:28
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:457
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the disconnect successfully completes.
Definition: MQTTAsync.h:1221
int MQTTPersistence_restoreMessageQueue(Clients *c)
Restores a queue of messages from persistence to memory.
Definition: MQTTPersistence.c:706
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:910
int readInt(char **pptr)
Calculates an integer from two bytes read from the input buffer.
Definition: MQTTPacket.c:336
void * TreeAddByIndex(Tree *aTree, void *content, size_t size, int index)
Add an item to a tree.
Definition: Tree.c:209
int websocket
socket has been upgraded to use web sockets
Definition: Clients.h:86
const char * privateKeyPassword
The password to load the client's privateKey if encrypted.
Definition: MQTTClient.h:670
Initialization options.
Definition: MQTTAsync.h:217
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:509
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:431
int msgId
MQTT message id.
Definition: MQTTPacket.h:202
static heap_info state
global heap state information
Definition: Heap.c:56
int retryInterval
The time interval in seconds after which unacknowledged publish requests are retried during a TCP ses...
Definition: MQTTClient.h:819
int(* compare)(void *, void *, int)
comparison function
Definition: Tree.h:81
MQTTAsync_token token
A token is returned from the call.
Definition: MQTTAsync.h:612
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:111
void SocketBuffer_queueChar(int socket, char c)
A socket operation had now completed so we can get rid of the queue.
Definition: SocketBuffer.c:283
int pending_socketcompare(void *a, void *b)
List callback function for comparing pending_writes by socket.
Definition: SocketBuffer.c:361
int MQTTPersistence_clear(Clients *c)
Clears the persistent store.
Definition: MQTTPersistence.c:156
static socket_queue * def_queue
Default input queue buffer.
Definition: SocketBuffer.c:45
int passwordlen
MQTT password length.
Definition: Clients.h:112
MQTTProperties properties
The MQTT V5 properties associated with the message.
Definition: MQTTClient.h:324
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:2605
int MQTTPersistence_close(Clients *c)
Close persistent store.
Definition: MQTTPersistence.c:131
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:1145
int pstremove(void *handle, char *key)
Delete a persisted message from the client persistence directory.
Definition: MQTTPersistenceDefault.c:265
MQTTProperties properties
The MQTT properties on the ack, if any.
Definition: MQTTAsync.h:451
MQTTProperties * willProperties
MQTT V5 properties for the will message in the connect.
Definition: MQTTAsync.h:1133
The data returned on completion of a successful API call in the response callback onSuccess.
Definition: MQTTAsync.h:463
A structure containing the function pointers to a persistence implementation and the context or state...
Definition: MQTTClientPersistence.h:215
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:428
char * Socket_getaddrname(struct sockaddr *sa, int sock)
Convert a numeric address to character string.
Definition: Socket.c:963
Structure to hold all data for one list.
Definition: LinkedList.h:67
Structure to hold an MQTT version 5 property of any type.
Definition: MQTTProperties.h:100
This structure represents a persistent data store, used to store outbound and inbound messages,...
sem_type Thread_create_sem(void)
Create a new semaphore.
Definition: Thread.c:188
const char * message
The LWT payload in string form.
Definition: MQTTClient.h:613
void MQTTProtocol_keepalive(time_t now)
MQTT protocol keepAlive processing.
Definition: MQTTProtocolClient.c:604
enum MQTTReasonCodes reasonCode
Reason code for MQTTV5 disconnect.
Definition: MQTTAsync.h:1215
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:844
void * mymalloc(char *file, int line, size_t size)
Allocates a block of memory.
Definition: Heap.c:154
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:980
void * context
A pointer to any application-specific context.
Definition: MQTTAsync.h:606
size_t buflen
total length of the buffer
Definition: SocketBuffer.h:43
Definition: MQTTClient.h:922
ListElement * last
last element in the list
Definition: LinkedList.h:70
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:530
Data related to one client.
Definition: Clients.h:108
ListElement * ListFind(List *aList, void *content)
Finds an element in a list by comparing the content pointers, rather than the contents.
Definition: LinkedList.c:138
void Heap_unlink(char *file, int line, void *p)
Remove an item from the recorded heap without actually freeing it.
Definition: Heap.c:287
size_t pos
current position within the buffer
Definition: WebSocket.c:135
int Thread_unlock_mutex(mutex_type mutex)
Unlock a mutex which has already been locked.
Definition: Thread.c:132
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:1039
pf new_packets[]
Array of functions to build packets, indexed according to packet code.
Definition: MQTTPacket.c:72
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:392
char * willTopic
will topic
Definition: MQTTPacket.h:122
int MQTTPacket_send_pubrec(int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBREC packet down a socket.
Definition: MQTTPacket.c:682
const void * data
binary payload data
Definition: MQTTAsync.h:882
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:1076
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:2467
MQTTAsync_onFailure5 * onFailure5
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:624
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:2732
void MQTTPacket_freePublish(Publish *pack)
Free allocated storage for a publish packet.
Definition: MQTTPacket.c:567
void writeUTF(char **pptr, const char *string)
Writes a "UTF" string to an output buffer.
Definition: MQTTPacket.c:439
ListElement * ListPrevElement(List *aList, ListElement **pos)
Backward iteration through a list.
Definition: LinkedList.c:422
int count
number of property entries in the array
Definition: MQTTProperties.h:120
int MQTTProtocol_handlePubrecs(void *pack, int sock)
Process an incoming pubrec packet for a socket.
Definition: MQTTProtocolClient.c:401
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:64
void writeInt(char **pptr, int anInt)
Writes an integer as 2 bytes to an output buffer.
Definition: MQTTPacket.c:425
int MQTTPacket_send_puback(int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBACK packet down a socket.
Definition: MQTTPacket.c:629
MQTTProperty * array
array of properties
Definition: MQTTProperties.h:123
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:435
void MQTTClient_freeMessage(MQTTClient_message **message)
This function frees memory allocated to an MQTT message, including the additional memory allocated to...
Definition: MQTTClient.c:548
const void * data
binary password data
Definition: MQTTAsync.h:1120
Definition: StackTrace.c:53
int MQTTVersion
current MQTT version being used to connect
Definition: MQTTAsync.c:304
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:512
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:333
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:1499
void SocketBuffer_interrupted(int socket, size_t actual_len)
A socket read was interrupted so we need to queue data.
Definition: SocketBuffer.c:232
int reasonCodeCount
the number of reason codes in the reasonCodes array
Definition: MQTTAsync.h:506
int struct_version
The version number of this structure.
Definition: MQTTClient.h:655
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:232
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:628
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:102
int sslVersion
The SSL/TLS version to use.
Definition: MQTTClient.h:689
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:2563
Definition: MQTTAsync.c:310
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 MQTTAsync_setDisconnected(MQTTAsync handle, void *context, MQTTAsync_disconnected *disconnected)
Sets the MQTTAsync_disconnected() callback function for a client.
Definition: MQTTAsync.c:2513
size_t MQTTProtocol_addressPort(const char *uri, int *port, const char **topic)
Separates an address:port into two separate values.
Definition: MQTTProtocolOut.c:52
Header header
MQTT header byte.
Definition: MQTTPacket.h:199
int automaticReconnect
Reconnect automatically in the case of a connection being lost?
Definition: MQTTAsync.h:1106
int MQTTPacket_VBIdecode(int(*getcharfn)(char *, int), int *value)
Decodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:951
int MQTTAsync_setConnected(MQTTAsync handle, void *context, MQTTAsync_connected *connected)
Sets the MQTTAsync_connected() callback function for a client.
Definition: MQTTAsync.c:2535
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:618
int pstmkdir(char *pPathname)
Function to create a directory.
Definition: MQTTPersistenceDefault.c:133
cond_type Thread_create_cond(void)
Create a new condition variable.
Definition: Thread.c:358
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:864
void ListFree(List *aList)
Removes and frees all items in a list, and frees the list itself.
Definition: LinkedList.c:379
void Socket_clearPendingWrite(int socket)
Clear a socket from the pending write list - if one was added with Socket_addPendingWrite.
Definition: Socket.c:571
char * file
the name of the source file where the storage was allocated
Definition: Heap.c:66
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:167
int len
binary payload length
Definition: MQTTAsync.h:881
int connectTimeout
The time interval in seconds to allow a connect to complete.
Definition: MQTTClient.h:811
mutex_type Thread_create_mutex(void)
Create a new mutex.
Definition: Thread.c:88
int MQTTProtocol_handlePubrels(void *pack, int sock)
Process an incoming pubrel packet for a socket.
Definition: MQTTProtocolClient.c:470
int MQTTPacket_send_pingreq(networkHandles *net, const char *clientID)
Send an MQTT PINGREQ packet down a socket.
Definition: MQTTPacketOut.c:192
int minRetryInterval
Minimum retry interval in seconds.
Definition: MQTTAsync.h:1110
static int clientSockCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: MQTTClient.c:607
void * MQTTPersistence_restorePacket(int MQTTVersion, char *buffer, size_t buflen)
Returns a MQTT packet restored from persisted data.
Definition: MQTTPersistence.c:321
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:549
void MQTTProtocol_removePublication(Publications *p)
Remove stored message data.
Definition: MQTTProtocolClient.c:253
List * write_pending
list of sockets for which a write is pending
Definition: Socket.h:122
int MQTTProtocol_handlePublishes(void *pack, int sock)
Process an incoming publish packet for a socket.
Definition: MQTTProtocolClient.c:271
int HeapDumpString(FILE *file, char *str)
Dump a string from the heap so that it can be displayed conveniently.
Definition: Heap.c:429
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:524
int len
binary password length
Definition: MQTTClient.h:862
int MQTTProtocol_handlePubacks(void *pack, int sock)
Process an incoming puback packet for a socket.
Definition: MQTTProtocolClient.c:355
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:3822
int MQTTPacket_send_disconnect(Clients *client, enum MQTTReasonCodes reason, MQTTProperties *props)
Send an MQTT disconnect packet down a socket.
Definition: MQTTPacket.c:483
int MQTTProtocol_assignMsgId(Clients *client)
Assign a new message id for a client.
Definition: MQTTProtocolClient.c:78
int sessionPresent
the session present flag returned from the server
Definition: MQTTAsync.h:520
MQTTLenString data
The value of a string property, or the name of a user property.
Definition: MQTTProperties.h:109
MQTTAsync_token token
A token identifying the successful request.
Definition: MQTTAsync.h:497
void * myrealloc(char *file, int line, void *p, size_t size)
Reallocates a block of memory.
Definition: Heap.c:307
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:864
char * serverURI
the connection string of the server
Definition: MQTTAsync.h:518
short integer2
holds the value of a 2 byte integer property type
Definition: MQTTProperties.h:106
void myfree(char *file, int line, void *p)
Frees a block of memory.
Definition: Heap.c:264
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:992
int MQTTPacket_decode(networkHandles *net, size_t *value)
Decodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:302
char * clientID
the string id of the client
Definition: Clients.h:110
int MQTTPacket_send_pubcomp(int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBCOMP packet down a socket.
Definition: MQTTPacket.c:721
The MQTT V5 subscribe options, apart from QoS which existed before V5.
Definition: MQTTSubscribeOpts.h:21
const char * MQTTAsync_strerror(int code)
Returns a pointer to a string representation of the error code, or NULL.
Definition: MQTTAsync.c:4024
unsigned int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:154
Definition: MQTTProtocol.h:35
int MQTTAsync_waitForCompletion(MQTTAsync handle, MQTTAsync_token dt, unsigned long timeout)
Waits for a request corresponding to a token to complete.
Definition: MQTTAsync.c:3928
MQTTAsync_token token
A token identifying the failed request.
Definition: MQTTAsync.h:447
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:532
int intcompare(void *a, void *b)
List callback function for comparing integers.
Definition: LinkedList.c:434
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:2418
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:354
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:123
int * qosList
For subscribeMany, the list of granted QoSs of the subscriptions returned by the server.
Definition: MQTTAsync.h:473
int(* Persistence_remove)(void *handle, char *key)
Remove the data for the specified key from the store.
Definition: MQTTClientPersistence.h:169