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