Commit Graph

90 Commits

Author SHA1 Message Date
Simon 374806c178 should have been int_id() not int() 2021-10-09 10:40:33 +01:00
Simon f8eec86c02 Boolint 2021-10-07 13:28:48 +01:00
Simon 93cf57131b Would help if I added the return 2021-10-06 15:01:05 +01:00
Simon 06c7b6acc6 Reject null streamid from HBP 2021-10-06 11:27:23 +01:00
Christian OA4DOA fb1c6ef8c3
Add 'DNS_TIME' for 'XLXPEER' instances
Also change client.getHostByName  I tried a couple of times to resolve a hostname with  it but I couldn't, reactor.resolve works.
2021-09-12 00:58:45 -05:00
Simon a8633090e4 Re-resolve DNS on failed peer ready for testing 2021-08-30 17:02:29 +01:00
Simon ae393bc66d First go at deferred re-resolve for peers 2021-08-30 16:38:57 +01:00
Simon 2e4134656f Fix bug when options is sent but system does not appear to be logged in 2021-08-22 13:12:58 +01:00
Simon 501a557116 Revert "Override SERVER_ID that is sent for this OBP"
This reverts commit 36e7ed58b9.
2021-07-20 23:14:59 +01:00
Simon 36e7ed58b9 Override SERVER_ID that is sent for this OBP
Generally, this is used for connecting to non-FreeDMR systems.
Should usually be set to:
OVERRIDE_SERVER_ID: False
** USE WITH CAUTION **
2021-07-20 01:10:20 +01:00
Simon 09a3015f77 Don't error on unresolvable hostname in TARGET_IP
Allow null TARGET_IP - Waits for first keepalive to update - use for
endpoints that are on a dynamic or unknown IP

Support IPv6 for OBP - to listen IPv6 set IP: :: or other valid ipv6 address

IPv6 addresses can be used in TARGET_IP or will be resolved from DNS

Note, might cause confusion if the target has an IPv6 address and we don't
take note of this and specify ipv4 explicitly if needs be.

IPv6 Needs some testing :-)
2021-06-18 01:52:13 +01:00
Simon 902b963e07 Slight fixes to peer logging 2021-06-15 16:15:47 +01:00
Simon fa20a25852 Add traffic source validation:
Change behaviour of NETWORK_ID in OPENBRIDGE config:

This should be the ID of remote system. If traffic received on this bridge is not shown as
from this ID, it will be disgarded.

Fix reporting of PEER so it actually takes the peer from the incoming connection, not NETWORK_ID:

So, in short:

SERVER_ID in [GLOBAL] - the ID you send to other servers via OBP
NETWORK_ID in OPENBRIDGE - the expected ** remote ** ID for the bridge.
2021-06-15 00:24:49 +01:00
Simon 3385b89bce Add automatic downloading of tgid file from FreeDMR website to use
with HBMonitor etc.
2021-05-31 23:48:05 +01:00
Simon 52da820554 Send SERVER_ID not NETWORK_ID in packets on OBP. 2021-05-30 02:46:52 +01:00
Simon c20c0f4aec Send contents of numbered AMBE files in language directory.
So, for example, for lang en_GB:

When you manual dial 9991, file en_GB_2/9991.ambe is played
2021-05-24 22:32:54 +01:00
Simon 2ee5af70d6 Treat a DMRD packet as a silent keepalive
This is because the other end may not have enabled ENHANCED_OBP,
DMRD is traffic so the server is up, and not sending to systems
we can receive from can cause weird effects on the network.
2021-05-05 23:28:13 +01:00
Simon 190e17b50e CONFIG not config 2021-05-02 17:11:50 +01:00
Simon f2c10e0b8a Catch all exceptions in options code 2021-04-29 16:28:57 +01:00
Simon 52ee8ad8ac Revert "Log todying again"
This reverts commit 06dc9fac55.
2021-04-27 19:45:35 +01:00
Simon 06dc9fac55 Log todying again 2021-04-26 23:42:20 +01:00
Simon aac52a03a5 Try only 4 2021-04-17 15:55:30 +01:00
Simon f3c0d084bd ok 2021-04-17 15:45:40 +01:00
Simon cf3a0613ec Add description to log on login of system 2021-04-17 12:49:03 +01:00
Simon 3a1626fde7 Revert "bcka test"
This reverts commit d7bf07c23a.
2021-04-15 18:57:51 +01:00
Simon d7bf07c23a bcka test 2021-04-15 18:45:36 +01:00
Simon 1b5f3fdcec Acl on TG not iD 2021-04-15 18:15:02 +01:00
Simon 28b183befe Also send BCSQ when a subscriber or TG hits the ACLs 2021-04-15 18:11:22 +01:00
Simon a8f7ca643d Fix BCKA 2021-04-15 16:12:17 +01:00
Simon eab8c03cce Tidy up BCSQ logging 2021-04-13 12:12:44 +01:00
Simon 88334eaaf5 Adds support for new Bridge Control OPCODE - BCSQ
BCSQ is Source Quench or Squelch

