MQTT C Client Libraries Internals
Functions
Clients.c File Reference

functions which apply to client structures More...

#include "Clients.h"
#include <string.h>
#include <stdio.h>
Include dependency graph for Clients.c:

Functions

int clientIDCompare (void *a, void *b)
 List callback function for comparing clients by clientid. More...
 
int clientSocketCompare (void *a, void *b)
 List callback function for comparing clients by socket. More...
 

Detailed Description

functions which apply to client structures

Function Documentation

◆ clientIDCompare()

int clientIDCompare ( void *  a,
void *  b 
)

List callback function for comparing clients by clientid.

Parameters
afirst integer value
bsecond 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
afirst integer value
bsecond integer value
Returns
boolean indicating whether a and b are equal
pstclear
int pstclear(void *handle)
Delete all the persisted message in the client persistence directory.
Definition: MQTTPersistenceDefault.c:448
MQTTClient_willOptions::data
const void * data
binary payload data
Definition: MQTTClient.h:627
clientStructCompare
static int clientStructCompare(void *a, void *b)
List callback function for comparing clients by client structure.
Definition: MQTTAsync.c:2604
List::current
ListElement * current
current element in the list, for iteration
Definition: LinkedList.h:71
MQTTClient_persistence::pget
Persistence_get pget
A function pointer to an implementation of Persistence_get().
Definition: MQTTClientPersistence.h:235
MQTTClient_disconnect_internal
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
socket_queue::datalen
size_t datalen
current length of data in buf
Definition: SocketBuffer.h:44
Connect::all
unsigned char all
all connect flags
Definition: MQTTPacket.h:94
Socket_continueWrites
int Socket_continueWrites(fd_set *pwset)
Continue any outstanding writes for a socket set.
Definition: Socket.c:923
MQTTProtocol_freeClient
void MQTTProtocol_freeClient(Clients *client)
Free a client structure.
Definition: MQTTProtocolClient.c:754
MQTTClient_connectOptions::sessionPresent
int sessionPresent
if the MQTT version is 3.1.1, the value of sessionPresent returned in the connack
Definition: MQTTClient.h:855
MQTTAsync_nameValue
Definition: MQTTAsync.h:1486
MQTTLenString::data
char * data
pointer to the string data
Definition: MQTTProperties.h:93
MQTTProperties::length
int length
mbi: byte length of all properties
Definition: MQTTProperties.h:122
NodeStruct
Structure to hold all data for one list element.
Definition: Tree.h:63
ListDetachHead
void * ListDetachHead(List *aList)
Removes and frees an the first item in a list.
Definition: LinkedList.c:266
Persistence_clear
int(* Persistence_clear)(void *handle)
Clears the persistence store, so that it no longer contains any persisted data.
Definition: MQTTClientPersistence.h:197
MQTTProtocol_subscribe
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
MQTTAsync_willOptions defines the MQTT "Last Will and Testament" (LWT) settings for the client.
Definition: MQTTAsync.h:857
trace_destination_backup_name
static char * trace_destination_backup_name
the name of the backup trace file
Definition: Log.c:101
Socket_setnonblocking
int Socket_setnonblocking(int sock)
Set a socket non-blocking, OS independently.
Definition: Socket.c:74
ListElementStruct::prev
struct ListElementStruct * prev
pointer to previous list element
Definition: LinkedList.h:74
MQTTClient_global_init
void MQTTClient_global_init(MQTTClient_init_options *inits)
Global init of mqtt library.
Definition: MQTTClient.c:84
MQTTClient_SSLOptions
MQTTClient_sslProperties defines the settings to establish an SSL/TLS connection using the OpenSSL li...
Definition: MQTTClient.h:650
List::size
size_t size
heap storage used
Definition: LinkedList.h:73
MQTTAsync_SSLOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:908
MQTTAsync_connectOptions::username
const char * username
MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user nam...
Definition: MQTTAsync.h:1041
Thread_wait_sem
int Thread_wait_sem(sem_type sem, int timeout)
Wait for a semaphore to be posted, or timeout.
Definition: Thread.c:227
Connack::all
unsigned char all
all connack flags
Definition: MQTTPacket.h:138
ListAppendNoMalloc
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
Ack::header
Header header
MQTT header byte.
Definition: MQTTPacket.h:215
pstput
int pstput(void *handle, char *key, int bufcount, char *buffers[], int buflens[])
Write wire message to the client persistence directory.
Definition: MQTTPersistenceDefault.c:163
MQTTPacket_send_connect
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
Unsuback::header
Header header
MQTT header byte.
Definition: MQTTPacket.h:186
MQTTAsync_disconnectOptions::onSuccess
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the disconnect successfully completes.
Definition: MQTTAsync.h:1195
MQTTAsync_getVersionInfo
MQTTAsync_nameValue * MQTTAsync_getVersionInfo(void)
This function returns version information about the library.
Definition: MQTTAsync.c:3988
MQTTAsync_SSLOptions::verify
int verify
Whether to carry out post-connect checks, including that a certificate matches the given host name.
Definition: MQTTAsync.h:951
ListRemove
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
MQTTAsync_willOptions::message
const char * message
The LWT payload.
Definition: MQTTAsync.h:868
MQTTClient_connectOptions::serverURIcount
int serverURIcount
The number of entries in the optional serverURIs array.
Definition: MQTTClient.h:828
Connect::will
bool will
will flag
Definition: MQTTPacket.h:111
MQTTProtocol_handleSubacks
int MQTTProtocol_handleSubacks(void *pack, int sock)
Process an incoming suback packet for a socket.
Definition: MQTTProtocolOut.c:208
MQTTAsync_successData::alt
union MQTTAsync_successData::@6 alt
A union of the different values that can be returned for subscribe, unsubscribe and publish.
Socket_abortWrite
int Socket_abortWrite(int socket)
Continue an outstanding write for a particular socket.
Definition: Socket.c:890
MQTTProtocol_createMessage
Messages * MQTTProtocol_createMessage(Publish *publish, Messages **mm, int qos, int retained)
Copy and store message data for retries.
Definition: MQTTProtocolClient.c:182
Suback
Data for a suback packet.
Definition: MQTTPacket.h:171
MQTTAsync_connectOptions::onSuccess5
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the connect successfully completes.
Definition: MQTTAsync.h:1139
heap_info::max_size
size_t max_size
max size the heap has reached in bytes
Definition: Heap.h:59
Sockets::cur_clientsds
ListElement * cur_clientsds
current client socket descriptor (iterator)
Definition: Socket.h:120
MQTTProperty::byte
char byte
holds the value of a byte property type
Definition: MQTTProperties.h:105
TreeRemoveNodeIndex
void * TreeRemoveNodeIndex(Tree *aTree, Node *curnode, int index)
Remove an item from a tree.
Definition: Tree.c:417
MQTTClient_connectOptions::will
MQTTClient_willOptions * will
This is a pointer to an MQTTClient_willOptions structure.
Definition: MQTTClient.h:795
Unsuback::msgId
int msgId
MQTT message id.
Definition: MQTTPacket.h:187
MQTTClients
Definition: MQTTClient.c:195
Socket_addPendingWrite
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
MQTTAsync_subscribe
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
MQTTAsync_unsubscribeMany
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
clientIDCompare
int clientIDCompare(void *a, void *b)
List callback function for comparing clients by clientid.
Definition: Clients.c:36
connectionLost_call
static thread_return_type WINAPI connectionLost_call(void *context)
Wrapper function to call connection lost on a separate thread.
Definition: MQTTClient.c:620
MQTTClient_message::qos
int qos
The quality of service (QoS) assigned to the message.
Definition: MQTTClient.h:290
Sockets::rset
fd_set rset
socket read set (see select doc)
Definition: Socket.h:116
MQTTClient_receive
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
SocketBuffer_initialize
void SocketBuffer_initialize(void)
Initialize the socketBuffer module.
Definition: SocketBuffer.c:92
MQTTAsync_failureData5::packet_type
int packet_type
Packet type on which the failure occurred - used for publish QoS 1/2 exchanges.
Definition: MQTTAsync.h:457
SocketBuffer_freeDefQ
void SocketBuffer_freeDefQ(void)
Free the default queue memory.
Definition: SocketBuffer.c:105
MQTTAsync_command
Definition: MQTTAsync.c:261
SocketBuffer_terminate
void SocketBuffer_terminate(void)
Terminate the socketBuffer module.
Definition: SocketBuffer.c:116
ListFindItem
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
NodeStruct::size
size_t size
size of content
Definition: Tree.h:82
MQTTAsync_disconnectOptions::context
void * context
Definition: MQTTAsync.h:1207
MQTTAsync_message::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:260
socketcompare
int socketcompare(void *a, void *b)
List callback function for comparing socket_queues by socket.
Definition: SocketBuffer.c:70
MQTTPacket_suback
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
props_rc_parms
Definition: MQTTClient.c:228
Publish::topic
char * topic
topic string
Definition: MQTTPacket.h:200
MQTTCLIENT_PERSISTENCE_ERROR
#define MQTTCLIENT_PERSISTENCE_ERROR
Application-specific persistence functions must return this error code if there is a problem executin...
Definition: MQTTClientPersistence.h:85
MQTTClient_setTraceCallback
void MQTTClient_setTraceCallback(MQTTClient_traceCallback *callback)
This function sets the trace callback if needed.
Definition: MQTTClient.c:2648
pending_write
Definition: MQTTProtocol.h:28
ListRemoveHead
int ListRemoveHead(List *aList)
Removes and frees an the first item in a list.
Definition: LinkedList.c:292
MQTTClient_message::payload
void * payload
A pointer to the payload of the MQTT message.
Definition: MQTTClient.h:276
qEntry
Definition: MQTTAsync.c:253
readInt4
int readInt4(char **pptr)
Calculates an integer from two bytes read from the input buffer.
Definition: MQTTPacket.c:884
MQTTProperties
MQTT version 5 property list.
Definition: MQTTProperties.h:118
pstkeys
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
MQTTCLIENT_PERSISTENCE_USER
#define MQTTCLIENT_PERSISTENCE_USER
This persistence_type value specifies an application-specific persistence mechanism (see MQTTClient_c...
Definition: MQTTClientPersistence.h:79
heap_info
Information about the state of the heap.
Definition: Heap.h:56
SocketBuffer_newDefQ
void SocketBuffer_newDefQ(void)
Create a new default queue when one has just been used.
Definition: SocketBuffer.c:79
Publish::MQTTVersion
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:205
MQTTClient_connectOptions::keepAliveInterval
int keepAliveInterval
The "keep alive" interval, measured in seconds, defines the maximum time that should pass without com...
Definition: MQTTClient.h:757
Persistence_get
int(* Persistence_get)(void *handle, char *key, char **buffer, int *buflen)
Retrieve the specified data from the persistent store.
Definition: MQTTClientPersistence.h:156
Messages::len
int len
PUBREC, PUBREL, PUBCOMP
Definition: Clients.h:62
MQTTProtocol_startPublishCommon
static int MQTTProtocol_startPublishCommon(Clients *pubclient, Publish *publish, int qos, int retained)
Utility function to start a new publish exchange.
Definition: MQTTProtocolClient.c:129
MQTTPersistence_restore
int MQTTPersistence_restore(Clients *c)
Restores the persisted records to the outbound and inbound message queues of the client.
Definition: MQTTPersistence.c:175
MQTTClient_connectOptions::serverURIs
char *const * serverURIs
An optional array of null-terminated strings specifying the servers to which the client will connect.
Definition: MQTTClient.h:839
MQTTProtocol_checkPendingWrites
static void MQTTProtocol_checkPendingWrites(void)
See if any pending writes have been completed, and cleanup if so.
Definition: MQTTClient.c:2733
MQTTAsync_createOptions::MQTTVersion
int MQTTVersion
Whether the MQTT version is 3.1, 3.1.1, or 5.
Definition: MQTTAsync.h:836
MQTTClient_willOptions::qos
int qos
The quality of service setting for the LWT message (see MQTTClient_message.qos and qos).
Definition: MQTTClient.h:622
Connack::reserved
unsigned int reserved
message type nibble
Definition: MQTTPacket.h:149
Persistence_close
int(* Persistence_close)(void *handle)
Close the persistent store referred to by the handle.
Definition: MQTTClientPersistence.h:123
MQTTPacket
Data for a packet with header only.
Definition: MQTTPacket.h:162
MQTTAsync_failureData5::code
int code
A numeric code identifying the MQTT client library error.
Definition: MQTTAsync.h:453
MQTTProtocol_freeMessageList
void MQTTProtocol_freeMessageList(List *msgList)
Empty and free up all storage used by a message list.
Definition: MQTTProtocolClient.c:826
MQTTPacket_send_publish
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
Sockets::rset_saved
fd_set rset_saved
saved socket read set
Definition: Socket.h:117
SocketBuffer_getWrite
pending_writes * SocketBuffer_getWrite(int socket)
Get any queued write data for a specific socket.
Definition: SocketBuffer.c:372
MQTTAsync_connectOptions::MQTTVersion
int MQTTVersion
Sets the version of MQTT to be used on the connect.
Definition: MQTTAsync.h:1102
Unsuback
Data for an MQTT V5 unsuback packet.
Definition: MQTTPacket.h:184
Socket_continueWrite
int Socket_continueWrite(int socket)
Continue an outstanding write for a particular socket.
Definition: Socket.c:804
MQTTAsync_disconnectOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:1182
MQTTAsync_SSLOptions::privateKey
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
MQTTPacket_ack
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
SocketBuffer_getQueuedChar
int SocketBuffer_getQueuedChar(int socket, char *c)
Get any queued character for a specific socket.
Definition: SocketBuffer.c:199
MQTTClient_message
A structure representing the payload and attributes of an MQTT message.
Definition: MQTTClient.h:266
MQTTAsync_successData5::destinationName
char * destinationName
the topic destination for the message
Definition: MQTTAsync.h:513
MQTTPersistence_initialize
int MQTTPersistence_initialize(Clients *c, const char *serverURI)
Open persistent store and restore any persisted messages.
Definition: MQTTPersistence.c:109
ListDetach
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
Log
void Log(enum LOG_LEVELS log_level, int msgno, const char *format,...)
Log a message.
Definition: Log.c:404
MQTTProtocol_connect
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
MQTTClient_createWithOptions
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
ListFreeNoContent
void ListFreeNoContent(List *aList)
Removes and but does not free all items in a list, and frees the list itself.
Definition: LinkedList.c:390
NodeStruct::content
void * content
pointer to element content
Definition: Tree.h:81
MQTTClient_SSLOptions::CApath
const char * CApath
From the OpenSSL documentation: If CApath is not NULL, it points to a directory containing CA certifi...
Definition: MQTTClient.h:703
MQTTClient_publish
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_nameValue
MQTTClient_libraryInfo is used to store details relating to the currently used library such as the ve...
Definition: MQTTClient.h:886
MQTTProperty::identifier
enum MQTTPropertyCodes identifier
The MQTT V5 property id.
Definition: MQTTProperties.h:102
MQTTProtocol_retries
static void MQTTProtocol_retries(time_t now, Clients *client, int regardless)
MQTT retry processing per client.
Definition: MQTTProtocolClient.c:651
Socket_getdata
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
MQTTAsync_disconnect
int MQTTAsync_disconnect(MQTTAsync handle, const MQTTAsync_disconnectOptions *options)
This function attempts to disconnect the client from the MQTT server.
Definition: MQTTAsync.c:3107
Connect::header
Header header
MQTT header byte.
Definition: MQTTPacket.h:91
MQTTPacket_freeUnsuback
void MQTTPacket_freeUnsuback(Unsuback *pack)
Free allocated storage for a suback packet.
Definition: MQTTPacket.c:661
MQTTCLIENT_PERSISTENCE_NONE
#define MQTTCLIENT_PERSISTENCE_NONE
This persistence_type value specifies a memory-based persistence mechanism (see MQTTClient_create()).
Definition: MQTTClientPersistence.h:74
MQTTAsync_responseOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:585
Connack::rc
unsigned char rc
connack reason code
Definition: MQTTPacket.h:153
MQTTAsync_SSLOptions::trustStore
const char * trustStore
The file in PEM format containing the public digital certificates trusted by the client.
Definition: MQTTAsync.h:913
storageElement::line
int line
the line no in the source file where it was allocated
Definition: Heap.c:67
ListNextElement
ListElement * ListNextElement(List *aList, ListElement **pos)
Forward iteration through a list.
Definition: LinkedList.c:409
Suback::MQTTVersion
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:175
Connect::version
unsigned char version
MQTT version number.
Definition: MQTTPacket.h:126
MQTTPersistence_qEntry
Definition: MQTTPersistence.h:79
MQTTAsync_createOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:822
stackEntry
Definition: StackTrace.c:46
Socket_writev
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
MQTTPersistence_create
int MQTTPersistence_create(MQTTClient_persistence **persistence, int type, void *pcontext)
Creates a MQTTClient_persistence structure representing a persistence implementation.
Definition: MQTTPersistence.c:47
MQTTProperty::value
MQTTLenString value
The value of a user property.
Definition: MQTTProperties.h:110
MQTTStrncpy
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
SocketBuffer_complete
char * SocketBuffer_complete(int socket)
A socket read has now completed so we can get rid of the queue.
Definition: SocketBuffer.c:261
Ack::properties
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:219
writeData
void writeData(char **pptr, const void *data, int datalen)
Writes length delimited data to an output buffer.
Definition: MQTTPacket.c:454
MQTTAsync_SSLOptions
MQTTAsync_sslProperties defines the settings to establish an SSL/TLS connection using the OpenSSL lib...
Definition: MQTTAsync.h:905
MQTTAsync_failureData5::message
const char * message
Optional further text explaining the error.
Definition: MQTTAsync.h:455
MQTTAsync_willOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:860
Log_nameValue
Definition: Log.h:69
MQTTClient_publishMessage
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
MQTTAsync_destroy
void MQTTAsync_destroy(MQTTAsync *handle)
This function frees the memory allocated to an MQTT client (see MQTTAsync_create()).
Definition: MQTTAsync.c:1933
Connack::sessionPresent
bool sessionPresent
was a session found on the server?
Definition: MQTTPacket.h:148
Connect::willMsg
char * willMsg
will payload
Definition: MQTTPacket.h:123
MQTTAsync_setTraceLevel
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
MQTTAsync_sendMessage
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
MQTTProtocol_handleUnsubacks
int MQTTProtocol_handleUnsubacks(void *pack, int sock)
Process an incoming unsuback packet for a socket.
Definition: MQTTProtocolOut.c:246
Heap_terminate
void Heap_terminate(void)
Heap termination.
Definition: Heap.c:403
SocketBuffer_writeComplete
int SocketBuffer_writeComplete(int socket)
A socket write has now completed so we can get rid of the queue.
Definition: SocketBuffer.c:384
call_disconnected
static thread_return_type WINAPI call_disconnected(void *context)
Wrapper function to call disconnected on a separate thread.
Definition: MQTTClient.c:658
MQTTAsync_successData5::properties
MQTTProperties properties
MQTT V5 properties returned, if any.
Definition: MQTTAsync.h:499
Tree::indexes
int indexes
no of indexes into tree
Definition: Tree.h:83
MQTTAsync_successData5::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:495
MQTTClient_disconnect1
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
UTF8_validate
int UTF8_validate(int len, const char *data)
Validate a length-delimited string has only UTF-8 characters.
Definition: utf-8.c:126
MQTTAsync_connectOptions::onSuccess
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the connect successfully completes.
Definition: MQTTAsync.h:1070
Ack::msgId
int msgId
MQTT message id.
Definition: MQTTPacket.h:216
MQTTClient_yield
void MQTTClient_yield(void)
When implementing a single-threaded client, call this function periodically to allow processing of me...
Definition: MQTTClient.c:2521
MQTTAsync_connectOptions::serverURIcount
int serverURIcount
The number of entries in the serverURIs array.
Definition: MQTTAsync.h:1086
MQTTClient_willOptions::retained
int retained
The retained flag for the LWT message (see MQTTClient_message.retained).
Definition: MQTTClient.h:617
MQTTAsync_createOptions
Definition: MQTTAsync.h:819
Socket_outInitialize
void Socket_outInitialize(void)
Initialize the socket module.
Definition: Socket.c:122
Thread_start
thread_type Thread_start(thread_fn fn, void *parameter)
Start a new thread.
Definition: Thread.c:60
Connect::keepAliveTimer
int keepAliveTimer
keepalive timeout value in seconds
Definition: MQTTPacket.h:125
MQTTAsync_setTraceCallback
void MQTTAsync_setTraceCallback(MQTTAsync_traceCallback *callback)
This function sets the trace callback if needed.
Definition: MQTTAsync.c:3982
MQTTAsync_willOptions::topicName
const char * topicName
The LWT topic to which the LWT message will be published.
Definition: MQTTAsync.h:866
MQTTPacket_freeSuback
void MQTTPacket_freeSuback(Suback *pack)
Free allocated storage for a suback packet.
Definition: MQTTPacket.c:645
Thread_getid
thread_id_type Thread_getid(void)
Get the thread id of the thread from which this function is called.
Definition: Thread.c:174
Publications
Stored publication data to minimize copying.
Definition: Clients.h:40
pstget
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
MQTTClient_willOptions defines the MQTT "Last Will and Testament" (LWT) settings for the client.
Definition: MQTTClient.h:602
MQTTAsync_SSLOptions::keyStore
const char * keyStore
The file in PEM format containing the public certificate chain of the client.
Definition: MQTTAsync.h:918
MQTTClient_SSLOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:653
MQTTAsync_successData5::reasonCodes
enum MQTTReasonCodes * reasonCodes
an array of reasonCodes
Definition: MQTTAsync.h:507
Thread_check_sem
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
MQTTAsync_connectOptions::context
void * context
Definition: MQTTAsync.h:1082
Publish
Data for a publish packet.
Definition: MQTTPacket.h:197
Tree::size
size_t size
heap storage used
Definition: Tree.h:85
MQTTAsync_responseOptions
Definition: MQTTAsync.h:582
clientSocketCompare
int clientSocketCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: Clients.c:50
MQTTClient_connectOptions
MQTTClient_connectOptions defines several settings that control the way the client connects to an MQT...
Definition: MQTTClient.h:735
MQTTClient_subscribe
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
Sockets::maxfdp1
int maxfdp1
max descriptor used +1 (again see select doc)
Definition: Socket.h:118
MQTTClient_isConnected
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_connectOptions::ssl
MQTTAsync_SSLOptions * ssl
This is a pointer to an MQTTAsync_SSLOptions structure.
Definition: MQTTAsync.h:1064
MQTTAsync_willOptions::payload
struct MQTTAsync_willOptions::@14 payload
The LWT payload in binary form.
MQTTAsync_failureData::message
const char * message
Optional text explaining the error.
Definition: MQTTAsync.h:435
queues
static List * queues
List of queued input buffers.
Definition: SocketBuffer.c:50
pending_writes
Definition: SocketBuffer.h:48
MQTTProtocol_closeSession
void MQTTProtocol_closeSession(Clients *c, int sendwill)
mqttclient_mutex must be locked when you call this function, if multi threaded
Definition: MQTTClient.c:1741
MQTTPacket_send_pubrel
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
Clients::sessionExpiry
int sessionExpiry
MQTT 5 session expiry.
Definition: Clients.h:134
MQTTAsync_createOptions::sendWhileDisconnected
int sendWhileDisconnected
Whether to allow messages to be sent when the client library is not connected.
Definition: MQTTAsync.h:828
writes
static List writes
List of queued write buffers.
Definition: SocketBuffer.c:55
MQTTClient_free
void MQTTClient_free(void *memory)
This function frees memory allocated by the MQTT C client library, especially the topic name.
Definition: MQTTClient.c:559
MQTTPersistence_message
Definition: MQTTPersistence.h:66
MQTTPacket_freeConnack
void MQTTPacket_freeConnack(Connack *pack)
Free allocated storage for a connack packet.
Definition: MQTTPacketOut.c:176
HeapScan
static void HeapScan(enum LOG_LEVELS log_level)
Scans the heap and reports any items currently allocated.
Definition: Heap.c:369
Socket_close
void Socket_close(int socket)
Close a socket and remove it from the select list.
Definition: Socket.c:611
TreeInitialize
Tree * TreeInitialize(int(*compare)(void *, void *, int))
Allocates and initializes a new tree structure.
Definition: Tree.c:65
MQTTAsync_connectOptions::connectProperties
MQTTProperties * connectProperties
MQTT V5 properties for connect.
Definition: MQTTAsync.h:1129
MQTTClient_setTraceLevel
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
Tree::allow_duplicates
unsigned int allow_duplicates
switch to allow duplicate entries
Definition: Tree.h:87
MQTTAsync_connectOptions::cleansession
int cleansession
This is a boolean value.
Definition: MQTTAsync.h:1025
MQTTClient_persistence::pput
Persistence_put pput
A function pointer to an implementation of Persistence_put().
Definition: MQTTClientPersistence.h:231
MQTTAsync_failureData5::reasonCode
enum MQTTReasonCodes reasonCode
The MQTT reason code returned.
Definition: MQTTAsync.h:449
TreeRemoveIndex
void * TreeRemoveIndex(Tree *aTree, void *content, int index)
Remove an item from a tree.
Definition: Tree.c:484
MQTTClient_SSLOptions::verify
int verify
Whether to carry out post-connect checks, including that a certificate matches the given host name.
Definition: MQTTClient.h:696
MQTTClient_connectOptions::ssl
MQTTClient_SSLOptions * ssl
This is a pointer to an MQTTClient_SSLOptions structure.
Definition: MQTTClient.h:824
MQTTPersistence_remove
int MQTTPersistence_remove(Clients *c, char *type, int qos, int msgId)
Deletes a record from the persistent store.
Definition: MQTTPersistence.c:468
Socket_close_only
int Socket_close_only(int socket)
Close a socket without removing it from the select list.
Definition: Socket.c:583
trace_settings_type::max_trace_entries
int max_trace_entries
max no of entries in the trace buffer
Definition: Log.h:58
MQTTClient_willOptions::len
int len
binary payload length
Definition: MQTTClient.h:626
lower
char lower
lower limit of valid range
Definition: utf-8.c:49
List::count
int count
no of items
Definition: LinkedList.h:72
MQTTAsync_message
A structure representing the payload and attributes of an MQTT message.
Definition: MQTTAsync.h:257
socket_queue
Definition: SocketBuffer.h:37
MQTTClient_message::dup
int dup
The dup flag indicates whether or not this message is a duplicate.
Definition: MQTTClient.h:316
MQTTAsync_disconnectOptions::onFailure5
MQTTAsync_onFailure5 * onFailure5
A pointer to a callback function to be called if the disconnect fails.
Definition: MQTTAsync.h:1227
MQTTAsync_SSLOptions::ssl_error_cb
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_successData::token
MQTTAsync_token token
A token identifying the successful request.
Definition: MQTTAsync.h:466
Thread_signal_cond
int Thread_signal_cond(cond_type condvar)
Signal a condition variable.
Definition: Thread.c:389
MQTTClient_init_options
Initialization options.
Definition: MQTTClient.h:224
Socket_getpeer
char * Socket_getpeer(int sock)
Get information about the other end connected to a socket.
Definition: Socket.c:998
Connack::header
Header header
MQTT header byte.
Definition: MQTTPacket.h:135
stringcompare
int stringcompare(void *a, void *b)
List callback function for comparing C strings.
Definition: LinkedList.c:446
MQTTAsync_connectOptions::password
const char * password
MQTT servers that support the MQTT v3.1 protocol provide authentication and authorisation by user nam...
Definition: MQTTAsync.h:1047
MQTTAsync_successData5::sub
struct MQTTAsync_successData5::@9::@10 sub
For subscribeMany, the list of reasonCodes returned by the server.
ptrCompare
static int ptrCompare(void *a, void *b, int value)
List callback function for comparing storage elements.
Definition: Heap.c:110
ListAppend
void ListAppend(List *aList, void *content, size_t size)
Append an item to a list.
Definition: LinkedList.c:93
Unsuback::reasonCodes
List * reasonCodes
list of reason codes
Definition: MQTTPacket.h:190
MQTTAsync_failureData::code
int code
A numeric code identifying the error.
Definition: MQTTAsync.h:433
Socket_putdatas
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_responseOptions::onSuccess
MQTTAsync_onSuccess * onSuccess
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:594
MQTTProtocol_checkPendingWrites
static void MQTTProtocol_checkPendingWrites(void)
See if any pending writes have been completed, and cleanup if so.
Definition: MQTTAsync.c:1136
MQTTClient_willOptions::topicName
const char * topicName
The LWT topic to which the LWT message will be published.
Definition: MQTTClient.h:611
MQTTAsync_successData::qos
int qos
For subscribe, the granted QoS of the subscription returned by the server.
Definition: MQTTAsync.h:471
Heap_get_info
heap_info * Heap_get_info(void)
Access to heap state.
Definition: Heap.c:418
MQTTAsync_willOptions::qos
int qos
The quality of service setting for the LWT message (see MQTTAsync_message.qos and qos).
Definition: MQTTAsync.h:877
MQTTClient_SSLOptions::trustStore
const char * trustStore
The file in PEM format containing the public digital certificates trusted by the client.
Definition: MQTTClient.h:658
MQTTPacket_send_ack
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
Connect::willRetain
bool willRetain
will retain setting
Definition: MQTTPacket.h:113
MQTTClient_SSLOptions::keyStore
const char * keyStore
The file in PEM format containing the public certificate chain of the client.
Definition: MQTTClient.h:663
Ack::MQTTVersion
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:218
MQTTClient_connectOptions::reliable
int reliable
This is a boolean value that controls how many messages can be in-flight simultaneously.
Definition: MQTTClient.h:789
MQTTCLIENT_PERSISTENCE_DEFAULT
#define MQTTCLIENT_PERSISTENCE_DEFAULT
This persistence_type value specifies the default file system-based persistence mechanism (see MQTTCl...
Definition: MQTTClientPersistence.h:69
MQTTClient_connectOptions::cleansession
int cleansession
This is a boolean value.
Definition: MQTTClient.h:779
MQTTPersistence_put
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
trace_settings_type::trace_level
enum LOG_LEVELS trace_level
trace level
Definition: Log.h:57
Sockets::connect_pending
List * connect_pending
list of sockets for which a connect is pending
Definition: Socket.h:121
MQTTAsync_SSLOptions::ssl_error_context
void * ssl_error_context
Application-specific contex for OpenSSL error handler ERR_print_errors_cb Exists only if struct_versi...
Definition: MQTTAsync.h:970
MQTTAsync_setConnectionLostCallback
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
Header::qos
unsigned int qos
QoS value, 0, 1 or 2.
Definition: MQTTPacket.h:78
Header::type
unsigned int type
message type nibble
Definition: MQTTPacket.h:80
MQTTPersistence_insertInOrder
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
Persistence_keys
int(* Persistence_keys)(void *handle, char ***keys, int *nkeys)
Returns the keys in this persistent data store.
Definition: MQTTClientPersistence.h:186
MQTTAsync_message::dup
int dup
The dup flag indicates whether or not this message is a duplicate.
Definition: MQTTAsync.h:307
MQTTAsync_disconnectOptions::onFailure
MQTTAsync_onFailure * onFailure
A pointer to a callback function to be called if the disconnect fails.
Definition: MQTTAsync.h:1201
MQTTAsync_connectOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTAsync.h:983
MQTTAsync_create
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
MQTTAsync_successData5::unsub
struct MQTTAsync_successData5::@9::@13 unsub
For unsubscribeMany, the list of reasonCodes returned by the server.
ListElementStruct
Structure to hold all data for one list element.
Definition: LinkedList.h:56
MQTTPacket::header
Header header
MQTT header byte.
Definition: MQTTPacket.h:164
ListRemoveItem
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
NodeStruct::child
struct NodeStruct * child[2]
pointers to child tree nodes 0 = left, 1 = right
Definition: Tree.h:80
Connect::cleanstart
bool cleanstart
cleansession flag
Definition: MQTTPacket.h:110
ClientStates
Configuration data related to all clients.
Definition: Clients.h:147
MQTTAsync_SSLOptions::enableServerCertAuth
int enableServerCertAuth
True/False option to enable verification of the server certificate.
Definition: MQTTAsync.h:938
storageElement::size
size_t size
size of the allocated storage
Definition: Heap.c:69
readUTF
char * readUTF(char **pptr, char *enddata)
Reads a "UTF" string from the input buffer.
Definition: MQTTPacket.c:388
MQTTClient_destroy
void MQTTClient_destroy(MQTTClient *handle)
This function frees the memory allocated to an MQTT client (see MQTTClient_create()).
Definition: MQTTClient.c:505
MQTTAsync_message::payload
void * payload
A pointer to the payload of the MQTT message.
Definition: MQTTAsync.h:267
MQTTClient_SSLOptions::enableServerCertAuth
int enableServerCertAuth
True/False option to enable verification of the server certificate.
Definition: MQTTClient.h:683
Clients::good
unsigned int good
if we have an error on the socket we turn this off
Definition: Clients.h:117
MQTTPacket_connack
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
MQTTAsync_willOptions::retained
int retained
The retained flag for the LWT message (see MQTTAsync_message.retained).
Definition: MQTTAsync.h:872
MQTTLenString
The data for a length delimited string.
Definition: MQTTProperties.h:90
MQTTClient_persistence::pclose
Persistence_close pclose
A function pointer to an implementation of Persistence_close().
Definition: MQTTClientPersistence.h:227
MQTTAsync_freeMessage
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
MQTTAsync_connectOptions::connectTimeout
int connectTimeout
The time interval in seconds to allow a connect to complete.
Definition: MQTTAsync.h:1051
Messages::nextMessageType
char nextMessageType
used for retry and expiry
Definition: Clients.h:61
MQTTPacket_unsuback
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
Thread_destroy_mutex
void Thread_destroy_mutex(mutex_type mutex)
Destroy a mutex which has already been created.
Definition: Thread.c:155
MQTTClient_subscribeMany
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
MQTTClient_connectOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTClient.h:747
MQTTAsync_setDeliveryCompleteCallback
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
ListZero
void ListZero(List *newl)
Sets a list structure to empty - all null values.
Definition: LinkedList.c:42
MQTTClient_willOptions::payload
struct MQTTClient_willOptions::@16 payload
The LWT payload in binary form.
MQTTPacket_freeAck
void MQTTPacket_freeAck(Ack *pack)
Free allocated storage for an ack packet.
Definition: MQTTPacket.c:583
socket_queue::fixed_header
char fixed_header[5]
header plus up to 4 length bytes
Definition: SocketBuffer.h:42
SocketBuffer_cleanup
void SocketBuffer_cleanup(int socket)
Cleanup any buffers for a specific socket.
Definition: SocketBuffer.c:134
MQTTAsync_failureData5
The data returned on completion of an unsuccessful API call in the response callback onFailure.
Definition: MQTTAsync.h:440
MQTTClient_connectOptions::data
const void * data
binary password data
Definition: MQTTClient.h:863
MQTTAsync_responseOptions::onFailure
MQTTAsync_onFailure * onFailure
A pointer to a callback function to be called if the API call fails.
Definition: MQTTAsync.h:600
MQTTAsync_createOptions::maxBufferedMessages
int maxBufferedMessages
the maximum number of messages allowed to be buffered while not connected.
Definition: MQTTAsync.h:830
MQTTClient_connectOptions::serverURI
const char * serverURI
the serverURI connected to
Definition: MQTTClient.h:853
ListInsert
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
SocketBuffer_pendingWrite
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
lines_written
static int lines_written
number of lines written to the current output file
Definition: Log.c:102
MQTTAsync_connectOptions::will
MQTTAsync_willOptions * will
This is a pointer to an MQTTAsync_willOptions structure.
Definition: MQTTAsync.h:1035
Tree::count
int count
no of items
Definition: Tree.h:84
Heap_roundup
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
MQTTClient_message::msgid
int msgid
The message identifier is normally reserved for internal use by the MQTT client and server.
Definition: MQTTClient.h:320
MQTTAsync_Socket_noPendingWrites
static int MQTTAsync_Socket_noPendingWrites(int socket)
Call Socket_noPendingWrites(int socket) with protection by socket_mutex, see https://github....
Definition: MQTTAsync.c:1122
MQTTClient_connectOptions::MQTTVersion
int MQTTVersion
Sets the version of MQTT to be used on the connect.
Definition: MQTTClient.h:847
MQTTAsync_message::retained
int retained
The retained flag serves two purposes depending on whether the message it is associated with is being...
Definition: MQTTAsync.h:300
MQTTClient_setDisconnected
int MQTTClient_setDisconnected(MQTTClient handle, void *context, MQTTClient_disconnected *disconnected)
Sets the MQTTClient_disconnected() callback function for a client.
Definition: MQTTClient.c:629
MQTTSubscribe_options::retainAsPublished
unsigned char retainAsPublished
To keep the retain flag as on the original publish message, set to 1.
Definition: MQTTSubscribeOpts.h:50
ws_frame::len
size_t len
length of frame
Definition: WebSocket.c:134
Ack::rc
unsigned char rc
MQTT 5 reason code.
Definition: MQTTPacket.h:217
MQTTAsync_responseOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:588
Connack
Data for a connack packet.
Definition: MQTTPacket.h:133
Thread_destroy_sem
int Thread_destroy_sem(sem_type sem)
Destroy a semaphore which has already been created.
Definition: Thread.c:334
MQTTClient_createOptions::MQTTVersion
int MQTTVersion
Whether the MQTT version is 3.1, 3.1.1, or 5.
Definition: MQTTClient.h:538
MQTTClient_disconnect
int MQTTClient_disconnect(MQTTClient handle, int timeout)
This function attempts to disconnect the client from the MQTT server.
Definition: MQTTClient.c:1747
SocketBuffer_getQueuedData
char * SocketBuffer_getQueuedData(int socket, size_t bytes, size_t *actual_len)
Get any queued data for a specific socket.
Definition: SocketBuffer.c:159
s
Sockets s
Structure to hold all socket data for the module.
Definition: Socket.c:66
Sockets
Structure to hold all socket data for the module.
Definition: Socket.h:114
Tree::heap_tracking
unsigned int heap_tracking
switch on heap tracking for this tree?
Definition: Tree.h:86
MQTTAsync_connectOptions::len
int len
binary password length
Definition: MQTTAsync.h:1119
MQTTClient_SSLOptions::privateKey
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
MQTTClient_SSLOptions::enabledCipherSuites
const char * enabledCipherSuites
The list of cipher suites that the client will present to the server during the SSL handshake.
Definition: MQTTClient.h:680
writeChar
void writeChar(char **pptr, char c)
Writes one character to an output buffer.
Definition: MQTTPacket.c:413
MQTTLenString::len
int len
the length of the string
Definition: MQTTProperties.h:92
MQTTAsync_SSLOptions::privateKeyPassword
const char * privateKeyPassword
The password to load the client's privateKey if encrypted.
Definition: MQTTAsync.h:925
MQTTAsync_disconnectOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:1184
MQTTPacket_send_subscribe
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
Thread_wait_cond
int Thread_wait_cond(cond_type condvar, int timeout)
Wait with a timeout (seconds) for condition variable.
Definition: Thread.c:406
MQTTAsync_disconnectOptions::timeout
int timeout
The client delays disconnection for up to this time (in milliseconds) in order to allow in-flight mes...
Definition: MQTTAsync.h:1189
ARRAY_SIZE
#define ARRAY_SIZE(a)
Macro to determine the number of elements in a single-dimension array.
Definition: utf-8.c:37
MQTTAsync_SSLOptions::enabledCipherSuites
const char * enabledCipherSuites
The list of cipher suites that the client will present to the server during the SSL handshake.
Definition: MQTTAsync.h:935
MQTTAsync_failureData5::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:445
MQTTClient_SSLOptions::ssl_error_context
void * ssl_error_context
Application-specific contex for OpenSSL error handler ERR_print_errors_cb Exists only if struct_versi...
Definition: MQTTClient.h:715
MQTTAsync_disconnectOptions::properties
MQTTProperties properties
MQTT V5 input properties.
Definition: MQTTAsync.h:1211
MQTTAsync_successData5::reasonCode
enum MQTTReasonCodes reasonCode
MQTT V5 reason code returned.
Definition: MQTTAsync.h:498
MQTTClient_unsubscribeMany
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
MQTTClient_setCallbacks
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
MQTTClient_connectOptions::binarypwd
struct MQTTClient_connectOptions::@18 binarypwd
Optional binary password.
SocketBuffer_updateWrite
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
MQTTAsync_createOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:826
Connect::clientID
char * clientID
string client id
Definition: MQTTPacket.h:121
MQTTClient_connectOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:738
MQTTAsync_SSLOptions::sslVersion
int sslVersion
The SSL/TLS version to use.
Definition: MQTTAsync.h:944
MQTTClient_unsubscribe
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
Connect::password
bool password
3.1 password
Definition: MQTTPacket.h:114
Socket_getch
int Socket_getch(int socket, char *c)
Reads one byte from a socket.
Definition: Socket.c:320
Suback::msgId
int msgId
MQTT message id.
Definition: MQTTPacket.h:174
Persistence_put
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
Publish::payloadlen
int payloadlen
payload length
Definition: MQTTPacket.h:204
MQTTAsync_connectOptions::maxInflight
int maxInflight
This controls how many messages can be in-flight simultaneously.
Definition: MQTTAsync.h:1029
Connect
Data for a connect packet.
Definition: MQTTPacket.h:89
MQTTClient_message::struct_version
int struct_version
The version number of this structure.
Definition: MQTTClient.h:272
MQTTAsync_isConnected
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
ListEmpty
void ListEmpty(List *aList)
Removes and frees all items in a list, leaving the list ready for new items.
Definition: LinkedList.c:357
MQTTClient_init_options::struct_version
int struct_version
The version number of this structure.
Definition: MQTTClient.h:229
MQTTAsync_unsubscribe
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
MQTTSubscribe_options::struct_version
int struct_version
The version number of this structure.
Definition: MQTTSubscribeOpts.h:41
messageIDCompare
int messageIDCompare(void *a, void *b)
List callback function for comparing Message structures by message id.
Definition: MQTTProtocolClient.c:65
UTF8_char_validate
static const char * UTF8_char_validate(int len, const char *data)
Validate a single UTF-8 character.
Definition: utf-8.c:76
Socket_getReadySocket
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
MQTTClient_init_options::do_openssl_init
int do_openssl_init
1 = we do openssl init, 0 = leave it to the application
Definition: MQTTClient.h:231
MQTTProtocol_retry
void MQTTProtocol_retry(time_t now, int doRetry, int regardless)
MQTT retry protocol and socket pending writes processing.
Definition: MQTTProtocolClient.c:723
MQTTAsync_successData5
The data returned on completion of a successful API call in the response callback onSuccess.
Definition: MQTTAsync.h:492
MQTTAsync_subscribeMany
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
isReady
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
MQTTAsync_SSLOptions::CApath
const char * CApath
From the OpenSSL documentation: If CApath is not NULL, it points to a directory containing CA certifi...
Definition: MQTTAsync.h:958
MQTTClient_persistence::pkeys
Persistence_keys pkeys
A function pointer to an implementation of Persistence_keys().
Definition: MQTTClientPersistence.h:243
readChar
unsigned char readChar(char **pptr)
Reads one character from the input buffer.
Definition: MQTTPacket.c:400
MQTTProperties::max_count
int max_count
max number of properties that the currently allocated array can store
Definition: MQTTProperties.h:121
heap
static Tree heap
Tree that holds the allocation records.
Definition: Heap.c:75
MQTTAsync_disconnectOptions
Definition: MQTTAsync.h:1179
MQTTClient_persistence::premove
Persistence_remove premove
A function pointer to an implementation of Persistence_remove().
Definition: MQTTClientPersistence.h:239
MQTTClient_getVersionInfo
MQTTClient_nameValue * MQTTClient_getVersionInfo(void)
This function returns version information about the library.
Definition: MQTTClient.c:2654
MQTTAsync_successData5::alt
union MQTTAsync_successData5::@9 alt
A union of the different values that can be returned for subscribe, unsubscribe and publish.
Publish::properties
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:206
Unsuback::properties
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:189
MQTTProtocol_startPublish
int MQTTProtocol_startPublish(Clients *pubclient, Publish *publish, int qos, int retained, Messages **mm)
Start a new publish exchange.
Definition: MQTTProtocolClient.c:151
MQTTClient_message::payloadlen
int payloadlen
The length of the MQTT message payload in bytes.
Definition: MQTTClient.h:274
trace_destination
static FILE * trace_destination
flag to indicate if trace is to be sent to a stream
Definition: Log.c:99
MQTTAsync_free
void MQTTAsync_free(void *memory)
This function frees memory allocated by the MQTT C client library, especially the topic name.
Definition: MQTTAsync.c:2004
networkHandles
Definition: Clients.h:77
MQTTClient_strerror
const char * MQTTClient_strerror(int code)
Returns a pointer to the string representation of the error or NULL.
Definition: MQTTClient.c:2690
Tree::root
Node * root
root node pointer
Definition: Tree.h:80
MQTTProperty::integer4
int integer4
holds the value of a 4 byte integer property type
Definition: MQTTProperties.h:107
Connack::flags
union Connack::@22 flags
connack flags byte
ListInitialize
List * ListInitialize(void)
Allocates and initializes a new list structure.
Definition: LinkedList.c:56
HeapDump
int HeapDump(FILE *file)
Dump the state of the heap.
Definition: Heap.c:448
MQTTAsync_assignMsgId
static int MQTTAsync_assignMsgId(MQTTAsyncs *m)
Assign a new message id for a client.
Definition: MQTTAsync.c:3144
Sockets::clientsds
List * clientsds
list of client socket descriptors
Definition: Socket.h:119
Clients::username
const char * username
MQTT v3.1 user name.
Definition: Clients.h:111
ws_frame
raw websocket frame data
Definition: WebSocket.c:132
pstcontainskey
int pstcontainskey(void *handle, char *key)
Returns whether if a wire message is persisted in the client persistence directory.
Definition: MQTTPersistenceDefault.c:338
Header::dup
bool dup
DUP flag bit.
Definition: MQTTPacket.h:79
willMessages
Client will message data.
Definition: Clients.h:68
Thread_destroy_cond
int Thread_destroy_cond(cond_type condvar)
Destroy a condition variable.
Definition: Thread.c:427
MQTTClient_connectOptions::maxInflightMessages
int maxInflightMessages
The maximum number of messages in flight.
Definition: MQTTClient.h:868
clientSockCompare
static int clientSockCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: MQTTAsync.c:436
pstclose
int pstclose(void *handle)
Delete client persistence directory (if empty).
Definition: MQTTPersistenceDefault.c:304
MQTTAsync_connectOptions::serverURIs
char *const * serverURIs
Definition: MQTTAsync.h:1095
MQTTAsync_connectOptions::maxRetryInterval
int maxRetryInterval
Maximum retry interval in seconds.
Definition: MQTTAsync.h:1114
MQTTClient_willOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:605
MQTTAsync_connectOptions::keepAliveInterval
int keepAliveInterval
The "keep alive" interval, measured in seconds, defines the maximum time that should pass without com...
Definition: MQTTAsync.h:1003
Clients::cleanstart
unsigned int cleanstart
MQTT V5 clean start flag.
Definition: Clients.h:115
Socket_noPendingWrites
int Socket_noPendingWrites(int socket)
Indicate whether any data is pending outbound for a socket.
Definition: Socket.c:406
MQTTClient_message::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:269
ListPopTail
void * ListPopTail(List *aList)
Removes but does not free the last item in a list.
Definition: LinkedList.c:304
Suback::header
Header header
MQTT header byte.
Definition: MQTTPacket.h:173
Publish::payload
char * payload
binary payload, length delimited
Definition: MQTTPacket.h:203
MQTTAsync_successData5::pub
struct MQTTAsync_successData5::@9::@11 pub
For publish, the message being sent to the server.
Clients::password
const void * password
MQTT v3.1 binary password.
Definition: Clients.h:113
MQTTClient_willOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTClient.h:609
Clients::cleansession
unsigned int cleansession
MQTT V3 clean session flag.
Definition: Clients.h:114
MQTTAsync_successData5::MQTTVersion
int MQTTVersion
the version of MQTT being used
Definition: MQTTAsync.h:519
MQTTPacket_send
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
MQTTAsync_message::msgid
int msgid
The message identifier is normally reserved for internal use by the MQTT client and server.
Definition: MQTTAsync.h:311
MQTTAsync_send
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
max_lines_per_file
static int max_lines_per_file
maximum number of lines to write to one trace file
Definition: Log.c:103
Tree
Structure to hold all data for one tree.
Definition: Tree.h:76
storageElement::ptr
void * ptr
pointer to the allocated storage
Definition: Heap.c:68
Clients::outboundMsgs
List * outboundMsgs
in flight
Definition: Clients.h:127
storageElement
Each item on the heap is recorded with this structure.
Definition: Heap.c:64
MQTTClient_createOptions
Definition: MQTTClient.h:527
Socket_new
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
MQTTProtocol_storePublication
Publications * MQTTProtocol_storePublication(Publish *publish, int *len)
Store message data for possible retry.
Definition: MQTTProtocolClient.c:220
MQTTClient_SSLOptions::ssl_error_cb
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
MQTTClient_persistence::popen
Persistence_open popen
A function pointer to an implementation of Persistence_open().
Definition: MQTTClientPersistence.h:223
Thread_post_sem
int Thread_post_sem(sem_type sem)
Post a semaphore.
Definition: Thread.c:310
UTF8_validateString
int UTF8_validateString(const char *string)
Validate a null-terminated string has only UTF-8 characters.
Definition: utf-8.c:153
MQTTPacket_encode
int MQTTPacket_encode(char *buf, size_t length)
Encodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:277
Clients::connected
unsigned int connected
whether it is currently connected
Definition: Clients.h:116
heap_info::current_size
size_t current_size
current size of the heap in bytes
Definition: Heap.h:58
MQTTSubscribe_options::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTSubscribeOpts.h:38
ListUnlink
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
MQTTAsync_connectOptions::retryInterval
int retryInterval
The time interval in seconds after which unacknowledged publish requests are retried during a TCP ses...
Definition: MQTTAsync.h:1059
MQTTProtocol_emptyMessageList
void MQTTProtocol_emptyMessageList(List *msgList)
Empty a message list, leaving it able to accept new messages.
Definition: MQTTProtocolClient.c:805
Header::retain
bool retain
retained flag bit
Definition: MQTTPacket.h:77
packet_names
static const char * packet_names[]
List of the predefined MQTT v3/v5 packet names.
Definition: MQTTPacket.c:49
MQTTProtocol_unsubscribe
int MQTTProtocol_unsubscribe(Clients *client, List *topics, int msgID, MQTTProperties *props)
MQTT outgoing unsubscribe processing for a client.
Definition: MQTTProtocolOut.c:229
_unlink
#define _unlink
_unlink mapping for linux
Definition: Log.c:59
MQTTPacket_sends
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
readUTFlen
static char * readUTFlen(char **pptr, char *enddata, int *len)
Reads a "UTF" string from the input buffer.
Definition: MQTTPacket.c:357
MQTTClient_connectOptions::password
const char * password
MQTT servers that support the MQTT v3.1.1 protocol provide authentication and authorisation by user n...
Definition: MQTTClient.h:807
MQTTPacket_send_unsubscribe
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
MQTTClient_connectOptions::username
const char * username
MQTT servers that support the MQTT v3.1.1 protocol provide authentication and authorisation by user n...
Definition: MQTTClient.h:801
Ack
Data for one of the ack packets.
Definition: MQTTPacket.h:213
MQTTAsync_global_init
void MQTTAsync_global_init(MQTTAsync_init_options *inits)
Global init of mqtt library.
Definition: MQTTAsync.c:77
MQTTStrdup
char * MQTTStrdup(const char *src)
Duplicate a string, safely, allocating space on the heap.
Definition: MQTTProtocolClient.c:868
MQTTPacket_header_only
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
Socket_outTerminate
void Socket_outTerminate(void)
Terminate the socket module.
Definition: Socket.c:151
MQTTAsync_queuedCommand
Definition: MQTTAsync.c:366
nameToType
Definition: MQTTProperties.c:28
MQTTClient_persistence::pcontainskey
Persistence_containskey pcontainskey
A function pointer to an implementation of Persistence_containskey().
Definition: MQTTClientPersistence.h:251
MQTTSubscribe_options::retainHandling
unsigned char retainHandling
0 - send retained messages at the time of the subscribe (original MQTT behaviour) 1 - send retained m...
Definition: MQTTSubscribeOpts.h:55
Socket_error
int Socket_error(char *aString, int sock)
Gets the specific error corresponding to SOCKET_ERROR.
Definition: Socket.c:101
MQTTClient_create
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_disconnectOptions::onSuccess5
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the disconnect successfully completes.
Definition: MQTTAsync.h:1221
MQTTPersistence_restoreMessageQueue
int MQTTPersistence_restoreMessageQueue(Clients *c)
Restores a queue of messages from persistence to memory.
Definition: MQTTPersistence.c:706
Messages_get
const char * Messages_get(int index, enum LOG_LEVELS log_level)
Get a log message by its index.
Definition: Messages.c:94
MQTTAsync_SSLOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:910
readInt
int readInt(char **pptr)
Calculates an integer from two bytes read from the input buffer.
Definition: MQTTPacket.c:336
trace_settings_type
Definition: Log.h:55
TreeAddByIndex
void * TreeAddByIndex(Tree *aTree, void *content, size_t size, int index)
Add an item to a tree.
Definition: Tree.c:209
networkHandles::websocket
int websocket
socket has been upgraded to use web sockets
Definition: Clients.h:86
MQTTClient_SSLOptions::privateKeyPassword
const char * privateKeyPassword
The password to load the client's privateKey if encrypted.
Definition: MQTTClient.h:670
MQTTAsync_init_options
Initialization options.
Definition: MQTTAsync.h:217
MQTTClient_persistence::pclear
Persistence_clear pclear
A function pointer to an implementation of Persistence_clear().
Definition: MQTTClientPersistence.h:247
MQTTPersistence_wrapMsgID
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
MQTTAsync_message::qos
int qos
The quality of service (QoS) assigned to the message.
Definition: MQTTAsync.h:281
MQTTAsync_failureData::token
MQTTAsync_token token
A token identifying the failed request.
Definition: MQTTAsync.h:431
Publish::msgId
int msgId
MQTT message id.
Definition: MQTTPacket.h:202
state
static heap_info state
global heap state information
Definition: Heap.c:56
MQTTClient_connectOptions::retryInterval
int retryInterval
The time interval in seconds after which unacknowledged publish requests are retried during a TCP ses...
Definition: MQTTClient.h:819
Tree::compare
int(* compare)(void *, void *, int)
comparison function
Definition: Tree.h:81
MQTTAsync_responseOptions::token
MQTTAsync_token token
A token is returned from the call.
Definition: MQTTAsync.h:612
Suback::qoss
List * qoss
list of granted QoSs (MQTT 3/4) / reason codes (MQTT 5)
Definition: MQTTPacket.h:177
Thread_lock_mutex
int Thread_lock_mutex(mutex_type mutex)
Lock a mutex which has alrea.
Definition: Thread.c:111
SocketBuffer_queueChar
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
pending_socketcompare
int pending_socketcompare(void *a, void *b)
List callback function for comparing pending_writes by socket.
Definition: SocketBuffer.c:361
MQTTPersistence_clear
int MQTTPersistence_clear(Clients *c)
Clears the persistent store.
Definition: MQTTPersistence.c:156
def_queue
static socket_queue * def_queue
Default input queue buffer.
Definition: SocketBuffer.c:45
Clients::passwordlen
int passwordlen
MQTT password length.
Definition: Clients.h:112
MQTTClient_message::properties
MQTTProperties properties
The MQTT V5 properties associated with the message.
Definition: MQTTClient.h:324
MQTTClient_getPendingDeliveryTokens
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
MQTTPersistence_close
int MQTTPersistence_close(Clients *c)
Close persistent store.
Definition: MQTTPersistence.c:131
MQTTAsync_message::properties
MQTTProperties properties
The MQTT V5 properties associated with the message.
Definition: MQTTAsync.h:315
Suback::properties
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:176
MQTTAsync_connectOptions::onFailure5
MQTTAsync_onFailure5 * onFailure5
A pointer to a callback function to be called if the connect fails.
Definition: MQTTAsync.h:1145
pstremove
int pstremove(void *handle, char *key)
Delete a persisted message from the client persistence directory.
Definition: MQTTPersistenceDefault.c:265
MQTTAsync_failureData5::properties
MQTTProperties properties
The MQTT properties on the ack, if any.
Definition: MQTTAsync.h:451
MQTTAsync_connectOptions::willProperties
MQTTProperties * willProperties
MQTT V5 properties for the will message in the connect.
Definition: MQTTAsync.h:1133
MQTTAsync_successData
The data returned on completion of a successful API call in the response callback onSuccess.
Definition: MQTTAsync.h:463
MQTTClient_persistence
A structure containing the function pointers to a persistence implementation and the context or state...
Definition: MQTTClientPersistence.h:215
Unsuback::MQTTVersion
int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:188
MQTTAsync_failureData
The data returned on completion of an unsuccessful API call in the response callback onFailure.
Definition: MQTTAsync.h:428
Socket_getaddrname
char * Socket_getaddrname(struct sockaddr *sa, int sock)
Convert a numeric address to character string.
Definition: Socket.c:963
Header
Bitfields for the MQTT header byte.
Definition: MQTTPacket.h:63
List
Structure to hold all data for one list.
Definition: LinkedList.h:67
MQTTProperty
Structure to hold an MQTT version 5 property of any type.
Definition: MQTTProperties.h:100
MQTTClientPersistence.h
This structure represents a persistent data store, used to store outbound and inbound messages,...
cond_type_struct
Definition: Thread.h:43
Thread_create_sem
sem_type Thread_create_sem(void)
Create a new semaphore.
Definition: Thread.c:188
MQTTClient_willOptions::message
const char * message
The LWT payload in string form.
Definition: MQTTClient.h:613
MQTTProtocol_keepalive
void MQTTProtocol_keepalive(time_t now)
MQTT protocol keepAlive processing.
Definition: MQTTProtocolClient.c:604
MQTTAsync_disconnectOptions::reasonCode
enum MQTTReasonCodes reasonCode
Reason code for MQTTV5 disconnect.
Definition: MQTTAsync.h:1215
Connack::properties
MQTTProperties properties
MQTT 5.0 properties.
Definition: MQTTPacket.h:155
MQTTPacket_free_packet
void MQTTPacket_free_packet(MQTTPacket *pack)
Free allocated storage for a various packet tyoes.
Definition: MQTTPacket.c:844
mymalloc
void * mymalloc(char *file, int line, size_t size)
Allocates a block of memory.
Definition: Heap.c:154
len
int len
number of elements in the following array (1 to 4)
Definition: utf-8.c:46
MQTTAsync_connectOptions
MQTTAsync_connectOptions defines several settings that control the way the client connects to an MQTT...
Definition: MQTTAsync.h:980
MQTTAsync_responseOptions::context
void * context
A pointer to any application-specific context.
Definition: MQTTAsync.h:606
socket_queue::buflen
size_t buflen
total length of the buffer
Definition: SocketBuffer.h:43
MQTTResponse
Definition: MQTTClient.h:922
List::last
ListElement * last
last element in the list
Definition: LinkedList.h:70
MQTTClient_createOptions::struct_id
char struct_id[4]
The eyecatcher for this structure.
Definition: MQTTClient.h:530
Clients
Data related to one client.
Definition: Clients.h:108
ListFind
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
Heap_unlink
void Heap_unlink(char *file, int line, void *p)
Remove an item from the recorded heap without actually freeing it.
Definition: Heap.c:287
ws_frame::pos
size_t pos
current position within the buffer
Definition: WebSocket.c:135
Thread_unlock_mutex
int Thread_unlock_mutex(mutex_type mutex)
Unlock a mutex which has already been locked.
Definition: Thread.c:132
MQTTClient_connectOptions::returned
struct MQTTClient_connectOptions::@17 returned
Returned from the connect when the MQTT version used to connect is 3.1.1.
List::first
ListElement * first
first element in the list
Definition: LinkedList.h:69
MQTTAsync_reconnect
int MQTTAsync_reconnect(MQTTAsync handle)
Reconnects a client with the previously used connect options.
Definition: MQTTAsync.c:1039
new_packets
pf new_packets[]
Array of functions to build packets, indexed according to packet code.
Definition: MQTTPacket.c:72
MQTTClient_persistence::context
void * context
A pointer to any data required to initialize the persistent store.
Definition: MQTTClientPersistence.h:219
Heap_initialize
int Heap_initialize(void)
Heap initialization.
Definition: Heap.c:392
Connect::willTopic
char * willTopic
will topic
Definition: MQTTPacket.h:122
MQTTPacket_send_pubrec
int MQTTPacket_send_pubrec(int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBREC packet down a socket.
Definition: MQTTPacket.c:682
MQTTAsync_willOptions::data
const void * data
binary payload data
Definition: MQTTAsync.h:882
MQTTSubscribe_options::noLocal
unsigned char noLocal
To not receive our own publications, set to 1.
Definition: MQTTSubscribeOpts.h:45
MQTTAsync_connectOptions::onFailure
MQTTAsync_onFailure * onFailure
A pointer to a callback function to be called if the connect fails.
Definition: MQTTAsync.h:1076
MQTTAsync_setMessageArrivedCallback
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_responseOptions::onFailure5
MQTTAsync_onFailure5 * onFailure5
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:624
MQTTAsync_connect
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
MQTTPacket_freePublish
void MQTTPacket_freePublish(Publish *pack)
Free allocated storage for a publish packet.
Definition: MQTTPacket.c:567
writeUTF
void writeUTF(char **pptr, const char *string)
Writes a "UTF" string to an output buffer.
Definition: MQTTPacket.c:439
ListPrevElement
ListElement * ListPrevElement(List *aList, ListElement **pos)
Backward iteration through a list.
Definition: LinkedList.c:422
MQTTProperties::count
int count
number of property entries in the array
Definition: MQTTProperties.h:120
MQTTProtocol_handlePubrecs
int MQTTProtocol_handlePubrecs(void *pack, int sock)
Process an incoming pubrec packet for a socket.
Definition: MQTTProtocolClient.c:401
Connect::Protocol
char * Protocol
MQTT protocol name.
Definition: MQTTPacket.h:120
MQTTPacket_name
const char * MQTTPacket_name(int ptype)
Converts an MQTT packet code into its name.
Definition: MQTTPacket.c:64
writeInt
void writeInt(char **pptr, int anInt)
Writes an integer as 2 bytes to an output buffer.
Definition: MQTTPacket.c:425
MQTTPacket_send_puback
int MQTTPacket_send_puback(int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBACK packet down a socket.
Definition: MQTTPacket.c:629
MQTTProperties::array
MQTTProperty * array
array of properties
Definition: MQTTProperties.h:123
Log_stackTrace
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
MQTTClient_freeMessage
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
MQTTAsync_connectOptions::data
const void * data
binary password data
Definition: MQTTAsync.h:1120
Header::byte
char byte
the whole byte
Definition: MQTTPacket.h:65
threadEntry
Definition: StackTrace.c:53
MQTTAsync_command::MQTTVersion
int MQTTVersion
current MQTT version being used to connect
Definition: MQTTAsync.c:304
trace_destination_name
static char * trace_destination_name
the name of the trace file
Definition: Log.c:100
MQTTAsync_successData5::message
MQTTAsync_message message
the message being sent to the server
Definition: MQTTAsync.h:512
upper
char upper
upper limit of valid range
Definition: utf-8.c:50
MQTTClient_message::retained
int retained
The retained flag serves two purposes depending on whether the message it is associated with is being...
Definition: MQTTClient.h:309
ListDetachItem
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
MQTTClient_connect
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
SocketBuffer_interrupted
void SocketBuffer_interrupted(int socket, size_t actual_len)
A socket read was interrupted so we need to queue data.
Definition: SocketBuffer.c:232
MQTTAsync_successData5::reasonCodeCount
int reasonCodeCount
the number of reason codes in the reasonCodes array
Definition: MQTTAsync.h:506
MQTTClient_SSLOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTClient.h:655
Internal_heap_unlink
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
FindString
char * FindString(char *filename, const char *eyecatcher_input)
Finds an eyecatcher in a binary file and returns the following value.
Definition: MQTTVersion.c:73
MQTTAsync_responseOptions::properties
MQTTProperties properties
MQTT V5 input properties.
Definition: MQTTAsync.h:628
Persistence_open
int(* Persistence_open)(void **handle, const char *clientID, const char *serverURI, void *context)
Initialize the persistent store.
Definition: MQTTClientPersistence.h:113
traceEntry
Definition: Log.c:76
MQTTPacket_Factory
void * MQTTPacket_Factory(int MQTTVersion, networkHandles *net, int *error)
Reads one MQTT packet from a socket.
Definition: MQTTPacket.c:102
MQTTClient_SSLOptions::sslVersion
int sslVersion
The SSL/TLS version to use.
Definition: MQTTClient.h:689
pstopen
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
SHA_CTX_S
Definition: SHA1.h:39
MQTTClient_waitForCompletion
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
MQTTAsync_struct
Definition: MQTTAsync.c:310
bytes
struct @32::@33 bytes[4]
up to 4 bytes can be used per character
MQTTAsync_init_options::do_openssl_init
int do_openssl_init
1 = we do openssl init, 0 = leave it to the application
Definition: MQTTAsync.h:224
MQTTAsync_setDisconnected
int MQTTAsync_setDisconnected(MQTTAsync handle, void *context, MQTTAsync_disconnected *disconnected)
Sets the MQTTAsync_disconnected() callback function for a client.
Definition: MQTTAsync.c:2513
MQTTProtocol_addressPort
size_t MQTTProtocol_addressPort(const char *uri, int *port, const char **topic)
Separates an address:port into two separate values.
Definition: MQTTProtocolOut.c:52
Publish::header
Header header
MQTT header byte.
Definition: MQTTPacket.h:199
MQTTAsync_connectOptions::automaticReconnect
int automaticReconnect
Reconnect automatically in the case of a connection being lost?
Definition: MQTTAsync.h:1106
MQTTPacket_VBIdecode
int MQTTPacket_VBIdecode(int(*getcharfn)(char *, int), int *value)
Decodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:951
MQTTAsync_setConnected
int MQTTAsync_setConnected(MQTTAsync handle, void *context, MQTTAsync_connected *connected)
Sets the MQTTAsync_connected() callback function for a client.
Definition: MQTTAsync.c:2535
Socket_addSocket
int Socket_addSocket(int newSd)
Add a socket to the list of socket to check with select.
Definition: Socket.c:169
MQTTAsync_responseOptions::onSuccess5
MQTTAsync_onSuccess5 * onSuccess5
A pointer to a callback function to be called if the API call successfully completes.
Definition: MQTTAsync.h:618
pstmkdir
int pstmkdir(char *pPathname)
Function to create a directory.
Definition: MQTTPersistenceDefault.c:133
Thread_create_cond
cond_type Thread_create_cond(void)
Create a new condition variable.
Definition: Thread.c:358
MQTTAsync_connectOptions::binarypwd
struct MQTTAsync_connectOptions::@15 binarypwd
Optional binary password.
MQTTAsync_message::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:263
writeInt4
void writeInt4(char **pptr, int anInt)
Writes an integer as 4 bytes to an output buffer.
Definition: MQTTPacket.c:864
ListFree
void ListFree(List *aList)
Removes and frees all items in a list, and frees the list itself.
Definition: LinkedList.c:379
Socket_clearPendingWrite
void Socket_clearPendingWrite(int socket)
Clear a socket from the pending write list - if one was added with Socket_addPendingWrite.
Definition: Socket.c:571
storageElement::file
char * file
the name of the source file where the storage was allocated
Definition: Heap.c:66
Persistence_containskey
int(* Persistence_containskey)(void *handle, char *key)
Returns whether any data has been persisted using the specified key.
Definition: MQTTClientPersistence.h:208
MQTTProtocol_handlePingresps
int MQTTProtocol_handlePingresps(void *pack, int sock)
Process an incoming pingresp packet for a socket.
Definition: MQTTProtocolOut.c:167
MQTTAsync_willOptions::len
int len
binary payload length
Definition: MQTTAsync.h:881
MQTTClient_connectOptions::connectTimeout
int connectTimeout
The time interval in seconds to allow a connect to complete.
Definition: MQTTClient.h:811
Thread_create_mutex
mutex_type Thread_create_mutex(void)
Create a new mutex.
Definition: Thread.c:88
MQTTProtocol_handlePubrels
int MQTTProtocol_handlePubrels(void *pack, int sock)
Process an incoming pubrel packet for a socket.
Definition: MQTTProtocolClient.c:470
MQTTPacket_send_pingreq
int MQTTPacket_send_pingreq(networkHandles *net, const char *clientID)
Send an MQTT PINGREQ packet down a socket.
Definition: MQTTPacketOut.c:192
MQTTAsync_connectOptions::minRetryInterval
int minRetryInterval
Minimum retry interval in seconds.
Definition: MQTTAsync.h:1110
clientSockCompare
static int clientSockCompare(void *a, void *b)
List callback function for comparing clients by socket.
Definition: MQTTClient.c:607
MQTTPersistence_restorePacket
void * MQTTPersistence_restorePacket(int MQTTVersion, char *buffer, size_t buflen)
Returns a MQTT packet restored from persisted data.
Definition: MQTTPersistence.c:321
Connect::flags
union Connect::@20 flags
connect flags byte
MQTTProtocol_handlePubcomps
int MQTTProtocol_handlePubcomps(void *pack, int sock)
Process an incoming pubcomp packet for a socket.
Definition: MQTTProtocolClient.c:549
MQTTProtocol_removePublication
void MQTTProtocol_removePublication(Publications *p)
Remove stored message data.
Definition: MQTTProtocolClient.c:253
Sockets::write_pending
List * write_pending
list of sockets for which a write is pending
Definition: Socket.h:122
MQTTProtocol_handlePublishes
int MQTTProtocol_handlePublishes(void *pack, int sock)
Process an incoming publish packet for a socket.
Definition: MQTTProtocolClient.c:271
HeapDumpString
int HeapDumpString(FILE *file, char *str)
Dump a string from the heap so that it can be displayed conveniently.
Definition: Heap.c:429
MQTTPacket_publish
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
MQTTClient_connectOptions::len
int len
binary password length
Definition: MQTTClient.h:862
MQTTProtocol_handlePubacks
int MQTTProtocol_handlePubacks(void *pack, int sock)
Process an incoming puback packet for a socket.
Definition: MQTTProtocolClient.c:355
ListElementStruct::next
struct ListElementStruct * next
pointer to next list element
Definition: LinkedList.h:75
Connect::username
bool username
3.1 user name
Definition: MQTTPacket.h:115
MQTTAsync_message::payloadlen
int payloadlen
The length of the MQTT message payload in bytes.
Definition: MQTTAsync.h:265
MQTTAsync_init_options::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:222
MQTTAsync_getPendingTokens
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
MQTTPacket_send_disconnect
int MQTTPacket_send_disconnect(Clients *client, enum MQTTReasonCodes reason, MQTTProperties *props)
Send an MQTT disconnect packet down a socket.
Definition: MQTTPacket.c:483
MQTTProtocol_assignMsgId
int MQTTProtocol_assignMsgId(Clients *client)
Assign a new message id for a client.
Definition: MQTTProtocolClient.c:78
MQTTAsync_successData5::sessionPresent
int sessionPresent
the session present flag returned from the server
Definition: MQTTAsync.h:520
MQTTProperty::data
MQTTLenString data
The value of a string property, or the name of a user property.
Definition: MQTTProperties.h:109
MQTTAsync_successData5::token
MQTTAsync_token token
A token identifying the successful request.
Definition: MQTTAsync.h:497
myrealloc
void * myrealloc(char *file, int line, void *p, size_t size)
Reallocates a block of memory.
Definition: Heap.c:307
valid_ranges
struct @32 valid_ranges[]
Structure to hold the valid ranges of UTF-8 characters, for each byte up to 4.
ListElementStruct::content
void * content
pointer to element content
Definition: LinkedList.h:76
MQTTAsync_willOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:864
MQTTAsync_successData5::serverURI
char * serverURI
the connection string of the server
Definition: MQTTAsync.h:518
MQTTProperty::integer2
short integer2
holds the value of a 2 byte integer property type
Definition: MQTTProperties.h:106
myfree
void myfree(char *file, int line, void *p)
Frees a block of memory.
Definition: Heap.c:264
MQTTAsync_connectOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTAsync.h:992
MQTTPacket_decode
int MQTTPacket_decode(networkHandles *net, size_t *value)
Decodes the message length according to the MQTT algorithm.
Definition: MQTTPacket.c:302
Clients::clientID
char * clientID
the string id of the client
Definition: Clients.h:110
MQTTPacket_send_pubcomp
int MQTTPacket_send_pubcomp(int msgid, networkHandles *net, const char *clientID)
Send an MQTT PUBCOMP packet down a socket.
Definition: MQTTPacket.c:721
MQTTSubscribe_options
The MQTT V5 subscribe options, apart from QoS which existed before V5.
Definition: MQTTSubscribeOpts.h:21
MQTTAsync_strerror
const char * MQTTAsync_strerror(int code)
Returns a pointer to a string representation of the error code, or NULL.
Definition: MQTTAsync.c:4024
Connack::MQTTVersion
unsigned int MQTTVersion
the version of MQTT
Definition: MQTTPacket.h:154
MQTTProtocol
Definition: MQTTProtocol.h:35
MQTTAsync_waitForCompletion
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_failureData5::token
MQTTAsync_token token
A token identifying the failed request.
Definition: MQTTAsync.h:447
NodeStruct::parent
struct NodeStruct * parent
pointer to parent tree node, in case we need it
Definition: Tree.h:79
Messages
Client publication message data.
Definition: Clients.h:52
MQTTClient_createOptions::struct_version
int struct_version
The version number of this structure.
Definition: MQTTClient.h:532
intcompare
int intcompare(void *a, void *b)
List callback function for comparing integers.
Definition: LinkedList.c:434
MQTTAsync_setCallbacks
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
Connect::willQoS
unsigned int willQoS
will QoS value
Definition: MQTTPacket.h:112
Heap_findItem
void * Heap_findItem(void *p)
Utility to find an item in the heap.
Definition: Heap.c:354
MQTTAsync_successData::pub
struct MQTTAsync_successData::@6::@7 pub
For publish, the message being sent to the server.
Sockets::pending_wset
fd_set pending_wset
socket pending write set for select
Definition: Socket.h:123
MQTTAsync_successData::qosList
int * qosList
For subscribeMany, the list of granted QoSs of the subscriptions returned by the server.
Definition: MQTTAsync.h:473
Persistence_remove
int(* Persistence_remove)(void *handle, char *key)
Remove the data for the specified key from the store.
Definition: MQTTClientPersistence.h:169