Finally, support multiple topics at once using an array and array_size field
authorNathael Pajani <nathael.pajani@ed3l.fr>
Sat, 16 Mar 2019 16:15:26 +0000 (17:15 +0100)
committerNathael Pajani <nathael.pajani@ed3l.fr>
Tue, 8 Nov 2022 16:03:05 +0000 (17:03 +0100)
include/lib/protocols/mqtt.h

index b91abb4..d17b20c 100644 (file)
  * For protocol defiition, refer to 
  * http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html
  *
- * This implementation has a limitation on the subscription mechanism : the protocol allows for
- * multiple subscriptions / unsubscriptions using a single subscribe packet, which is not supported
- * by this code for code simplicity, memory usage limitation, and packets size limitation.
- * All other features of the protocol should be fully supported.
- *
  * This code is the implementation of the MQTT protocol part of the communication.
  * The MQTT protocol requires a lossless, ordered transport protocol layer with an address mechanism
  * which is not part of the code found in mqtt.c and mqtt.h, making it possible to use any underlying
@@ -237,20 +232,7 @@ int mqtt_check_publish_response_pkt(struct mqtt_publish_response_pkt* pkt, uint8
 
 
 /***************************************************************************** */
-/* subsribe and suback packets */
-
-/* NOTE : I choose not to implement the possibility to send multiple subscriptions at once here in order
- * to avoid unnecessary complexity of code and dynamic allocation of memory.
- * It could be implemented using the following structure and the inclusion of "lib/list.h" :
- * struct mqtt_sub_request {
- *     struct list_head list;
- *     char* topic;
- *     uint8_t qos;
- * };
- * and then replace topic and qos fields in struct mqtt_subscribe_pkt with a pointer to a struct list_head
- * which should then point to the "list" field of the first topic.
- * struct mqtt_subscribe_response_pkt should also be adapted for multiple subscription support.
- */
+/* subsribe, unsubsribe, suback and unsuback packets */
 
 #define MQTT_SUBSCRIBE_FLAG  (0x01 << 1)