When a stream id is received from more than one source on a TG
the system sends a BCSQ to all of the non-first systems to ask them
to stop sending this stream ID. This reduces network and CPU load. Also
packets can't loop of they arent even received!

Squashed commit of the following:

commit e5ba9ece5d84e56096c459139fb39eba16249f96
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 23:16:30 2021 +0100

    Tidy up log handling for streams

commit fc1e4bd91f0e576e8c58e84cf4b96f00ce6ec933
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 22:56:45 2021 +0100

    Fix target port (BCKA)

commit 27e046e5efe744679c7652f65135cf3129481092
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 22:50:35 2021 +0100

    Handle keyerror

commit 99c660fa813a300940b16e55d840218f1868cadb
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 22:45:05 2021 +0100

    Stream trimmer for BCSQ

commit 9d6102be13813b27b752192e29e94d5eafbbb934
Author: Simon <simon@gb7fr.org.uk>
Date:   Mon Apr 12 21:32:54 2021 +0100

    Brack

commit 2f8a8cf620153cb0138e970c0dcd85328a47521c
Merge: f77a68a 17b6968
Author: Simon <simon@gb7fr.org.uk>
Date:   Sun Apr 11 22:16:38 2021 +0100

    Merge branch 'master' into bcsq

commit f77a68a96297fe050609b8ee5fb56b0866ec78f4
Merge: 7f4c6f5 9a3e5fb
Author: Simon <simon@gb7fr.org.uk>
Date:   Fri Apr 9 01:39:54 2021 +0100

    Merge branch 'master' into bcsq

commit 7f4c6f5375b589aa78e74f0002448afe95a625a2
Author: Simon <simon@gb7fr.org.uk>
Date:   Thu Apr 8 18:35:08 2021 +0100

    c

commit c0904242e0f532c26e33bdd9cba8d1bea5329abc
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 19:05:40 2021 +0100

    only try to quench the source once

commit 2748d0cf7c5557522a5b2d0d9e3b37e294711910
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:56:05 2021 +0100

    Comment out check for enahnced to tes

commit fa43a09db73862343f0f70a367786c4d77aaf9b9
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:51:19 2021 +0100

    Dst id not tgid

commit f02df6edf10cfa936147b0862671ed949a820785
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:48:44 2021 +0100

    More BCSQ

commit adf3bb4059f0710848f8e3349722141836889c41
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:44:15 2021 +0100

    more BCKA fixes

commit b4dc518d9b74a0d8c83b3b1bb17d7de4d04b9915
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:42:13 2021 +0100

    Fix broken BKCA

commit 637d772dbadb346ad49d5b80d8299c13b0fbfc79
Author: Simon <simon@gb7fr.org.uk>
Date:   Tue Apr 6 18:38:17 2021 +0100

    More work on BCSQ
2021-04-12 23:28:01 +01:00
Simon 919b7842da Tidy up sockaddr update from keepalives 2021-04-10 01:13:00 +01:00
Simon cee96e1b96 Fix typo in _config 2021-04-08 18:35:48 +01:00
Simon 94e4d6251c Tidy up BCKA logging 2021-04-04 19:46:42 +01:00
Simon d2d2317a0b Docker changes source port too 2021-04-04 19:44:44 +01:00
Simon 6b2b39f5e1 Log IP and port for bcka debugging 2021-04-04 19:42:25 +01:00
Simon 7303cdcbc8 HE 2021-04-04 19:23:30 +01:00
Simon 62f0cdc97b Merge branch 'bcka' 2021-04-04 18:42:09 +01:00
Simon 53c1958aec Dynamic IP update:
Using BCKA (Extended OBP KeepAlives):

When an authenticated keepalive is received from a different IP but
on the same port, we update the IP for the OpenBridge. This means, we can
handle dynamic IP seamlessly!
2021-04-04 18:39:16 +01:00
Simon dda0470ff2 New option - ENHANCED_OBP
Extends OpenBridge protocol

Added authenticated KeepAlives to protocol.
2021-04-04 18:19:28 +01:00
Simon 4fd9ada6da Comment out BCKA loop as I will carry on with this in BCKA branch 2021-04-04 18:02:34 +01:00
Simon b096d5dfa5 Fix bcka 2021-04-04 17:44:29 +01:00
Simon 56a0ee4dc6 rstrip() 2021-04-03 17:19:24 +01:00
Simon 03b3f78f5d Decode strings 2021-04-03 17:15:23 +01:00
Simon 19965158ae Anothet T 2021-04-03 17:10:24 +01:00
Simon d0d61e5573 Typo 2021-04-03 17:05:26 +01:00
Simon deaef627c6 Move SW and PKGID to the right place 2021-04-03 17:04:30 +01:00
Simon 90f01a7751 Report package ID in logs 2021-04-03 16:59:44 +01:00
Simon 0261c04ede When using a GENERATOR config, reset HBP options to default on client logout 2021-03-21 17:22:50 +00:00
Simon 1babf7e18a Add RELAX_CHECKS to OPENBRIDGE definitions
This disables source IP and port checking
to make OBP play nice with Docker.

Note, it *really* is a good idea to use a PASSPHRASE with this!
2021-02-20 22:02:44 +00:00