diff --git a/CHANGELOG.md b/CHANGELOG.md index d25ab0b..5393340 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -All notable changes to **adn-server** are documented here. Versioning follows [SemVer](https://semver.org/). +All notable changes to **adn-server** are documented here. ## [Unreleased] diff --git a/README.md b/README.md index a71077d..f80e21e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ADN DMR Peer Server -**Version 1.0.0** — first stable release (SemVer). Compatible with **adn-monitor 1.0.0**. +**Version 1.0.0** — first stable release. Compatible with **adn-monitor 1.0.0**. ADN DMR conference bridge server. Configuration is YAML; the codebase follows clean architecture (domain, application, infrastructure). diff --git a/src/adn_server/application/proxy/__init__.py b/src/adn_server/application/proxy/__init__.py index f0da312..3733165 100644 --- a/src/adn_server/application/proxy/__init__.py +++ b/src/adn_server/application/proxy/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application proxy init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Proxy application layer (Phase 3).""" from .deployment import is_proxy_inject_only, normalize_proxy_target, proxy_target_system diff --git a/src/adn_server/application/proxy/deployment.py b/src/adn_server/application/proxy/deployment.py index 952381c..6098c90 100644 --- a/src/adn_server/application/proxy/deployment.py +++ b/src/adn_server/application/proxy/deployment.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application proxy deployment +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Proxy deployment policy from config dict (no I/O; used at startup/reload).""" from __future__ import annotations diff --git a/src/adn_server/application/proxy/packet_helpers.py b/src/adn_server/application/proxy/packet_helpers.py index 413c9fb..bf536cd 100644 --- a/src/adn_server/application/proxy/packet_helpers.py +++ b/src/adn_server/application/proxy/packet_helpers.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application proxy packet helpers +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Extract peer_id from Homebrew packets (legacy ``adn_proxy.application.packet_commands``).""" from __future__ import annotations diff --git a/src/adn_server/application/proxy/session_teardown.py b/src/adn_server/application/proxy/session_teardown.py index d73a927..62ccd5a 100644 --- a/src/adn_server/application/proxy/session_teardown.py +++ b/src/adn_server/application/proxy/session_teardown.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application proxy session teardown +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Wire packets for proxy session teardown (legacy reaper parity).""" from __future__ import annotations diff --git a/src/adn_server/application/proxy/use_cases.py b/src/adn_server/application/proxy/use_cases.py index 5995db4..7b4096d 100644 --- a/src/adn_server/application/proxy/use_cases.py +++ b/src/adn_server/application/proxy/use_cases.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application proxy use cases +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """ProxyService use cases: client registration, pending RPTO (Phase 3).""" from __future__ import annotations diff --git a/src/adn_server/application/report/__init__.py b/src/adn_server/application/report/__init__.py index 95ea7d5..80d94ee 100644 --- a/src/adn_server/application/report/__init__.py +++ b/src/adn_server/application/report/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application report init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Report application layer: payload mapping and protocol mode (no Twisted / wire bytes).""" from .queue import ( diff --git a/src/adn_server/application/report/dashboard_state.py b/src/adn_server/application/report/dashboard_state.py index 75cb5b8..0576f44 100644 --- a/src/adn_server/application/report/dashboard_state.py +++ b/src/adn_server/application/report/dashboard_state.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application report dashboard state +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Minimal dashboard snapshot for external MQTT consumers (not full topology / routing).""" from __future__ import annotations diff --git a/src/adn_server/application/report/monitor_topology.py b/src/adn_server/application/report/monitor_topology.py index 4a524ec..35a9beb 100644 --- a/src/adn_server/application/report/monitor_topology.py +++ b/src/adn_server/application/report/monitor_topology.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application report monitor topology +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Monitor topology parity for inject-only proxy (legacy SYSTEM-N / 56400+N). Hotspot radio IDs often share a user/subscriber prefix, e.g. user ``7300391`` with diff --git a/src/adn_server/application/report/payloads.py b/src/adn_server/application/report/payloads.py index 8a88ba9..9334580 100644 --- a/src/adn_server/application/report/payloads.py +++ b/src/adn_server/application/report/payloads.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application report payloads +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Map runtime SYSTEMS / BRIDGES / BRDG_EVENT CSV to report JSON payloads (application layer).""" from __future__ import annotations diff --git a/src/adn_server/application/report/queue.py b/src/adn_server/application/report/queue.py index 1503a27..05dc125 100644 --- a/src/adn_server/application/report/queue.py +++ b/src/adn_server/application/report/queue.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application report queue +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Bounded in-process report queue — decouple hot path from TCP encode/send.""" from __future__ import annotations diff --git a/src/adn_server/application/routing/__init__.py b/src/adn_server/application/routing/__init__.py index c70ba78..045811c 100644 --- a/src/adn_server/application/routing/__init__.py +++ b/src/adn_server/application/routing/__init__.py @@ -1,2 +1,40 @@ -# Bridge routing submodules. -# Public API: RoutingUseCases in adn_server.application.routing_use_cases. +# ADN DMR Peer Server - application routing init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### diff --git a/src/adn_server/application/routing/hbp_forward.py b/src/adn_server/application/routing/hbp_forward.py index a7b8a8b..8bdc3d9 100644 --- a/src/adn_server/application/routing/hbp_forward.py +++ b/src/adn_server/application/routing/hbp_forward.py @@ -1,5 +1,43 @@ # ADN DMR Peer Server - bridge HBP forward path +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """HBP ingress packet control and unit-data forward (no Twisted imports).""" @@ -179,4 +217,3 @@ class HbpForwardMixin: d_system, int_id(stream_id), int_id(peer_id), int_id(rf_src), 1, int_id(dst_id), ) ) - diff --git a/src/adn_server/application/routing/helpers.py b/src/adn_server/application/routing/helpers.py index 26f4580..92b6271 100644 --- a/src/adn_server/application/routing/helpers.py +++ b/src/adn_server/application/routing/helpers.py @@ -1,5 +1,43 @@ # ADN DMR Peer Server - bridge helpers +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Shared bridge routing helpers (no Twisted).""" diff --git a/src/adn_server/application/routing/lc_ta.py b/src/adn_server/application/routing/lc_ta.py index dde7476..739e7e4 100644 --- a/src/adn_server/application/routing/lc_ta.py +++ b/src/adn_server/application/routing/lc_ta.py @@ -1,5 +1,43 @@ # ADN DMR Peer Server - bridge LC / Talker Alias +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Embedded LC rewrite and Talker Alias bridge coordination (no Twisted).""" @@ -466,4 +504,3 @@ class LcTaMixin: st.pop("TX_TA_BLOCK_COUNT", None) st.pop("TX_TA_ON", None) st.pop("_ta_embed_kind", None) - diff --git a/src/adn_server/application/routing/obp_forward.py b/src/adn_server/application/routing/obp_forward.py index a76b28f..cdbd7b4 100644 --- a/src/adn_server/application/routing/obp_forward.py +++ b/src/adn_server/application/routing/obp_forward.py @@ -1,5 +1,43 @@ # ADN DMR Peer Server - bridge OBP forward path +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """OpenBridge ingress routing and unit-data forward (no Twisted imports).""" @@ -421,4 +459,3 @@ class ObpForwardMixin: target, int_id(stream_id), int_id(peer_id), int_id(rf_src), 1, int_id(dst_id), ) ) - diff --git a/src/adn_server/application/routing/peer_downlink_index.py b/src/adn_server/application/routing/peer_downlink_index.py index 587b00f..0c2125f 100644 --- a/src/adn_server/application/routing/peer_downlink_index.py +++ b/src/adn_server/application/routing/peer_downlink_index.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application routing peer downlink index +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Inject-only MASTER downlink: narrow peer fan-out by (slot, TGID). Legacy ``send_peers`` scans every registered peer per packet. On inject-only diff --git a/src/adn_server/application/routing/store_authority_mixin.py b/src/adn_server/application/routing/store_authority_mixin.py index a55e00a..00174d1 100644 --- a/src/adn_server/application/routing/store_authority_mixin.py +++ b/src/adn_server/application/routing/store_authority_mixin.py @@ -1,5 +1,43 @@ # ADN DMR Peer Server - subscription store authority +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """``SubscriptionStore`` is the sole runtime routing authority; monitor uses export shim only.""" diff --git a/src/adn_server/application/routing/subscription_table.py b/src/adn_server/application/routing/subscription_table.py index 75a47aa..d3eef53 100644 --- a/src/adn_server/application/routing/subscription_table.py +++ b/src/adn_server/application/routing/subscription_table.py @@ -1,5 +1,43 @@ # ADN DMR Peer Server - bridge table management +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """BRIDGES table lifecycle: create, static TG, OPTIONS refresh (no Twisted).""" @@ -777,4 +815,3 @@ class SubscriptionTableMixin: lines.append("".join(parts)) if len(lines) > 1: logger.debug("\n".join(lines)) - diff --git a/src/adn_server/application/routing/timers.py b/src/adn_server/application/routing/timers.py index 4374eb4..e617b89 100644 --- a/src/adn_server/application/routing/timers.py +++ b/src/adn_server/application/routing/timers.py @@ -1,5 +1,43 @@ # ADN DMR Peer Server - bridge timer loops +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Legacy bridge timer / trimmer loops (no Twisted imports).""" @@ -350,4 +388,4 @@ class RoutingTimerMixin: logger.debug("(ROUTER) STAT trimmer loop started") from ..subscription.stat_trimmer_ops import apply_stat_trimmer_store - apply_stat_trimmer_store(self._subscription_store) \ No newline at end of file + apply_stat_trimmer_store(self._subscription_store) diff --git a/src/adn_server/application/routing/voice_subscription.py b/src/adn_server/application/routing/voice_subscription.py index 1894755..98020ed 100644 --- a/src/adn_server/application/routing/voice_subscription.py +++ b/src/adn_server/application/routing/voice_subscription.py @@ -1,3 +1,44 @@ +# ADN DMR Peer Server - application routing voice subscription +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### +# +# Derived from ADN DMR Server / FreeDMR / HBlink. Original license: +############################################################################### +# Copyright (C) 2026 Joaquin Madrid Belando, EA5GVK +# Copyright (C) 2020 Simon Adlem, G7RZU +# Copyright (C) 2016-2019 Cortney T. Buffington, N0MJS +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Subscription router helpers for the voice hot path.""" from __future__ import annotations diff --git a/src/adn_server/application/runtime_context.py b/src/adn_server/application/runtime_context.py index b8c5798..a78ad0f 100644 --- a/src/adn_server/application/runtime_context.py +++ b/src/adn_server/application/runtime_context.py @@ -1,5 +1,22 @@ # ADN DMR Peer Server - runtime context holder +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Runtime config container and atomic pointer swap on SIGHUP reload.""" diff --git a/src/adn_server/application/subscription/__init__.py b/src/adn_server/application/subscription/__init__.py index 85d9ced..26294bc 100644 --- a/src/adn_server/application/subscription/__init__.py +++ b/src/adn_server/application/subscription/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Subscription application helpers.""" from .routing_table_export import export_routing_table, subscription_to_legacy_row diff --git a/src/adn_server/application/subscription/in_band_signalling_ops.py b/src/adn_server/application/subscription/in_band_signalling_ops.py index 2629d8a..19d87f5 100644 --- a/src/adn_server/application/subscription/in_band_signalling_ops.py +++ b/src/adn_server/application/subscription/in_band_signalling_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription in band signalling ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native in-band VTERM signalling.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/ingress.py b/src/adn_server/application/subscription/ingress.py index b8fb42b..3e0be21 100644 --- a/src/adn_server/application/subscription/ingress.py +++ b/src/adn_server/application/subscription/ingress.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription ingress +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Build immutable ``VoiceIngress`` from DMRD receive parameters (legacy ``dmrd_received``).""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/obp_source_ops.py b/src/adn_server/application/subscription/obp_source_ops.py index 72f1597..e03404c 100644 --- a/src/adn_server/application/subscription/obp_source_ops.py +++ b/src/adn_server/application/subscription/obp_source_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription obp source ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native OBP source leg ensure.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/router.py b/src/adn_server/application/subscription/router.py index ce1b20f..46d3e2f 100644 --- a/src/adn_server/application/subscription/router.py +++ b/src/adn_server/application/subscription/router.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription router +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Resolve voice ingress to forward legs using the subscription store.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/routing_table_export.py b/src/adn_server/application/subscription/routing_table_export.py index 3c60781..2f7d83a 100644 --- a/src/adn_server/application/subscription/routing_table_export.py +++ b/src/adn_server/application/subscription/routing_table_export.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription routing table export +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """One-way export: SubscriptionStore → legacy ``BRIDGES`` dict (D-08).""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/routing_table_import.py b/src/adn_server/application/subscription/routing_table_import.py index b66418e..43bfe29 100644 --- a/src/adn_server/application/subscription/routing_table_import.py +++ b/src/adn_server/application/subscription/routing_table_import.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription routing table import +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Import legacy ``BRIDGES`` rows into domain subscriptions (mirror of ``bridges_export``).""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/routing_table_legacy_view.py b/src/adn_server/application/subscription/routing_table_legacy_view.py index 215f3d7..827ca60 100644 --- a/src/adn_server/application/subscription/routing_table_legacy_view.py +++ b/src/adn_server/application/subscription/routing_table_legacy_view.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription routing table legacy view +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Legacy BRIDGES view from ``SubscriptionStore`` (v1 monitor shim, D-08).""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/rule_timer_ops.py b/src/adn_server/application/subscription/rule_timer_ops.py index ab5c360..03cc6e0 100644 --- a/src/adn_server/application/subscription/rule_timer_ops.py +++ b/src/adn_server/application/subscription/rule_timer_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription rule timer ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native rule_timer_loop; mirrors legacy BRIDGES row semantics.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/stat_trimmer_ops.py b/src/adn_server/application/subscription/stat_trimmer_ops.py index 2b4877d..6f3a416 100644 --- a/src/adn_server/application/subscription/stat_trimmer_ops.py +++ b/src/adn_server/application/subscription/stat_trimmer_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription stat trimmer ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native stat_trimmer_loop.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/store_sync.py b/src/adn_server/application/subscription/store_sync.py index 14e0dc7..b6c3009 100644 --- a/src/adn_server/application/subscription/store_sync.py +++ b/src/adn_server/application/subscription/store_sync.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription store sync +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Import legacy ``BRIDGES`` snapshots into ``SubscriptionStore``. Runtime hot paths mutate the store directly and publish via ``export_routing_table``; they must not diff --git a/src/adn_server/application/subscription/subscription_debug_ops.py b/src/adn_server/application/subscription/subscription_debug_ops.py index 9af835b..f38830a 100644 --- a/src/adn_server/application/subscription/subscription_debug_ops.py +++ b/src/adn_server/application/subscription/subscription_debug_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription subscription debug ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native subscription_debug_loop.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/subscription_queries.py b/src/adn_server/application/subscription/subscription_queries.py index 6de9258..43b2298 100644 --- a/src/adn_server/application/subscription/subscription_queries.py +++ b/src/adn_server/application/subscription/subscription_queries.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription subscription queries +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Read-only queries on ``SubscriptionStore`` (runtime routing authority).""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/subscription_reset_ops.py b/src/adn_server/application/subscription/subscription_reset_ops.py index 95af90a..43efd8f 100644 --- a/src/adn_server/application/subscription/subscription_reset_ops.py +++ b/src/adn_server/application/subscription/subscription_reset_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription subscription reset ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native subscription_reset_loop helpers.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/subscription_table_ops.py b/src/adn_server/application/subscription/subscription_table_ops.py index 00b34a5..1446dfa 100644 --- a/src/adn_server/application/subscription/subscription_table_ops.py +++ b/src/adn_server/application/subscription/subscription_table_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription subscription table ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native bridge table mutations: OPTIONS, static TG, UA, reflectors.""" from __future__ import annotations diff --git a/src/adn_server/application/subscription/trigger_bytes.py b/src/adn_server/application/subscription/trigger_bytes.py index f1b5587..b4f416f 100644 --- a/src/adn_server/application/subscription/trigger_bytes.py +++ b/src/adn_server/application/subscription/trigger_bytes.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - application subscription trigger bytes +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Normalize legacy BRIDGES ON/OFF/RESET lists to bytes tuples.""" from __future__ import annotations diff --git a/src/adn_server/application/talker_alias_use_cases.py b/src/adn_server/application/talker_alias_use_cases.py index 1943eb1..5e401ab 100644 --- a/src/adn_server/application/talker_alias_use_cases.py +++ b/src/adn_server/application/talker_alias_use_cases.py @@ -1,5 +1,22 @@ # ADN DMR Peer Server - Talker Alias use cases +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Talker Alias policy: template formatting, inject vs passthrough.""" diff --git a/src/adn_server/domain/dmr/__init__.py b/src/adn_server/domain/dmr/__init__.py index bf25205..bf79dd9 100644 --- a/src/adn_server/domain/dmr/__init__.py +++ b/src/adn_server/domain/dmr/__init__.py @@ -1,7 +1,22 @@ # ADN DMR Peer Server - DMR codec (domain) +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY # -# Vendored from dmr_utils3 (HBlink / N0MJS, G4KLX). GPL v3 — see file headers in submodules. +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Pure DMR BPTC/decode/const (no Twisted or I/O).""" diff --git a/src/adn_server/domain/dmr/bptc.py b/src/adn_server/domain/dmr/bptc.py index 21b5c7b..4040aa5 100644 --- a/src/adn_server/domain/dmr/bptc.py +++ b/src/adn_server/domain/dmr/bptc.py @@ -1,4 +1,26 @@ #!/usr/bin/env python +# ADN DMR Peer Server - domain dmr bptc +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + +# +# Ported from dmr_utils3 / HBlink (N0MJS). Original license: # ############################################################################### # Copyright (C) 2016-2018 Cortney T. Buffington, N0MJS @@ -260,4 +282,4 @@ if __name__ == '__main__': print('Encoded Data: Burst B:{} Burst C:{} Burst D:{} Burst E:{}'.format(ahex(emblc[1].tobytes()), ahex(emblc[2].tobytes()), ahex(emblc[3].tobytes()), ahex(emblc[4].tobytes()))) print('Endoding Time: {}'.format(encode_time)) print('Decoded data: {}'.format(ahex(decemblc))) - print('Decoding Time: {}'.format(decode_time)) \ No newline at end of file + print('Decoding Time: {}'.format(decode_time)) diff --git a/src/adn_server/domain/dmr/const.py b/src/adn_server/domain/dmr/const.py index 67375c1..4a1efb8 100644 --- a/src/adn_server/domain/dmr/const.py +++ b/src/adn_server/domain/dmr/const.py @@ -1,4 +1,26 @@ #!/usr/bin/env python +# ADN DMR Peer Server - domain dmr const +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + +# +# Ported from dmr_utils3 / HBlink (N0MJS). Original license: # ############################################################################### # Copyright (C) 2016-2018 Cortney T. Buffington, N0MJS diff --git a/src/adn_server/domain/dmr/crc.py b/src/adn_server/domain/dmr/crc.py index bc4d731..7c100a0 100644 --- a/src/adn_server/domain/dmr/crc.py +++ b/src/adn_server/domain/dmr/crc.py @@ -1,4 +1,26 @@ #!/usr/bin/env python +# ADN DMR Peer Server - domain dmr crc +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + +# +# Ported from dmr_utils3 / HBlink (N0MJS). Original license: # ############################################################################### # Copyright (C) 2016-2018 Cortney T. Buffington, N0MJS @@ -49,4 +71,4 @@ if __name__ == '__main__': message = b'\x00\x10\x20\x00\x0c\x30\x2f\x9b\xe5' result = csum5(message) - print(result, type(result)) \ No newline at end of file + print(result, type(result)) diff --git a/src/adn_server/domain/dmr/decode.py b/src/adn_server/domain/dmr/decode.py index da6c33d..83ec4a8 100644 --- a/src/adn_server/domain/dmr/decode.py +++ b/src/adn_server/domain/dmr/decode.py @@ -1,4 +1,26 @@ #!/usr/bin/env python +# ADN DMR Peer Server - domain dmr decode +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + +# +# Ported from dmr_utils3 / HBlink (N0MJS). Original license: # ############################################################################### # Copyright (C) 2016-2018 Cortney T. Buffington, N0MJS @@ -181,4 +203,4 @@ if __name__ == '__main__': lc = voice_head_term(voice_term) t1 = time() print('LC: OPT-{} SRC-{} DST-{} SLOT TYPE: CC-{} DTYPE-{}'.format(ahex(lc['LC'][0:3]),ahex(lc['LC'][3:6]),ahex(lc['LC'][6:9]),ahex(lc['CC']),ahex(lc['DTYPE']))) - print('Decode Time: {}\n'.format(t1-t0)) \ No newline at end of file + print('Decode Time: {}\n'.format(t1-t0)) diff --git a/src/adn_server/domain/dmr/hamming.py b/src/adn_server/domain/dmr/hamming.py index 6496429..8901438 100644 --- a/src/adn_server/domain/dmr/hamming.py +++ b/src/adn_server/domain/dmr/hamming.py @@ -1,4 +1,26 @@ #!/usr/bin/env python +# ADN DMR Peer Server - domain dmr hamming +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + +# +# Ported from dmr_utils3 / HBlink (N0MJS). Original license: # ############################################################################### # Copyright (C) 2016-2018 Cortney T. Buffington, N0MJS @@ -72,4 +94,4 @@ def enc_16114(_data): csum[2] = _data[2] ^ _data[3] ^ _data[4] ^ _data[5] ^ _data[7] ^ _data[9] ^ _data[10] csum[3] = _data[0] ^ _data[1] ^ _data[2] ^ _data[4] ^ _data[6] ^ _data[7] ^ _data[10] csum[4] = _data[0] ^ _data[2] ^ _data[5] ^ _data[6] ^ _data[8] ^ _data[9] ^ _data[10] - return csum \ No newline at end of file + return csum diff --git a/src/adn_server/domain/dmr/rs129.py b/src/adn_server/domain/dmr/rs129.py index 7ca27bd..ae630b7 100644 --- a/src/adn_server/domain/dmr/rs129.py +++ b/src/adn_server/domain/dmr/rs129.py @@ -1,4 +1,26 @@ #!/usr/bin/env python +# ADN DMR Peer Server - domain dmr rs129 +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + +# +# Ported from dmr_utils3 / HBlink (N0MJS). Original license: # ############################################################################### # Copyright (C) 2016 Cortney T. Buffington, N0MJS diff --git a/src/adn_server/domain/mesh_routing.py b/src/adn_server/domain/mesh_routing.py index 7c7b93f..b6b3b0a 100644 --- a/src/adn_server/domain/mesh_routing.py +++ b/src/adn_server/domain/mesh_routing.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - domain mesh routing +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Immutable mesh wire messages (Phase 2).""" from __future__ import annotations diff --git a/src/adn_server/domain/proxy.py b/src/adn_server/domain/proxy.py index 3d12b40..6e6baac 100644 --- a/src/adn_server/domain/proxy.py +++ b/src/adn_server/domain/proxy.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - domain proxy +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Hotspot proxy domain: client sessions (Phase 3).""" from __future__ import annotations diff --git a/src/adn_server/domain/subscription.py b/src/adn_server/domain/subscription.py index 6569fb4..4d36278 100644 --- a/src/adn_server/domain/subscription.py +++ b/src/adn_server/domain/subscription.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - domain subscription +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Subscription model: logical TG channels and per-system participation (Phase 2).""" from __future__ import annotations diff --git a/src/adn_server/domain/talker_alias.py b/src/adn_server/domain/talker_alias.py index 3546bae..b8481ef 100644 --- a/src/adn_server/domain/talker_alias.py +++ b/src/adn_server/domain/talker_alias.py @@ -1,5 +1,22 @@ # ADN DMR Peer Server - DMR Talker Alias (ETSI / MMDVMHost) +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Talker Alias encode/decode and HBP DMRA packet builders (UTF-8 format 2).""" diff --git a/src/adn_server/domain/voice_routing.py b/src/adn_server/domain/voice_routing.py index dc8709b..0c9193c 100644 --- a/src/adn_server/domain/voice_routing.py +++ b/src/adn_server/domain/voice_routing.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - domain voice routing +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Immutable voice routing messages (Phase 2).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/bootstrap/__init__.py b/src/adn_server/infrastructure/bootstrap/__init__.py index 201b64e..c6cca0f 100644 --- a/src/adn_server/infrastructure/bootstrap/__init__.py +++ b/src/adn_server/infrastructure/bootstrap/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure bootstrap init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Runtime bootstrap (wiring extracted from main).""" from .peer_server import run_peer_server diff --git a/src/adn_server/infrastructure/bootstrap/peer_server.py b/src/adn_server/infrastructure/bootstrap/peer_server.py index 3eeaf37..4453246 100644 --- a/src/adn_server/infrastructure/bootstrap/peer_server.py +++ b/src/adn_server/infrastructure/bootstrap/peer_server.py @@ -1,5 +1,22 @@ # ADN DMR Peer Server - peer runtime bootstrap +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Wire use cases, listeners, and reactor loops (extracted from main).""" diff --git a/src/adn_server/infrastructure/config_push_throttle.py b/src/adn_server/infrastructure/config_push_throttle.py index 6a74182..9b2ed01 100644 --- a/src/adn_server/infrastructure/config_push_throttle.py +++ b/src/adn_server/infrastructure/config_push_throttle.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure config push throttle +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Adaptive debounce for CONFIG_SND pushes during mass peer login.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/config_reload.py b/src/adn_server/infrastructure/config_reload.py index 211b28a..428cc58 100644 --- a/src/adn_server/infrastructure/config_reload.py +++ b/src/adn_server/infrastructure/config_reload.py @@ -1,5 +1,22 @@ # ADN DMR Peer Server - hot reload adn-server.yaml +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Reload SYSTEMS / GLOBAL from adn-server.yaml without full process restart.""" diff --git a/src/adn_server/infrastructure/doctor.py b/src/adn_server/infrastructure/doctor.py index 186d5da..a952069 100644 --- a/src/adn_server/infrastructure/doctor.py +++ b/src/adn_server/infrastructure/doctor.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure doctor +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Config and bind readiness checks (no reactor).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/mesh/__init__.py b/src/adn_server/infrastructure/mesh/__init__.py index 92fa638..a06b0cc 100644 --- a/src/adn_server/infrastructure/mesh/__init__.py +++ b/src/adn_server/infrastructure/mesh/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure mesh init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """OpenBridge / DMRE wire codecs and PeerTransport registry.""" from adn_server.infrastructure.mesh.registry import MeshCodecRegistry diff --git a/src/adn_server/infrastructure/mesh/dmre_v5.py b/src/adn_server/infrastructure/mesh/dmre_v5.py index 5a5fe25..55972cd 100644 --- a/src/adn_server/infrastructure/mesh/dmre_v5.py +++ b/src/adn_server/infrastructure/mesh/dmre_v5.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure mesh dmre v5 +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """FreeBridge DMRE v4/v5: BLAKE2b wire build and parse (no Twisted).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/mesh/obp_v1.py b/src/adn_server/infrastructure/mesh/obp_v1.py index ef01e60..b54da20 100644 --- a/src/adn_server/infrastructure/mesh/obp_v1.py +++ b/src/adn_server/infrastructure/mesh/obp_v1.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure mesh obp v1 +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """OpenBridge protocol v1: DMRD + HMAC-SHA1 control packets (no Twisted).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/mesh/registry.py b/src/adn_server/infrastructure/mesh/registry.py index 99ebda2..7a6b701 100644 --- a/src/adn_server/infrastructure/mesh/registry.py +++ b/src/adn_server/infrastructure/mesh/registry.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure mesh registry +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Registry for built-in mesh codecs (``MESH_PROTOCOL``: auto, dmre_v5, obp_v1).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/mesh/transports.py b/src/adn_server/infrastructure/mesh/transports.py index 54b9eeb..dfe3c96 100644 --- a/src/adn_server/infrastructure/mesh/transports.py +++ b/src/adn_server/infrastructure/mesh/transports.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure mesh transports +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Built-in ``PeerTransport`` implementations wrapping mesh wire codecs.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/parrot/__init__.py b/src/adn_server/infrastructure/parrot/__init__.py index 5b194f8..4729d8a 100644 --- a/src/adn_server/infrastructure/parrot/__init__.py +++ b/src/adn_server/infrastructure/parrot/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure parrot init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Integrated parrot (playback) runtime.""" from .runtime import run_parrot diff --git a/src/adn_server/infrastructure/parrot/runtime.py b/src/adn_server/infrastructure/parrot/runtime.py index 6a5d9c9..8ae7017 100644 --- a/src/adn_server/infrastructure/parrot/runtime.py +++ b/src/adn_server/infrastructure/parrot/runtime.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure parrot runtime +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Wire parrot (playback) PEER systems at startup.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/__init__.py b/src/adn_server/infrastructure/proxy/__init__.py index aaeb61f..e0ee68c 100644 --- a/src/adn_server/infrastructure/proxy/__init__.py +++ b/src/adn_server/infrastructure/proxy/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Proxy infrastructure adapters (Phase 3).""" from .config import apply_proxy_env_overrides, proxy_settings diff --git a/src/adn_server/infrastructure/proxy/config.py b/src/adn_server/infrastructure/proxy/config.py index 1f2621a..34f2af2 100644 --- a/src/adn_server/infrastructure/proxy/config.py +++ b/src/adn_server/infrastructure/proxy/config.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy config +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """PROXY runtime settings from config dict (infrastructure; no business rules).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/hbp_adapters.py b/src/adn_server/infrastructure/proxy/hbp_adapters.py index d3d7c59..9388fe9 100644 --- a/src/adn_server/infrastructure/proxy/hbp_adapters.py +++ b/src/adn_server/infrastructure/proxy/hbp_adapters.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy hbp adapters +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """HBP adapters for proxy application ports.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/ip_blacklist.py b/src/adn_server/infrastructure/proxy/ip_blacklist.py index 80f0c24..9e64304 100644 --- a/src/adn_server/infrastructure/proxy/ip_blacklist.py +++ b/src/adn_server/infrastructure/proxy/ip_blacklist.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy ip blacklist +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """In-memory IP blacklist for proxy fan-in.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/null_self_service.py b/src/adn_server/infrastructure/proxy/null_self_service.py index 9c6043b..d25760d 100644 --- a/src/adn_server/infrastructure/proxy/null_self_service.py +++ b/src/adn_server/infrastructure/proxy/null_self_service.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy null self service +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """No-op self-service store when ``SELF_SERVICE.USE_SELFSERVICE`` is false.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/persistence/__init__.py b/src/adn_server/infrastructure/proxy/persistence/__init__.py index b1388af..b40be44 100644 --- a/src/adn_server/infrastructure/proxy/persistence/__init__.py +++ b/src/adn_server/infrastructure/proxy/persistence/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy persistence init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Proxy self-service persistence (MySQL Clients table).""" from .db_pool import create_pool, test_db diff --git a/src/adn_server/infrastructure/proxy/persistence/db_pool.py b/src/adn_server/infrastructure/proxy/persistence/db_pool.py index 10ca948..9553328 100644 --- a/src/adn_server/infrastructure/proxy/persistence/db_pool.py +++ b/src/adn_server/infrastructure/proxy/persistence/db_pool.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy persistence db pool +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Twisted adbapi MySQL pool for proxy self-service (legacy adn-proxy parity).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/persistence/proxy_repository.py b/src/adn_server/infrastructure/proxy/persistence/proxy_repository.py index 5675eed..7c45c0d 100644 --- a/src/adn_server/infrastructure/proxy/persistence/proxy_repository.py +++ b/src/adn_server/infrastructure/proxy/persistence/proxy_repository.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy persistence proxy repository +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """MySQL ``Clients`` table adapter (legacy ``ProxyDbRepository`` parity).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/reply_transport.py b/src/adn_server/infrastructure/proxy/reply_transport.py index def7ad9..84fc1c3 100644 --- a/src/adn_server/infrastructure/proxy/reply_transport.py +++ b/src/adn_server/infrastructure/proxy/reply_transport.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy reply transport +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Route MASTER HBP replies through the proxy fan-in UDP socket.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/rpto_queue.py b/src/adn_server/infrastructure/proxy/rpto_queue.py index 476b5f3..5152ccd 100644 --- a/src/adn_server/infrastructure/proxy/rpto_queue.py +++ b/src/adn_server/infrastructure/proxy/rpto_queue.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy rpto queue +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """In-memory pending RPTO queue (Phase 3).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/runtime.py b/src/adn_server/infrastructure/proxy/runtime.py index 31448f2..778cf86 100644 --- a/src/adn_server/infrastructure/proxy/runtime.py +++ b/src/adn_server/infrastructure/proxy/runtime.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy runtime +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Wire integrated hotspot proxy at startup (composition root wiring).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/self_service_bridge.py b/src/adn_server/infrastructure/proxy/self_service_bridge.py index dde11fe..d27885a 100644 --- a/src/adn_server/infrastructure/proxy/self_service_bridge.py +++ b/src/adn_server/infrastructure/proxy/self_service_bridge.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy self service bridge +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Self-service hooks on integrated proxy (legacy adn-proxy DB + RPTO parity).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/self_service_config.py b/src/adn_server/infrastructure/proxy/self_service_config.py index 608293f..de96cc4 100644 --- a/src/adn_server/infrastructure/proxy/self_service_config.py +++ b/src/adn_server/infrastructure/proxy/self_service_config.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy self service config +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """SELF_SERVICE block from config (same keys as adn-monitor / adn-proxy).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/session_executor.py b/src/adn_server/infrastructure/proxy/session_executor.py index 95ba0af..6efaaab 100644 --- a/src/adn_server/infrastructure/proxy/session_executor.py +++ b/src/adn_server/infrastructure/proxy/session_executor.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy session executor +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Execute proxy session teardown via application ports (infrastructure).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/slot_store.py b/src/adn_server/infrastructure/proxy/slot_store.py index 91da28a..3e9b4da 100644 --- a/src/adn_server/infrastructure/proxy/slot_store.py +++ b/src/adn_server/infrastructure/proxy/slot_store.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy slot store +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """In-memory proxy slot store (Phase 3).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/proxy/udp_fanin.py b/src/adn_server/infrastructure/proxy/udp_fanin.py index f409f8d..1c24093 100644 --- a/src/adn_server/infrastructure/proxy/udp_fanin.py +++ b/src/adn_server/infrastructure/proxy/udp_fanin.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure proxy udp fanin +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """UDP fan-in: hotspot LISTEN_PORT with in-process inject (Phase 3).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/subscription_store.py b/src/adn_server/infrastructure/subscription_store.py index 3c1304a..19f876c 100644 --- a/src/adn_server/infrastructure/subscription_store.py +++ b/src/adn_server/infrastructure/subscription_store.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure subscription store +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """In-memory subscription store (Phase 2 runtime routing authority).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/talker_alias_emblc.py b/src/adn_server/infrastructure/talker_alias_emblc.py index f1daab7..6e27435 100644 --- a/src/adn_server/infrastructure/talker_alias_emblc.py +++ b/src/adn_server/infrastructure/talker_alias_emblc.py @@ -1,5 +1,22 @@ # ADN DMR Peer Server - Talker Alias embedded LC wire encoding +# # Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### """Build embedded-LC burst dicts for Talker Alias (uses domain TA rules + domain DMR BPTC).""" diff --git a/src/adn_server/infrastructure/twisted_adapters/report/__init__.py b/src/adn_server/infrastructure/twisted_adapters/report/__init__.py index 1fe6994..a09596b 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/__init__.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Report wire encoder (infrastructure). Layering: diff --git a/src/adn_server/infrastructure/twisted_adapters/report/mqtt_config.py b/src/adn_server/infrastructure/twisted_adapters/report/mqtt_config.py index 101ff12..b5b0a61 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/mqtt_config.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/mqtt_config.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report mqtt config +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Parse optional REPORTS.MQTT settings (disabled unless explicitly enabled).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/twisted_adapters/report/mqtt_publisher.py b/src/adn_server/infrastructure/twisted_adapters/report/mqtt_publisher.py index 81a6288..52b9725 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/mqtt_publisher.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/mqtt_publisher.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report mqtt publisher +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Optional MQTT publisher for report v2 JSON (same payloads as TCP wire).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/twisted_adapters/report/mqtt_topics.py b/src/adn_server/infrastructure/twisted_adapters/report/mqtt_topics.py index ca3a548..167bff6 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/mqtt_topics.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/mqtt_topics.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report mqtt topics +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Map report v2 wire frames to MQTT topic suffixes.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/twisted_adapters/report/opcodes.py b/src/adn_server/infrastructure/twisted_adapters/report/opcodes.py index 421f433..3cc3aac 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/opcodes.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/opcodes.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report opcodes +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """TCP report channel opcodes (shared by all wire encoders).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/twisted_adapters/report/pickle_legacy.py b/src/adn_server/infrastructure/twisted_adapters/report/pickle_legacy.py index 438e353..c68e415 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/pickle_legacy.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/pickle_legacy.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report pickle legacy +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Pickle wire helpers for legacy report v1 monitor shim.""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/twisted_adapters/report/wire.py b/src/adn_server/infrastructure/twisted_adapters/report/wire.py index 9699703..7433ea0 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/wire.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/wire.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report wire +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Report wire: slim dashboard_state + voice_event to monitor (D-25).""" from __future__ import annotations diff --git a/src/adn_server/infrastructure/twisted_adapters/report/worker.py b/src/adn_server/infrastructure/twisted_adapters/report/worker.py index a295a17..744b401 100644 --- a/src/adn_server/infrastructure/twisted_adapters/report/worker.py +++ b/src/adn_server/infrastructure/twisted_adapters/report/worker.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - infrastructure twisted adapters report worker +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Twisted LoopingCall worker that drains the bounded report queue.""" from __future__ import annotations diff --git a/tests/__init__.py b/tests/__init__.py index e69de29..7aa2912 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -0,0 +1,19 @@ +# ADN DMR Peer Server - tests init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### diff --git a/tests/application/test_dashboard_state.py b/tests/application/test_dashboard_state.py index aac3035..25e32ef 100644 --- a/tests/application/test_dashboard_state.py +++ b/tests/application/test_dashboard_state.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application dashboard state +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Minimal dashboard_state payload.""" from __future__ import annotations diff --git a/tests/application/test_in_band_signalling_store_ops.py b/tests/application/test_in_band_signalling_store_ops.py index 438d69e..972e808 100644 --- a/tests/application/test_in_band_signalling_store_ops.py +++ b/tests/application/test_in_band_signalling_store_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application in band signalling store ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native in-band signalling.""" from __future__ import annotations diff --git a/tests/application/test_mesh_codec_registry.py b/tests/application/test_mesh_codec_registry.py index 220282f..0782ff2 100644 --- a/tests/application/test_mesh_codec_registry.py +++ b/tests/application/test_mesh_codec_registry.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application mesh codec registry +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """MeshCodecRegistry: auto decode and encode codec selection.""" from __future__ import annotations diff --git a/tests/application/test_monitor_report_contract.py b/tests/application/test_monitor_report_contract.py index 50f4204..83f1ffa 100644 --- a/tests/application/test_monitor_report_contract.py +++ b/tests/application/test_monitor_report_contract.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application monitor report contract +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Report ↔ monitor contract tests (would have caught the 2026-06 production outage). Unit tests on expansion/topology alone are insufficient: adn-monitor deletes masters diff --git a/tests/application/test_monitor_topology.py b/tests/application/test_monitor_topology.py index 05d3554..3770174 100644 --- a/tests/application/test_monitor_topology.py +++ b/tests/application/test_monitor_topology.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application monitor topology +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Monitor topology parity for inject-only proxy (legacy SYSTEM-N report shape).""" from __future__ import annotations diff --git a/tests/application/test_peer_single_downlink.py b/tests/application/test_peer_single_downlink.py index 3bc24be..3078175 100644 --- a/tests/application/test_peer_single_downlink.py +++ b/tests/application/test_peer_single_downlink.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application peer single downlink +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Per-peer SINGLE=1 downlink exclusivity (inject-only multi-hotspot).""" from __future__ import annotations diff --git a/tests/application/test_proxy_use_cases.py b/tests/application/test_proxy_use_cases.py index 8c97685..dfaeef7 100644 --- a/tests/application/test_proxy_use_cases.py +++ b/tests/application/test_proxy_use_cases.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application proxy use cases +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Proxy use cases and packet helpers (Phase 3).""" from __future__ import annotations diff --git a/tests/application/test_report_payloads.py b/tests/application/test_report_payloads.py index 8364159..4fa1062 100644 --- a/tests/application/test_report_payloads.py +++ b/tests/application/test_report_payloads.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application report payloads +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Unit tests for report payload builders.""" from __future__ import annotations diff --git a/tests/application/test_report_queue.py b/tests/application/test_report_queue.py index 0d110f0..b58082c 100644 --- a/tests/application/test_report_queue.py +++ b/tests/application/test_report_queue.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application report queue +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Unit tests for bounded report queue and queued sender.""" from __future__ import annotations diff --git a/tests/application/test_routing_table_export.py b/tests/application/test_routing_table_export.py index 140728d..fd5e0ce 100644 --- a/tests/application/test_routing_table_export.py +++ b/tests/application/test_routing_table_export.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application routing table export +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """One-way BRIDGES export from subscriptions.""" from __future__ import annotations diff --git a/tests/application/test_routing_table_import.py b/tests/application/test_routing_table_import.py index 9d4ec52..4f6d38a 100644 --- a/tests/application/test_routing_table_import.py +++ b/tests/application/test_routing_table_import.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application routing table import +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """BRIDGES → Subscription import (policy / role parity).""" from __future__ import annotations diff --git a/tests/application/test_routing_table_legacy_view.py b/tests/application/test_routing_table_legacy_view.py index 51a757c..d53b9c9 100644 --- a/tests/application/test_routing_table_legacy_view.py +++ b/tests/application/test_routing_table_legacy_view.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application routing table legacy view +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """RoutingTableLegacyView: subscription store → pickle BRIDGE_SND shim.""" from __future__ import annotations diff --git a/tests/application/test_rule_timer_store_ops.py b/tests/application/test_rule_timer_store_ops.py index f94ec6e..c9b9f42 100644 --- a/tests/application/test_rule_timer_store_ops.py +++ b/tests/application/test_rule_timer_store_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application rule timer store ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native rule_timer_ops.""" from __future__ import annotations diff --git a/tests/application/test_runtime_context.py b/tests/application/test_runtime_context.py index 6d70f25..7d427f6 100644 --- a/tests/application/test_runtime_context.py +++ b/tests/application/test_runtime_context.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application runtime context +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """RuntimeContext holder and ConfigProxy.""" from __future__ import annotations diff --git a/tests/application/test_stat_trimmer_store_ops.py b/tests/application/test_stat_trimmer_store_ops.py index 0d0262f..bf52253 100644 --- a/tests/application/test_stat_trimmer_store_ops.py +++ b/tests/application/test_stat_trimmer_store_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application stat trimmer store ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """stat_trimmer must not drop OBP STAT bridges while the source leg is active.""" from __future__ import annotations diff --git a/tests/application/test_store_authority_timers.py b/tests/application/test_store_authority_timers.py index 1640b5e..1174892 100644 --- a/tests/application/test_store_authority_timers.py +++ b/tests/application/test_store_authority_timers.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application store authority timers +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Subscription store stays aligned after timer and bridge mutations.""" from __future__ import annotations diff --git a/tests/application/test_store_sync.py b/tests/application/test_store_sync.py index b802339..c28944a 100644 --- a/tests/application/test_store_sync.py +++ b/tests/application/test_store_sync.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application store sync +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """SubscriptionStore sync from BRIDGES.""" from __future__ import annotations diff --git a/tests/application/test_subscription_router.py b/tests/application/test_subscription_router.py index b92bd10..0b34710 100644 --- a/tests/application/test_subscription_router.py +++ b/tests/application/test_subscription_router.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application subscription router +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """SubscriptionRouter parity vs legacy BRIDGES scan (tests only).""" from __future__ import annotations diff --git a/tests/application/test_subscription_table_store_ops.py b/tests/application/test_subscription_table_store_ops.py index 83b2fd5..d17f20a 100644 --- a/tests/application/test_subscription_table_store_ops.py +++ b/tests/application/test_subscription_table_store_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application subscription table store ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native bridge table and OBP source ops.""" from __future__ import annotations diff --git a/tests/application/test_timer_store_ops.py b/tests/application/test_timer_store_ops.py index 04b2304..fc26de0 100644 --- a/tests/application/test_timer_store_ops.py +++ b/tests/application/test_timer_store_ops.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application timer store ops +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Store-native stat_trimmer, bridge_debug, and bridge_reset.""" from __future__ import annotations diff --git a/tests/application/test_voice_ingress_builder.py b/tests/application/test_voice_ingress_builder.py index b60d588..2415b8b 100644 --- a/tests/application/test_voice_ingress_builder.py +++ b/tests/application/test_voice_ingress_builder.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application voice ingress builder +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Build VoiceIngress from DMRD parameters.""" from __future__ import annotations diff --git a/tests/application/test_voice_subscription_plan.py b/tests/application/test_voice_subscription_plan.py index 28b6286..224b1ae 100644 --- a/tests/application/test_voice_subscription_plan.py +++ b/tests/application/test_voice_subscription_plan.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests application voice subscription plan +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Voice forward plan helpers.""" from __future__ import annotations diff --git a/tests/conftest.py b/tests/conftest.py index 482fa49..2a63812 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests conftest +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Shared test fixtures.""" from __future__ import annotations diff --git a/tests/harness/__init__.py b/tests/harness/__init__.py index f3c450c..9ae606f 100644 --- a/tests/harness/__init__.py +++ b/tests/harness/__init__.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests harness init +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Test-only packet harnesses for adn-server (in-process deterministic layer).""" from tests.harness.assertions import ( diff --git a/tests/harness/assertions.py b/tests/harness/assertions.py index 0ced79a..f0aeee4 100644 --- a/tests/harness/assertions.py +++ b/tests/harness/assertions.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests harness assertions +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Reusable assertion helpers for deterministic harness tests.""" from __future__ import annotations diff --git a/tests/harness/deterministic.py b/tests/harness/deterministic.py index 87c06e5..8f41eef 100644 --- a/tests/harness/deterministic.py +++ b/tests/harness/deterministic.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests harness deterministic +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """In-process deterministic harness for RoutingUseCases. Inject at ``RoutingUseCases.dmrd_received()`` and capture outbound diff --git a/tests/harness/playback_helpers.py b/tests/harness/playback_helpers.py index 5362e3f..d3d4720 100644 --- a/tests/harness/playback_helpers.py +++ b/tests/harness/playback_helpers.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests harness playback helpers +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Helpers for PlaybackUseCases tests without a live reactor.""" from __future__ import annotations diff --git a/tests/harness/scenarios.py b/tests/harness/scenarios.py index 7ea5d00..b3214e8 100644 --- a/tests/harness/scenarios.py +++ b/tests/harness/scenarios.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests harness scenarios +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Shared deterministic scenario builders for domain tests.""" from __future__ import annotations diff --git a/tests/harness/session_replay.py b/tests/harness/session_replay.py index 1843ce6..1745918 100644 --- a/tests/harness/session_replay.py +++ b/tests/harness/session_replay.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests harness session replay +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """JSONL session replay for deterministic bridge tests. Session file format (one JSON object per line): diff --git a/tests/harness/voice_helpers.py b/tests/harness/voice_helpers.py index 5ddf827..50a637a 100644 --- a/tests/harness/voice_helpers.py +++ b/tests/harness/voice_helpers.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests harness voice helpers +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Shared fakes for VoiceUseCases tests.""" from __future__ import annotations diff --git a/tests/hbp/test_hbp_loop_control.py b/tests/hbp/test_hbp_loop_control.py index 11bed6c..4bf1d12 100644 --- a/tests/hbp/test_hbp_loop_control.py +++ b/tests/hbp/test_hbp_loop_control.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests hbp hbp loop control +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """HBP vs HBP loop control (ingress packet control).""" from __future__ import annotations diff --git a/tests/hbp/test_hbp_rate_limit.py b/tests/hbp/test_hbp_rate_limit.py index e53aced..2728139 100644 --- a/tests/hbp/test_hbp_rate_limit.py +++ b/tests/hbp/test_hbp_rate_limit.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests hbp hbp rate limit +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """HBP ingress rate limit.""" from __future__ import annotations diff --git a/tests/hbp/test_ingress.py b/tests/hbp/test_ingress.py index 013f29d..249747f 100644 --- a/tests/hbp/test_ingress.py +++ b/tests/hbp/test_ingress.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests hbp ingress +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """HBP ingress timing and loop control.""" from __future__ import annotations diff --git a/tests/hbp/test_master_maintenance.py b/tests/hbp/test_master_maintenance.py index 450822c..a8a7f15 100644 --- a/tests/hbp/test_master_maintenance.py +++ b/tests/hbp/test_master_maintenance.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests hbp master maintenance +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """HBP MASTER maintenance loop (peer timeout / PEERS dict parity).""" from __future__ import annotations diff --git a/tests/hbp/test_timeout_collision.py b/tests/hbp/test_timeout_collision.py index 1c31bae..255d4d1 100644 --- a/tests/hbp/test_timeout_collision.py +++ b/tests/hbp/test_timeout_collision.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests hbp timeout collision +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """HBP ingress 180s timeout and stream collision.""" from __future__ import annotations diff --git a/tests/infrastructure/mesh/test_dmre_v5.py b/tests/infrastructure/mesh/test_dmre_v5.py index 317a6c3..f013ddc 100644 --- a/tests/infrastructure/mesh/test_dmre_v5.py +++ b/tests/infrastructure/mesh/test_dmre_v5.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mesh dmre v5 +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Unit tests for DMRE v4/v5 BLAKE2b wire codec.""" from __future__ import annotations diff --git a/tests/infrastructure/mesh/test_obp_v1.py b/tests/infrastructure/mesh/test_obp_v1.py index 5f00359..c53f63a 100644 --- a/tests/infrastructure/mesh/test_obp_v1.py +++ b/tests/infrastructure/mesh/test_obp_v1.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mesh obp v1 +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Unit tests for OpenBridge v1 HMAC wire codec.""" from __future__ import annotations diff --git a/tests/infrastructure/test_acl_router.py b/tests/infrastructure/test_acl_router.py index 4435a26..1a8836a 100644 --- a/tests/infrastructure/test_acl_router.py +++ b/tests/infrastructure/test_acl_router.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure acl router +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """ACL range checks (legacy acl_check parity).""" from __future__ import annotations diff --git a/tests/infrastructure/test_config_push_throttle.py b/tests/infrastructure/test_config_push_throttle.py index 2db877d..1761447 100644 --- a/tests/infrastructure/test_config_push_throttle.py +++ b/tests/infrastructure/test_config_push_throttle.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure config push throttle +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """CONFIG_SND adaptive debounce during peer login bursts.""" from __future__ import annotations diff --git a/tests/infrastructure/test_config_reload_udp.py b/tests/infrastructure/test_config_reload_udp.py index eb14e41..8d1f1e8 100644 --- a/tests/infrastructure/test_config_reload_udp.py +++ b/tests/infrastructure/test_config_reload_udp.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure config reload udp +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Hot reload UDP bind: GENERATOR collapse and deferred port release.""" from __future__ import annotations diff --git a/tests/infrastructure/test_doctor.py b/tests/infrastructure/test_doctor.py index 004ad94..3dbd0ac 100644 --- a/tests/infrastructure/test_doctor.py +++ b/tests/infrastructure/test_doctor.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure doctor +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """adn-server --doctor checks.""" from __future__ import annotations diff --git a/tests/infrastructure/test_hbp_repeat_options_filter.py b/tests/infrastructure/test_hbp_repeat_options_filter.py index 16617a5..5397299 100644 --- a/tests/infrastructure/test_hbp_repeat_options_filter.py +++ b/tests/infrastructure/test_hbp_repeat_options_filter.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure hbp repeat options filter +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Inject-only proxy: REPEAT and bridge downlink respect per-peer RPTO OPTIONS.""" from __future__ import annotations diff --git a/tests/infrastructure/test_hbp_repeat_talker_alias.py b/tests/infrastructure/test_hbp_repeat_talker_alias.py index d3fd2e2..2a9ddf4 100644 --- a/tests/infrastructure/test_hbp_repeat_talker_alias.py +++ b/tests/infrastructure/test_hbp_repeat_talker_alias.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure hbp repeat talker alias +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """REPEAT path through real HBPProtocol — catches missing embedded Talker Alias.""" from __future__ import annotations diff --git a/tests/infrastructure/test_logging_reload.py b/tests/infrastructure/test_logging_reload.py index 7bb8a89..beb959b 100644 --- a/tests/infrastructure/test_logging_reload.py +++ b/tests/infrastructure/test_logging_reload.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure logging reload +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Tests for LOGGER hot-reload level application.""" from __future__ import annotations diff --git a/tests/infrastructure/test_mqtt_auth.py b/tests/infrastructure/test_mqtt_auth.py index fd5e75f..a9c9043 100644 --- a/tests/infrastructure/test_mqtt_auth.py +++ b/tests/infrastructure/test_mqtt_auth.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mqtt auth +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """MQTT username/password authentication wiring.""" from __future__ import annotations diff --git a/tests/infrastructure/test_mqtt_config.py b/tests/infrastructure/test_mqtt_config.py index 2dbcb23..f59d605 100644 --- a/tests/infrastructure/test_mqtt_config.py +++ b/tests/infrastructure/test_mqtt_config.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mqtt config +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Tests for optional REPORTS.MQTT configuration.""" from __future__ import annotations diff --git a/tests/infrastructure/test_mqtt_publish_filter.py b/tests/infrastructure/test_mqtt_publish_filter.py index fba1528..95d6a86 100644 --- a/tests/infrastructure/test_mqtt_publish_filter.py +++ b/tests/infrastructure/test_mqtt_publish_filter.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mqtt publish filter +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """MQTT publish type filtering.""" from __future__ import annotations diff --git a/tests/infrastructure/test_mqtt_publisher.py b/tests/infrastructure/test_mqtt_publisher.py index a261ff7..9130b0b 100644 --- a/tests/infrastructure/test_mqtt_publisher.py +++ b/tests/infrastructure/test_mqtt_publisher.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mqtt publisher +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Tests for MQTT publisher frame fan-out.""" from __future__ import annotations diff --git a/tests/infrastructure/test_mqtt_reload.py b/tests/infrastructure/test_mqtt_reload.py index 765ecd5..cd880d2 100644 --- a/tests/infrastructure/test_mqtt_reload.py +++ b/tests/infrastructure/test_mqtt_reload.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mqtt reload +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """MQTT reconnect on config reload.""" from __future__ import annotations diff --git a/tests/infrastructure/test_mqtt_topics.py b/tests/infrastructure/test_mqtt_topics.py index 82f2134..35a0254 100644 --- a/tests/infrastructure/test_mqtt_topics.py +++ b/tests/infrastructure/test_mqtt_topics.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure mqtt topics +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Tests for MQTT topic mapping from report wire frames.""" from __future__ import annotations diff --git a/tests/infrastructure/test_parrot_cli.py b/tests/infrastructure/test_parrot_cli.py index b33a7dc..8d8efdc 100644 --- a/tests/infrastructure/test_parrot_cli.py +++ b/tests/infrastructure/test_parrot_cli.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure parrot cli +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """CLI and integrated parrot entry (Phase 4).""" from __future__ import annotations diff --git a/tests/infrastructure/test_parrot_config.py b/tests/infrastructure/test_parrot_config.py index 27881f4..b91249d 100644 --- a/tests/infrastructure/test_parrot_config.py +++ b/tests/infrastructure/test_parrot_config.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure parrot config +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Minimal adn-parrot.yaml validation.""" from __future__ import annotations diff --git a/tests/infrastructure/test_peer_disconnect_report.py b/tests/infrastructure/test_peer_disconnect_report.py index 415ed12..94c045d 100644 --- a/tests/infrastructure/test_peer_disconnect_report.py +++ b/tests/infrastructure/test_peer_disconnect_report.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure peer disconnect report +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Peer disconnect clears internal UA sessions; no synthetic bridge events.""" from __future__ import annotations diff --git a/tests/infrastructure/test_peer_downlink_fanout.py b/tests/infrastructure/test_peer_downlink_fanout.py index bf9400d..91ec8ed 100644 --- a/tests/infrastructure/test_peer_downlink_fanout.py +++ b/tests/infrastructure/test_peer_downlink_fanout.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure peer downlink fanout +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Inject-only MASTER: downlink index limits send_peer fan-out.""" from __future__ import annotations diff --git a/tests/infrastructure/test_proxy_config.py b/tests/infrastructure/test_proxy_config.py index 6f6ae03..925fa39 100644 --- a/tests/infrastructure/test_proxy_config.py +++ b/tests/infrastructure/test_proxy_config.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure proxy config +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """PROXY configuration validation (Phase 3).""" from __future__ import annotations diff --git a/tests/infrastructure/test_proxy_reload.py b/tests/infrastructure/test_proxy_reload.py index 72060e2..0476b43 100644 --- a/tests/infrastructure/test_proxy_reload.py +++ b/tests/infrastructure/test_proxy_reload.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure proxy reload +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Proxy hot-reload keeps LISTEN_PORT and active sessions.""" from __future__ import annotations diff --git a/tests/infrastructure/test_proxy_repeat_e2e.py b/tests/infrastructure/test_proxy_repeat_e2e.py index 4803635..aef5a44 100644 --- a/tests/infrastructure/test_proxy_repeat_e2e.py +++ b/tests/infrastructure/test_proxy_repeat_e2e.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure proxy repeat e2e +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Proxy fan-in → MASTER inject → REPEAT to second hotspot (DroidStar path).""" from __future__ import annotations diff --git a/tests/infrastructure/test_proxy_self_service.py b/tests/infrastructure/test_proxy_self_service.py index 61a3db4..df66c11 100644 --- a/tests/infrastructure/test_proxy_self_service.py +++ b/tests/infrastructure/test_proxy_self_service.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure proxy self service +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Integrated proxy self-service DB hooks (legacy adn-proxy parity).""" from __future__ import annotations diff --git a/tests/infrastructure/test_report_server_mqtt.py b/tests/infrastructure/test_report_server_mqtt.py index 1b97114..66298e7 100644 --- a/tests/infrastructure/test_report_server_mqtt.py +++ b/tests/infrastructure/test_report_server_mqtt.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure report server mqtt +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """ReportServerFactory MQTT fan-out.""" from __future__ import annotations diff --git a/tests/infrastructure/test_report_server_wire.py b/tests/infrastructure/test_report_server_wire.py index 2d028e8..b7ecf38 100644 --- a/tests/infrastructure/test_report_server_wire.py +++ b/tests/infrastructure/test_report_server_wire.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure report server wire +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Report server wire encoding.""" from __future__ import annotations @@ -168,4 +188,3 @@ def test_send_routing_event_remaps_inject_proxy_system_name() -> None: assert payload["type"] == "voice_event" assert payload["system"] == "SYSTEM-4" assert payload["peer_id"] == 9990 - diff --git a/tests/infrastructure/test_session_teardown.py b/tests/infrastructure/test_session_teardown.py index f6119d9..6a2ba6c 100644 --- a/tests/infrastructure/test_session_teardown.py +++ b/tests/infrastructure/test_session_teardown.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure session teardown +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Session teardown executor (legacy reaper wire parity).""" from __future__ import annotations diff --git a/tests/infrastructure/test_subscription_store.py b/tests/infrastructure/test_subscription_store.py index 99dba82..355554a 100644 --- a/tests/infrastructure/test_subscription_store.py +++ b/tests/infrastructure/test_subscription_store.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure subscription store +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """In-memory subscription store.""" from __future__ import annotations diff --git a/tests/infrastructure/test_subscription_store_index.py b/tests/infrastructure/test_subscription_store_index.py index 4153f9d..b70133a 100644 --- a/tests/infrastructure/test_subscription_store_index.py +++ b/tests/infrastructure/test_subscription_store_index.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure subscription store index +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Hot-path indexes on InMemorySubscriptionStore.""" from __future__ import annotations diff --git a/tests/infrastructure/test_udp_fanin.py b/tests/infrastructure/test_udp_fanin.py index 9c520c1..7e50c4e 100644 --- a/tests/infrastructure/test_udp_fanin.py +++ b/tests/infrastructure/test_udp_fanin.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure udp fanin +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """UDP fan-in protocol tests (no live reactor).""" from __future__ import annotations diff --git a/tests/infrastructure/test_udp_hbp_mesh_registry.py b/tests/infrastructure/test_udp_hbp_mesh_registry.py index d826033..f7d8512 100644 --- a/tests/infrastructure/test_udp_hbp_mesh_registry.py +++ b/tests/infrastructure/test_udp_hbp_mesh_registry.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests infrastructure udp hbp mesh registry +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """MeshCodecRegistry wired into HBPProtocol OPENBRIDGE ingress/egress.""" from __future__ import annotations diff --git a/tests/obp/test_loop_control.py b/tests/obp/test_loop_control.py index 53967c4..b57b106 100644 --- a/tests/obp/test_loop_control.py +++ b/tests/obp/test_loop_control.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests obp loop control +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """OBP loop control and VTERM stream lifecycle.""" from __future__ import annotations diff --git a/tests/obp/test_obp_rate_limit.py b/tests/obp/test_obp_rate_limit.py index f24abea..bc385d3 100644 --- a/tests/obp/test_obp_rate_limit.py +++ b/tests/obp/test_obp_rate_limit.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests obp obp rate limit +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """OBP rate limit regressions.""" from __future__ import annotations diff --git a/tests/obp/test_unit_data_loop.py b/tests/obp/test_unit_data_loop.py index a11c500..7d64c8c 100644 --- a/tests/obp/test_unit_data_loop.py +++ b/tests/obp/test_unit_data_loop.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests obp unit data loop +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """OBP unit-data loop control (HBP/OBP earliest-wins).""" from __future__ import annotations diff --git a/tests/parrot/test_playback_ingress.py b/tests/parrot/test_playback_ingress.py index 5650ce4..b718272 100644 --- a/tests/parrot/test_playback_ingress.py +++ b/tests/parrot/test_playback_ingress.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests parrot playback ingress +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Parrot ingress path (PEER dmrd_received + record-to-playback).""" from __future__ import annotations diff --git a/tests/parrot/test_playback_logging.py b/tests/parrot/test_playback_logging.py index 65c672c..0c90fd3 100644 --- a/tests/parrot/test_playback_logging.py +++ b/tests/parrot/test_playback_logging.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests parrot playback logging +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Parrot playback logging format.""" from __future__ import annotations diff --git a/tests/parrot/test_playback_send_loop.py b/tests/parrot/test_playback_send_loop.py index 37d3fd9..1f5cc9f 100644 --- a/tests/parrot/test_playback_send_loop.py +++ b/tests/parrot/test_playback_send_loop.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests parrot playback send loop +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Parrot playback send loop and max recording timer.""" from __future__ import annotations diff --git a/tests/parrot/test_recording_timers.py b/tests/parrot/test_recording_timers.py index 7bd2135..d2b82b6 100644 --- a/tests/parrot/test_recording_timers.py +++ b/tests/parrot/test_recording_timers.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests parrot recording timers +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Parrot recording idle/max timers and synthetic VTERM.""" from __future__ import annotations diff --git a/tests/parrot/test_rekey_playback.py b/tests/parrot/test_rekey_playback.py index ed19b19..403cd08 100644 --- a/tests/parrot/test_rekey_playback.py +++ b/tests/parrot/test_rekey_playback.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests parrot rekey playback +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Parrot re-key and playback packet prep.""" from __future__ import annotations diff --git a/tests/replay/test_session_replay.py b/tests/replay/test_session_replay.py index 7960f67..efda2ca 100644 --- a/tests/replay/test_session_replay.py +++ b/tests/replay/test_session_replay.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests replay session replay +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """JSONL session replay tests.""" from __future__ import annotations diff --git a/tests/routing/test_config_reload.py b/tests/routing/test_config_reload.py index 4335f52..5521bcb 100644 --- a/tests/routing/test_config_reload.py +++ b/tests/routing/test_config_reload.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing config reload +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Config reload merge preserves runtime MASTER state.""" from __future__ import annotations diff --git a/tests/routing/test_crc_dedup.py b/tests/routing/test_crc_dedup.py index 045e6b8..7fda33f 100644 --- a/tests/routing/test_crc_dedup.py +++ b/tests/routing/test_crc_dedup.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing crc dedup +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """CRC payload dedup: only seq > 0 triggers drop.""" from __future__ import annotations diff --git a/tests/routing/test_echo_subscription_reset.py b/tests/routing/test_echo_subscription_reset.py index 9296804..2ae583e 100644 --- a/tests/routing/test_echo_subscription_reset.py +++ b/tests/routing/test_echo_subscription_reset.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing echo subscription reset +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """ECHO / parrot bridge leg restore after BRIDGERESET (regression for production outage).""" from __future__ import annotations diff --git a/tests/routing/test_options_config_loop.py b/tests/routing/test_options_config_loop.py index 70c433f..8c75b29 100644 --- a/tests/routing/test_options_config_loop.py +++ b/tests/routing/test_options_config_loop.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing options config loop +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """OPTIONS refresh paths (RPTO, startup, connected peer — no 26s loop, V2-P2-016).""" from __future__ import annotations diff --git a/tests/routing/test_parrot_bootstrap_seed.py b/tests/routing/test_parrot_bootstrap_seed.py index 5a1f23b..a74a44b 100644 --- a/tests/routing/test_parrot_bootstrap_seed.py +++ b/tests/routing/test_parrot_bootstrap_seed.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing parrot bootstrap seed +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Regression: echo bridge 9990 must route to ECHO (bootstrap seed + VHEAD ON arm).""" from __future__ import annotations diff --git a/tests/routing/test_peer_downlink_index.py b/tests/routing/test_peer_downlink_index.py index 07a5e27..64fc8e4 100644 --- a/tests/routing/test_peer_downlink_index.py +++ b/tests/routing/test_peer_downlink_index.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing peer downlink index +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Peer downlink index: inject-only fan-out narrowing.""" from __future__ import annotations diff --git a/tests/routing/test_peer_options_override.py b/tests/routing/test_peer_options_override.py index 8b9dd52..602ce2c 100644 --- a/tests/routing/test_peer_options_override.py +++ b/tests/routing/test_peer_options_override.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing peer options override +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Peer RPTO OPTIONS override YAML runtime flags (inject-only proxy).""" from __future__ import annotations diff --git a/tests/routing/test_private_voice.py b/tests/routing/test_private_voice.py index 055ee8a..c52b6ca 100644 --- a/tests/routing/test_private_voice.py +++ b/tests/routing/test_private_voice.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing private voice +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Private (unit) voice routing via SUB_MAP.""" from __future__ import annotations diff --git a/tests/routing/test_report_peer_id.py b/tests/routing/test_report_peer_id.py index 0a27fe1..49f1653 100644 --- a/tests/routing/test_report_peer_id.py +++ b/tests/routing/test_report_peer_id.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing report peer id +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """BRDG_EVENT peer_id resolution for RX legs (hotspot transmitting).""" from __future__ import annotations diff --git a/tests/routing/test_rule_timer_timeout.py b/tests/routing/test_rule_timer_timeout.py index 69dfa14..92e9557 100644 --- a/tests/routing/test_rule_timer_timeout.py +++ b/tests/routing/test_rule_timer_timeout.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing rule timer timeout +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Bridge rule_timer timeout behaviour (reactor-thread mutations).""" from __future__ import annotations diff --git a/tests/routing/test_startup_subscriptions.py b/tests/routing/test_startup_subscriptions.py index 0d6e45a..458a36e 100644 --- a/tests/routing/test_startup_subscriptions.py +++ b/tests/routing/test_startup_subscriptions.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing startup subscriptions +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Startup bridge wiring (apply_startup_subscriptions).""" from __future__ import annotations diff --git a/tests/routing/test_static_tg_options.py b/tests/routing/test_static_tg_options.py index f80cc34..98328d2 100644 --- a/tests/routing/test_static_tg_options.py +++ b/tests/routing/test_static_tg_options.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing static tg options +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Static TG / OPTIONS handling (commits fdf45d3, 4e8a2d0 echo leg restore).""" from __future__ import annotations diff --git a/tests/routing/test_subscription_router_dmrd.py b/tests/routing/test_subscription_router_dmrd.py index bd9d8b4..e1b1b9e 100644 --- a/tests/routing/test_subscription_router_dmrd.py +++ b/tests/routing/test_subscription_router_dmrd.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing subscription router dmrd +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """dmrd_received routes voice via SubscriptionRouter.""" from __future__ import annotations diff --git a/tests/routing/test_unit_data_ingress.py b/tests/routing/test_unit_data_ingress.py index bf6d765..988b643 100644 --- a/tests/routing/test_unit_data_ingress.py +++ b/tests/routing/test_unit_data_ingress.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing unit data ingress +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Unit data ingress: headers, CSBK, reporting.""" from __future__ import annotations @@ -6,7 +26,6 @@ import pytest from tests.harness.assertions import assert_inject_ok, assert_report_event from tests.harness.deterministic import DeterministicScenario, PacketSpec, minimal_config -from adn_server.domain import bytes_4 from adn_server.domain.hbp_protocol import HBPF_SLT_VTERM diff --git a/tests/routing/test_unit_data_routing.py b/tests/routing/test_unit_data_routing.py index b9321c9..71c8326 100644 --- a/tests/routing/test_unit_data_routing.py +++ b/tests/routing/test_unit_data_routing.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing unit data routing +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Unit data routing: SUB_MAP, hotspot, gateway, OBP fanout.""" from __future__ import annotations diff --git a/tests/routing/unit_data_helpers.py b/tests/routing/unit_data_helpers.py index 2a89abd..d41061d 100644 --- a/tests/routing/unit_data_helpers.py +++ b/tests/routing/unit_data_helpers.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests routing unit data helpers +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Shared helpers for bridge unit-data tests.""" from __future__ import annotations diff --git a/tests/schemas/test_report_schema_examples.py b/tests/schemas/test_report_schema_examples.py index 27a14c0..cec56bb 100644 --- a/tests/schemas/test_report_schema_examples.py +++ b/tests/schemas/test_report_schema_examples.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests schemas report schema examples +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Validate report JSON Schema against committed examples.""" from __future__ import annotations diff --git a/tests/smoke/test_routing.py b/tests/smoke/test_routing.py index 39b081d..2fe7f6b 100644 --- a/tests/smoke/test_routing.py +++ b/tests/smoke/test_routing.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests smoke routing +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Smoke tests for basic HBP bridge forwarding.""" from __future__ import annotations diff --git a/tests/support/hbp_repeat_stack.py b/tests/support/hbp_repeat_stack.py index ddb919b..c458af8 100644 --- a/tests/support/hbp_repeat_stack.py +++ b/tests/support/hbp_repeat_stack.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests support hbp repeat stack +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """HBP MASTER + RoutingUseCases stack for REPEAT / talker-alias integration tests.""" from __future__ import annotations diff --git a/tests/support/monitor_ctable_sim.py b/tests/support/monitor_ctable_sim.py index ad4c43c..12ada9e 100644 --- a/tests/support/monitor_ctable_sim.py +++ b/tests/support/monitor_ctable_sim.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests support monitor ctable sim +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Minimal adn-monitor CTABLE semantics for report contract tests. Mirrors the behaviour that broke production (``update_hblink_table_impl`` in diff --git a/tests/talker_alias/test_dmra_early_buffer.py b/tests/talker_alias/test_dmra_early_buffer.py index c61ea90..e0cb7f0 100644 --- a/tests/talker_alias/test_dmra_early_buffer.py +++ b/tests/talker_alias/test_dmra_early_buffer.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias dmra early buffer +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """DMRA may arrive before DMRD VHEAD — legacy buffers under rf_src until stream note.""" from __future__ import annotations diff --git a/tests/talker_alias/test_embed_ta.py b/tests/talker_alias/test_embed_ta.py index 98fdded..b9e6f1c 100644 --- a/tests/talker_alias/test_embed_ta.py +++ b/tests/talker_alias/test_embed_ta.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias embed ta +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Talker Alias embedded LC (encode_emblc) paths.""" from __future__ import annotations diff --git a/tests/talker_alias/test_encode_decode.py b/tests/talker_alias/test_encode_decode.py index 3843ddc..3ee9a59 100644 --- a/tests/talker_alias/test_encode_decode.py +++ b/tests/talker_alias/test_encode_decode.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias encode decode +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Talker Alias domain encode/decode roundtrips.""" from __future__ import annotations diff --git a/tests/talker_alias/test_format.py b/tests/talker_alias/test_format.py index a55e30d..8c1b0af 100644 --- a/tests/talker_alias/test_format.py +++ b/tests/talker_alias/test_format.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias format +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Talker Alias formatting and stream state.""" from __future__ import annotations diff --git a/tests/talker_alias/test_mmdvm_wire.py b/tests/talker_alias/test_mmdvm_wire.py index 40507d6..51962a8 100644 --- a/tests/talker_alias/test_mmdvm_wire.py +++ b/tests/talker_alias/test_mmdvm_wire.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias mmdvm wire +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """MMDVMHost DMRA wire layout and short TA passthrough.""" from __future__ import annotations diff --git a/tests/talker_alias/test_passthrough.py b/tests/talker_alias/test_passthrough.py index 07046ab..93fecd5 100644 --- a/tests/talker_alias/test_passthrough.py +++ b/tests/talker_alias/test_passthrough.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias passthrough +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Talker Alias passthrough and both modes.""" from __future__ import annotations diff --git a/tests/talker_alias/test_relay_dedupe.py b/tests/talker_alias/test_relay_dedupe.py index 343f6b3..be462fc 100644 --- a/tests/talker_alias/test_relay_dedupe.py +++ b/tests/talker_alias/test_relay_dedupe.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias relay dedupe +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Talker Alias DMRA relay and log deduplication.""" from __future__ import annotations diff --git a/tests/talker_alias/test_routing_inject.py b/tests/talker_alias/test_routing_inject.py index 5d5f9f3..03fa126 100644 --- a/tests/talker_alias/test_routing_inject.py +++ b/tests/talker_alias/test_routing_inject.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests talker alias routing inject +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Talker Alias bridge/repeat injection.""" from __future__ import annotations @@ -92,5 +112,3 @@ def test_both_mode_without_ta_still_rewrites_group_embedded_lc() -> None: emb = bits[116:148] assert emb == ts_st["TX_EMB_LC"][1] # rewritten to destination group LC... assert emb.any() # ...not the preserved all-zero source embedded LC - - diff --git a/tests/voice/test_announcement_anticollision.py b/tests/voice/test_announcement_anticollision.py index d2976c3..f49e6a8 100644 --- a/tests/voice/test_announcement_anticollision.py +++ b/tests/voice/test_announcement_anticollision.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice announcement anticollision +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Voice announcement anti-collision.""" from __future__ import annotations diff --git a/tests/voice/test_broadcast_queue.py b/tests/voice/test_broadcast_queue.py index 6dadcd8..c9aad74 100644 --- a/tests/voice/test_broadcast_queue.py +++ b/tests/voice/test_broadcast_queue.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice broadcast queue +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Voice broadcast queue (same-TG serialization).""" from __future__ import annotations diff --git a/tests/voice/test_disconnected_voice.py b/tests/voice/test_disconnected_voice.py index af4b7ac..d8fd800 100644 --- a/tests/voice/test_disconnected_voice.py +++ b/tests/voice/test_disconnected_voice.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice disconnected voice +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Disconnected / linked-to-reflector voice prompts.""" from __future__ import annotations diff --git a/tests/voice/test_in_band_signalling.py b/tests/voice/test_in_band_signalling.py index b456ffa..35c6380 100644 --- a/tests/voice/test_in_band_signalling.py +++ b/tests/voice/test_in_band_signalling.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice in band signalling +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """In-band voice signalling on VTERM.""" from __future__ import annotations diff --git a/tests/voice/test_play_file_on_request.py b/tests/voice/test_play_file_on_request.py index 2ab26a3..675c83f 100644 --- a/tests/voice/test_play_file_on_request.py +++ b/tests/voice/test_play_file_on_request.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice play file on request +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """On-demand AMBE playback (TG 9991-9999, playFileOnRequest).""" from __future__ import annotations diff --git a/tests/voice/test_scheduled_announcement.py b/tests/voice/test_scheduled_announcement.py index 55b091d..6d659ec 100644 --- a/tests/voice/test_scheduled_announcement.py +++ b/tests/voice/test_scheduled_announcement.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice scheduled announcement +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Scheduled file announcements (AMBE on disk).""" from __future__ import annotations diff --git a/tests/voice/test_scheduled_tts.py b/tests/voice/test_scheduled_tts.py index 924c6f1..cb9ae74 100644 --- a/tests/voice/test_scheduled_tts.py +++ b/tests/voice/test_scheduled_tts.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice scheduled tts +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Scheduled TTS announcements and conversion callbacks.""" from __future__ import annotations diff --git a/tests/voice/test_voice_config_reload.py b/tests/voice/test_voice_config_reload.py index c839e83..d2f8caf 100644 --- a/tests/voice/test_voice_config_reload.py +++ b/tests/voice/test_voice_config_reload.py @@ -1,3 +1,23 @@ +# ADN DMR Peer Server - tests voice voice config reload +# +# Copyright (C) 2026 Rodrigo Pérez, CE5RPY +# +############################################################################### +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +############################################################################### + """Voice config reload and announcement LoopingCall management.""" from __future__ import annotations