when CUDPSocket::open() is called with m_address (in CUDPSocket) is nothing,
IPv4 socket is created by "0.0.0.0" (INADDR_ANY) address.
This causes a problem that DMRGateway cannot connect to reflector on IPv6.
To choose default INADDR_ANY/IN6ADDR_ANY_INIT address, added
open(address_family) in UDPSocket.cpp.
Following code sets address string at construction, not modified.
NXDNNetwork.cpp
POCSAGNetwork.cpp
YSFNetwork.cpp
Other codes does not set, modified open() -> open(address_family)
DMRNetwork.cpp
DStarNetwork.cpp
MMDVMHost.cpp
MobileGPS.cpp
P25Network.cpp
RemoteCommand.cpp
RemoteControl.cpp
I think there is more clever method, but I have no other idea.
Maybe IPv6 support for digital radio works, but RemoteControl can work
IPv4 only.
Jonathan added this code due to a lack of CRC on P25 checking but some parties desire the ability to have any id.
It's understood that on networked connections, the need to use a 7 digit unique ID like the DMR ID is necessary.
This change is affected by adding a new parameter to the [P25 Network] section called OverrideUIDCheck and it defaults to 0.
The logic is, if the network is enabled, or if the network is disabled and the override is disabled, the check is made, otherwise it is not.
This has been field tested for all 4 configuration cases and found to work as described above.