Commit graph

12 commits

Author SHA1 Message Date
Andy Taylor fc571c1e13 Fix MQTT implementation, align with DStarGateway, and add documentation
MQTT Implementation (aligned with DStarGateway / MMDVMHost):
- Rewrite MQTTConnection with mosquitto_loop_stop() fix to prevent
  background thread zombies on shutdown
- Add MQTT authentication support (mqttAuth, mqttUsername, mqttPassword)
- Add configurable client name (mqttName) used as topic prefix
- Use PID-based client IDs (avoids time_t truncation on 32-bit ARM)
- Use std::string interface throughout (no wxString in MQTT layer)
- Align JSON link status fields with DStarGateway (repeater/reflector/
  protocol/reason/action) for dashboard compatibility

Shutdown Safety:
- Add MQTTLogFinalise() calls to both daemon (IRCDDBGatewayAppD::run)
  and GUI (IRCDDBGatewayApp::OnExit) shutdown paths to ensure clean
  MQTT disconnection and thread cleanup before process exit

JSON Status Events:
- Update all ~30 WriteJSON call sites across DPlus, DExtra, DCS, and
  CCS protocol handlers to use new function signatures
- Simplify IRCDDBGatewayThread::writeJSONStatus to delegate to
  WriteJSONStatus

Config Parser Hardening:
- Add empty-line crash guard to IRCDDBGatewayConfig, TimerControlConfig,
  and TimeServerConfig parsers (str.IsEmpty() check before GetChar)

Documentation:
- Add MQTT.md with topic structure, JSON examples, and troubleshooting
- Add CONFIGURATION.md with full reference for all config files
- Add BUILD.md with build parameters and dependency information
- Add linux/ example configs for ircddbgateway, timeserver, timercontrol
- Modernise README.md with feature list and DStarGateway recommendation
2026-03-08 21:34:45 +00:00
Jonathan Naylor f5ab9f7c93 Merge branch 'master' into mqtt 2026-02-18 17:56:52 +00:00
Adam Kolakowski 41e01d4f34 Adds DESTDIR build variable
Setting DESTDIR on `make install` allows for installing artefacts
in staging location for automated build, packaging etc.
2020-05-28 23:13:19 +02:00
Jonathan Naylor b8fbf58815 Update to VS2019. 2020-02-14 22:05:47 +00:00
Geoffrey Merck F4FXL - KC3FRA fb70d2862f Correct include path for all build configurations.
Correct Common x64 including from 32bits
2019-04-21 09:00:33 +02:00
Geoffrey Merck F4FXL - KC3FRA dcb5b4b455 Add empty targets for dependencies in sub make file
This forces make to check if dependency (eg ../Common/Common.a) is more
recent than the target
2018-11-11 18:35:30 +01:00
Geoffrey Merck F4FXL - KC3FRA e66484340b Add generation of dependency files
Generate dependency files so that when changing one file only stuff
dependant on that file gets rebuilt. Avoid cleaning the whole thing on
every small change
2018-11-11 17:13:17 +01:00
Jonathan Naylor dd2760b434 Add GUI makefiles for the other GUI capable programs. 2018-09-19 21:05:28 +01:00
Jonathan Naylor 0f3c92b67a Only build CLI versions except for when needed. 2018-05-16 22:15:11 +01:00
Jonathan Naylor 2af8d017fd Add package installation. 2018-05-15 21:19:47 +01:00
Jonathan Naylor bb602947f4 The beginning of Linux build support. 2018-05-15 19:32:38 +01:00
Jonathan Naylor 12d55cef37 Initial commit. 2018-05-09 19:23:17 +01:00