Commit graph

3069 commits

Author SHA1 Message Date
Jonathan Naylor 81e16b87f4 Rename MMDVM.ini to MMDVMHost.ini 2026-03-10 14:52:12 +00:00
Jonathan Naylor ed6c28c0c1
Merge pull request #856 from MW0MWZ/fix/mqtt-client-id
Fix MQTT client ID collision on 32-bit ARM userland
2026-03-08 15:16:08 +00:00
Andy Taylor 469306ff1f Add mosquitto_loop_stop before mosquitto_destroy in close()
The background network thread started by mosquitto_loop_start() was not
being stopped before mosquitto_destroy(), which can cause a use-after-free
if the thread is still running when the mosquitto structure is freed.
2026-03-08 14:16:34 +00:00
Andy Taylor 8efcac05e6 Fix MQTT client ID collision on ARM 32-bit userland with 64-bit kernel
The MQTT client ID was generated using sprintf with %ld and time(nullptr).
On platforms with 32-bit userland but 64-bit kernel (such as Raspberry Pi OS
and some custom Alpine Linux builds), time_t is a 64-bit long long but %ld
only reads 32 bits. Since the upper 32 bits of the current Unix timestamp
are zero, this always produces "MMDVMHost.0", causing client ID collisions
when multiple instances or restarts occur.

Replace time()-based client IDs with PID-based IDs using getpid(), which is
always a 32-bit value and unique per process. Platform-guarded for Windows
(_getpid) and POSIX (getpid).
2026-03-08 12:49:26 +00:00
Jonathan Naylor f2c45f2ae5 Fix a bad merge. 2026-02-27 16:43:04 +00:00
Jonathan Naylor f569e7c921 Cleanup after the merge. 2026-02-26 14:31:04 +00:00
Jonathan Naylor bb7295cb08
Merge pull request #852 from F4FXL/fix/FastData
Enable and fix DStar Fast Data
2026-02-26 14:14:03 +00:00
Jonathan Naylor 03efef08d8
Merge branch 'master' into fix/FastData 2026-02-26 14:13:51 +00:00
Jonathan Naylor b048a2929f Hopefully fix some compilation problems. 2026-02-26 13:55:01 +00:00
Jonathan Naylor 4b2d6cf891
Merge pull request #853 from radongc/feat/motorola-talk-permit-tone-implementation 2026-02-20 21:27:33 +00:00
radongc cbeb2ed96a Fix typo. 2026-02-20 15:08:21 -05:00
radongc e68ab470ed Handle talk permit tone P25_LCF_GROUP. 2026-02-20 15:00:39 -05:00
Jonathan Naylor eda98ae163 Compilation warning fixes. 2026-02-19 16:17:03 +00:00
Jonathan Naylor ca24f49998 Merge branch 'master' of github.com:g4klx/MMDVMHost 2026-02-19 16:05:55 +00:00
Jonathan Naylor cb96c08f9c Fixed merge. 2026-02-19 16:02:48 +00:00
Jonathan Naylor 76d4f0d1a1 Merge branch 'master' into mqtt 2026-02-18 13:54:01 +00:00
Geoffrey Merck 28c21f74b3 remove debug message clarify comment 2026-01-27 21:25:15 +01:00
Geoffrey Merck 876f58c05c Add lookback in fast data handling to prevent first voice frame to get killed by FEC 2026-01-26 20:19:40 +01:00
Geoffrey Merck d3ed3ce8d2 reeanable fast data 2026-01-23 22:17:27 +01:00
Jonathan Naylor 05b10ac544
Merge pull request #849 from MW0MWZ/master
MMDVMHost Nextion Commands
2025-09-25 14:49:50 +01:00
Andy Taylor 025273844f MMDVMHost Nextion Commands 2025-09-24 12:01:31 +01:00
Jonathan Naylor 43783d6abc
Merge pull request #848 from JimZAH/freebsd-compile-fixes
Freebsd compile fixes
2025-09-20 18:44:05 +01:00
jimzah 7d105371e9 Spacing
Signed-off-by: jimzah <me@james.ac>
2025-09-20 13:10:10 +01:00
jimzah c94276a714 FreeBSD: include libutil.h
Signed-off-by: jimzah <me@james.ac>
2025-09-20 12:57:49 +01:00
jimzah d4fa52272b RTM_VERSION: Should be RTM_VERSION
Signed-off-by: jimzah <me@james.ac>
2025-09-20 12:50:46 +01:00
Jonathan Naylor 89b9fc2ed6
Merge pull request #846 from MW0MWZ/master 2025-09-16 08:44:52 +01:00
Andy Taylor aa3555083b Artifact cleanup 2025-09-16 01:14:27 +01:00
Andy Taylor 6f25ab158d Fix free(): double free detected in tcache 2025-09-09 00:26:59 +01:00
Jonathan Naylor 1dc505f9d2 Merge branch 'master' into mqtt 2025-08-28 16:51:48 +01:00
Jonathan Naylor 28eb0e6200 Fix empty AX.25 V2 parameters. 2025-08-28 16:35:55 +01:00
Jonathan Naylor 1e2e0c7431 M17 and AX.25 removal cleanups. 2025-08-27 17:51:15 +01:00
Jonathan Naylor d085ca8b0f Merge branch 'master' into mqtt 2025-08-27 17:02:37 +01:00
Jonathan Naylor 010c1249ee Update to VS2022. 2025-08-26 17:16:00 +01:00
Jonathan Naylor bd6b3d58ca Update README.md 2025-08-26 17:08:55 +01:00
Jonathan Naylor 7adccd2123 Remove the last vestage of AX.25 from the code. 2025-08-26 15:18:19 +01:00
Jonathan Naylor cf97dc3096 Remove AX.25 2025-08-26 15:14:00 +01:00
Jonathan Naylor 9720c7a40d Make space for dPMR. 2025-07-09 13:38:55 +01:00
Jonathan Naylor 994bff73ba
Merge pull request #845 from W0CHP/master
Fix up OLED formating by leveraging more cursor pos. calls
2025-06-09 13:36:19 +01:00
Jonathan Naylor ee4461866c
Merge pull request #844 from f1rmb/f1rmb_nullptr_vs_NULL_with_getaddrinfo
Fix missing NXDN Net config entry handling and wrong getaddrinfo() argument.
2025-06-09 13:35:52 +01:00
Chipster 92215d0dc2 Fix up OLED formating by leveraging more cursor pos. calls 2025-06-08 04:03:10 -05:00
Daniel Caujolle-Bert 2e24ba1f41 Reintroduce [NXDN Network]::Protocol config item, as it got deleted at some point.
Fix nullptr instead of NULL argument usage in getaddrinfo().
Bump version.
2025-06-07 17:31:46 +02:00
Jonathan Naylor 2b69832d16
Merge pull request #842 from f1rmb/f1rmb_fix_windows_build
Fix Windows build (few warnings and a wrong file descriptor comparison).
2025-06-02 16:09:49 +01:00
Daniel Caujolle-Bert 14ee06fed0 Fix Windows build (few warnings and a wrong file descriptor comparison). 2025-06-02 17:06:12 +02:00
Jonathan Naylor d142e89a2d
Merge pull request #841 from f1rmb/f1rmb_enable_disable_mode_cleanup_and_fixes_take_2
Some cleanups and fixes with modes enability.
2025-06-02 14:05:18 +01:00
Daniel Caujolle-Bert 065dd7aab1 Merge enableMode()/disableMode() to processEnableModeCommand(). 2025-05-30 09:22:48 +02:00
Daniel Caujolle-Bert 7d2da549c2 CDMRSlot::clock(),
CDStarControl::clock(),
CM17Control::clock(),
CNXDNControl::clock(),
CP25Control::clock(),
CYSFControl::clock():
  - Leave ASAP when it's disabled.

