MAJOR CHANGE: Move ACLs into the main hblink.cfg configuraiton file and process all ingress ACLs in hblink.py itself. This means removing all other ACL processing from other programs, except hb_bridge_all.py which uses the main hblink.py ACLs for egress processing.
renamed build_acl and the associated ACL to build_reg_acl and REG_ACL
to disambiguate from bridge_all and confbridge subscriber ACLs. Added
the registration ACL feature to all applications.
0) CONFIGURATION FILES WILL NEED UPDATED TO CHANGE NAMING
CONFIGURATIONS!
1) Updated use of socket address instead of discrete IP/port. This will
be needed for socket address based validation and is faster… duh…
should have done this in the beginning.
2) Changed all references to “clients” as HBP systems to “peers”. This
sets the stage for having a peer_id and an originator_id for DMRD
packets.
3) Found and squashed a number of other random bugs, including the
registration ACL not working in confbridge or bridge_all.
4) router is now retired. confbridge is the future.
This makes hb_bridge_all a more capable program with multiple ingress
and egress ACLs for SID and TGID filtering. It’s not as simple as
“blacklist” and “whitelist” since MULTIPLE endpoints exist, unlike an
MMDVM that has only one connection.
Random:
* Commented out per-packet debug logger lines (uncomment locally when needed)
Problems Fixed:
CLIENT MODE: hblink.py
hblink.py did not properly parse the radio_id in a MSTNAK message. We searched for
"MSTN" - 4 characters, and neglected to parse the radio ID at offset 6, after "MSTNAK"
instead of after 4, "MSTN".... rookie mistake:
elif _command == 'MSTN': # Actually MSTNAK -- a NACK from the master
- _radio_id = _data[4:8]
+ _radio_id = _data[6:10]
hblink.py did not actually keep track of missed keep-alives correctly to reset a connection.
This has probably been fixed. At worst, no more broken than it was. Would like to have
some folks test it by breaking connectivty froma client to master and watch what happens.
Appears to work now.