1. 09 Jun, 2020 1 commit
    • Nathaniel Wesley Filardo's avatar
      WIP: MQTT fixes (#2986) · 30f706fb
      Nathaniel Wesley Filardo authored
      * mqtt: expose "connfail" callback via :on()
      
      This makes it just like all the other callbacks in the module and is a
      revision of behavior called out in
      https://github.com/nodemcu/nodemcu-firmware/pull/2967
      
      * mqtt: clarify when puback callback fires
      
      * mqtt: Don't reference stack buffers from the heap
      
      The confusingly-named "mqtt_connection_t" object is just a triple of
        - a serialized mqtt message pointer and length
        - a buffer pointer (to which the above can be written)
        - a message identifier
      
      The last of these must be passed around the mqtt state machine, but the
      first two are very local and the buffer is always sourced from the C
      stack.  Unfortunately, because the entire structure is persisted in the
      heap, some callers assume that they can always use the structure without
      reinitialization (see mqtt_socket_close), which will trash the C stack.
      
      Sever the pairing between message id and local state, punt the local
      state entirely out of the heap, and rename things to be less confusing.
      30f706fb
  2. 23 Jul, 2019 1 commit
  3. 17 Feb, 2019 1 commit
  4. 30 Nov, 2018 1 commit
    • Johan Ström's avatar
      Handle large/chunked/fragmented MQTT messages properly (#2571) · 2d958750
      Johan Ström authored
      * MQTT: handle large/chunked/fragmented messages properly
      
      If a message spans multiple TCP packets it must be buffered before
      delivered to LUA. Prior code did not do this at all, so this "patch"
      really adds proper handling of fragmented MQTT packets.
      This could also occur if multiple small messages was sent in a
      single TCP packet, and the last message did not completely fit in that
      packet.
      
      Introduces a new option to the mqtt.Client constructor:
      max_publish_length which defaults to 1024
      
      Introduces a new 'overflow' callback.
      
      Fixes issue #2308 and proper fix for PR #2544.
      
      * mqtt.md: clarified heap allocation
      
      * mqtt: ensure ack is sent for overflowed publish
      
      If QoS is used we should still acknowledge that we received it, or server might retransmit it later.
      2d958750
  5. 20 Mar, 2016 1 commit
  6. 10 Mar, 2016 1 commit
  7. 06 Mar, 2016 1 commit
    • jfollas's avatar
      MQTT Client - CONNACK processing · 0abe2fe9
      jfollas authored
      - Process the CONNACK message received from the broker after Connect
      - Provide feedback to Lua via failure callback on client:connect()
      - Also provide failure information for other situations not covered by CONNACK
      0abe2fe9
  8. 23 Jan, 2015 1 commit