• src/sbbs3/mqtt.cppsrc/sbbs3/mqtt.h mqtt_client.cpp mqtt_client.h objec

    From Deucе@VERT to Git commit to main/sbbs/master on Sun May 10 19:29:42 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/2ddba195bd0e9b05a26b8ac4
    Added Files:
    src/sbbs3/mqtt.cpp
    Modified Files:
    src/sbbs3/mqtt.h mqtt_client.cpp mqtt_client.h objects.mk
    Removed Files:
    src/sbbs3/mqtt_broker_glue.cpp
    Log Message:
    Convert mqtt.c to C++, eliminate glue layer and C wrappers

    All callers of the mqtt API are C++, so mqtt.c can be compiled as C++
    directly. This eliminates the entire indirection layer:

    - mqtt.c renamed to mqtt.cpp
    - mqtt_broker_glue.cpp deleted — broker_lputs_adapter,
    local_message_callback, mqtt_internal_startup/publish/subscribe/shutdown
    all merged into mqtt.cpp with direct C++ calls
    - C-callable wrappers removed: mqtt5client_open/close/connect/disconnect/
    publish/subscribe/pump/read/read_free/set_will (mqtt_client.cpp),
    mqtt_props_new/add_string_pair/free (mqtt_broker_glue.cpp)
    - mqtt.h: removed mqtt_internal_* and mqtt_props_* declarations
    - mqtt_client.h: removed C wrapper declarations and mqtt5client_msg struct
    - mqtt.cpp uses mqtt5::Client, mqtt5::Broker, mqtt5::Properties directly
    - Pump thread reads from Client::read() directly — no alloc/copy/free
    needed since caller and client share the same heap
    - objects.mk: removed mqtt_broker_glue

    NOTE: clean sbbs3 before building (stale mqtt.d references mqtt.c)

    Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net