• 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
mqtt.c 60.4 KB