MQTT and MQTTS with wolfSSL TSL library
Fork of MQTT by
MQTT is light weight publish/subscribe based messaging protocol for M2M, IoT. This library was forked from MQTT https://developer.mbed.org/teams/mqtt for adding MQTTS security layer on the protocol. TLS(SSL) part of the library is by wolfSSL.https://developer.mbed.org/users/wolfSSL/code/wolfSSL/
"connect" method was extended for TLS. Rest of API's stay compatible with MQTT.
connect methode
int connect(char* hostname, int port, const char *certName = NULL, int timeout=1000)
The 3rd argument certName can be following values.
- NULL: connecting with MQTT
- pointer to certificate file: connecting with MQTTS. PEM or DER for server verification.
- pointer to NULL string: connecting with MQTTS without server verification. This option is for prototyping only, not recommended in security perspective.
日本語:https://developer.mbed.org/users/wolfSSL/code/MQTTS/wiki/MQTTSライブラリ
Diff: MQTTClient.h
- Revision:
- 25:d13a6c558164
- Parent:
- 23:05fc7de97d4a
- Child:
- 28:8b2abe9bd814
- Child:
- 29:833386b16f3e
--- a/MQTTClient.h Fri May 09 21:33:14 2014 +0000 +++ b/MQTTClient.h Fri May 09 23:01:35 2014 +0000 @@ -26,6 +26,8 @@ match wildcard topics + updating usage of FP. Try to remove inclusion of FP.cpp in main. sg- + */ #if !defined(MQTTCLIENT_H) @@ -190,17 +192,18 @@ PacketId packetid; - typedef FP<void, Message*> messageHandlerFP; +// typedef FP<void, Message*> messageHandlerFP; +// FP<void, Message*> messageHandlerFP; struct MessageHandlers { const char* topic; - messageHandlerFP fp; + FP<void, Message*> fp; } messageHandlers[MAX_MESSAGE_HANDLERS]; // Message handlers are indexed by subscription topic - messageHandlerFP defaultMessageHandler; + FP<void, Message*> defaultMessageHandler; - typedef FP<int, connectionLostInfo*> connectionLostFP; - connectionLostFP connectionLostHandler; + FP<int, connectionLostInfo*> connectionLostHandler; +// connectionLostFP connectionLostHandler; }; @@ -350,7 +353,7 @@ // read the socket, see what work is due int packet_type = readPacket(timer); - int len, rc; + int len = 0, rc; switch (packet_type) { case CONNACK: @@ -362,6 +365,7 @@ Message msg; rc = MQTTDeserialize_publish((int*)&msg.dup, (int*)&msg.qos, (int*)&msg.retained, (int*)&msg.id, &topicName, (char**)&msg.payload, (int*)&msg.payloadlen, readbuf, MAX_MQTT_PACKET_SIZE);; + rc = rc; // make sure optimizer doesnt omit this deliverMessage(&topicName, &msg); if (msg.qos != QOS0) {