CDMRSlot::enable(),
CDStarControl::enable(),
CM17Control::enable(),
CNXDNControl::enable(),
CP25Control::enable(),
CYSFControl::enable():
  - Log a message when Controller get disabled while running, "<MODE>, RF user has timed out" or "<MODE>, network user has timed out", depending of the RF/Net state.

CMMDVMHost::run():
  - After getting the modem data, don't handle it (read/write<Controler>, etc) if the given mode is not enabled.

MMDVMHost:
  - Rename CMMDVMHost::processEnableCommand() to CMMDVMHost::enableModemMode().
  - Add CMMDVMHost::enableMode() and CMMDVMHost::disableMode(), called now from CMMDVMHost::remoteControl(), which clarify the code.
  - CMMDVMHost::remoteControl():
    * Fix indentation,
    * Simplify ENABLE_x/DISABLE_x cases code.
  - CMMDVMHost::setMode():
    * Enable pocsag network only if m_pocsagEnabled is true,
    * Enable ax25 network only if m_ax25Enabled is true (not m_fmEnabled).
2025-05-29 18:29:42 +02:00
Jonathan Naylor b26e8c3f2f
Merge pull request #837 from f1rmb/f1rmb_force_IDLE_when_disabling_mode
Set mode to IDLE when disabling a mode currently in use.
2025-05-07 13:21:46 +01:00
Daniel Caujolle-Bert 7462c143af Set mode to IDLE when disabling a mode currently in use. 2025-04-28 07:08:12 +02:00
Jonathan Naylor dc0c6b146c Merge branch 'master' into mqtt 2025-04-24 14:42:22 +01:00
Jonathan Naylor 8e0705e2a9 Switch off D-Star fast data for now. 2025-04-24 14:41:45 +01:00