diff --git a/.gitignore b/.gitignore index d040499..b9555d2 100644 --- a/.gitignore +++ b/.gitignore @@ -11,4 +11,4 @@ configure.h configure.sql reflector.cfg wiresx/configure.php -src/ulxd +urfd diff --git a/reflector/BMClient.h b/reflector/BMClient.h index 980adf7..4f7930b 100644 --- a/reflector/BMClient.h +++ b/reflector/BMClient.h @@ -19,7 +19,7 @@ #pragma once #include "Client.h" -#include "ULXClient.h" +#include "URFClient.h" class CBmClient : public CClient { diff --git a/reflector/Makefile b/reflector/Makefile index 504f8a1..ca467a8 100644 --- a/reflector/Makefile +++ b/reflector/Makefile @@ -37,7 +37,7 @@ endif LDFLAGS=-pthread XRFSRCS = Buffer.cpp Callsign.cpp CallsignList.cpp CallsignListItem.cpp Client.cpp Clients.cpp DCSClient.cpp DCSProtocol.cpp DExtraClient.cpp DExtraPeer.cpp DExtraProtocol.cpp DPlusClient.cpp DPlusProtocol.cpp DVFramePacket.cpp DVHeaderPacket.cpp DVLastFramePacket.cpp GateKeeper.cpp IP.cpp Notification.cpp Packet.cpp PacketStream.cpp PeerCallsignList.cpp Peer.cpp Peers.cpp Protocol.cpp Protocols.cpp Reflector.cpp UDPSocket.cpp User.cpp Users.cpp Version.cpp Main.cpp -XLXSRCS = BMClient.cpp BMPeer.cpp BPTC19696.cpp CRC.cpp DMRIdDir.cpp DMRIdDirFile.cpp DMRIdDirHttp.cpp DMRMMDVMClient.cpp DMRMMDVMProtocol.cpp DMRPlusClient.cpp DMRPlusProtocol.cpp Golay2087.cpp Golay24128.cpp Hamming.cpp QR1676.cpp RS129.cpp Semaphore.cpp Utils.cpp WiresXCmd.cpp WiresXCmdHandler.cpp WiresXInfo.cpp ULXClient.cpp ULXProtocol.cpp ULXPeer.cpp YSFClient.cpp YSFConvolution.cpp YSFFich.cpp YSFNode.cpp YSFNodeDir.cpp YSFNodeDirFile.cpp YSFNodeDirHttp.cpp YSFPayload.cpp YSFProtocol.cpp YSFUtils.cpp +XLXSRCS = BMClient.cpp BMPeer.cpp BPTC19696.cpp CRC.cpp DMRIdDir.cpp DMRIdDirFile.cpp DMRIdDirHttp.cpp DMRMMDVMClient.cpp DMRMMDVMProtocol.cpp DMRPlusClient.cpp DMRPlusProtocol.cpp Golay2087.cpp Golay24128.cpp Hamming.cpp QR1676.cpp RS129.cpp Semaphore.cpp Utils.cpp WiresXCmd.cpp WiresXCmdHandler.cpp WiresXInfo.cpp URFClient.cpp URFProtocol.cpp URFPeer.cpp YSFClient.cpp YSFConvolution.cpp YSFFich.cpp YSFNode.cpp YSFNodeDir.cpp YSFNodeDirFile.cpp YSFNodeDirHttp.cpp YSFPayload.cpp YSFProtocol.cpp YSFUtils.cpp G3SRCS = G3Client.cpp G3Protocol.cpp RawSocket.cpp UDPMsgSocket.cpp SRCS = $(XRFSRCS) @@ -58,7 +58,7 @@ endif OBJS = $(SRCS:.cpp=.o) DEPS = $(SRCS:.cpp=.d) -EXE=ulxd +EXE=urfd all : $(EXE) diff --git a/reflector/Protocols.cpp b/reflector/Protocols.cpp index 4502679..3095f8e 100644 --- a/reflector/Protocols.cpp +++ b/reflector/Protocols.cpp @@ -20,7 +20,7 @@ #include "DExtraProtocol.h" #include "DPlusProtocol.h" #include "DCSProtocol.h" -#include "ULXProtocol.h" +#include "URFProtocol.h" #include "DMRPlusProtocol.h" #include "DMRMMDVMProtocol.h" #include "YSFProtocol.h" @@ -68,7 +68,7 @@ bool CProtocols::Init(void) if (! m_Protocols.back()->Initialize("YSF", EProtocol::ysf, YSF_PORT, YSF_IPV4, YSF_IPV6)) return false; - m_Protocols.emplace_back(std::unique_ptr(new CUlxProtocol)); + m_Protocols.emplace_back(std::unique_ptr(new CURFProtocol)); if (! m_Protocols.back()->Initialize("XLX", EProtocol::ulx, XLX_PORT, DMR_IPV4, DMR_IPV6)) return false; diff --git a/reflector/ULXClient.cpp b/reflector/URFClient.cpp similarity index 87% rename from reflector/ULXClient.cpp rename to reflector/URFClient.cpp index 976485d..3a4effc 100644 --- a/reflector/ULXClient.cpp +++ b/reflector/URFClient.cpp @@ -18,24 +18,24 @@ #include #include "Main.h" -#include "ULXClient.h" +#include "URFClient.h" //////////////////////////////////////////////////////////////////////////////////////// // constructors -CUlxClient::CUlxClient() +CURFClient::CURFClient() { m_ProtRev = XLX_PROTOCOL_REVISION_0; } -CUlxClient::CUlxClient(const CCallsign &callsign, const CIp &ip, char reflectorModule, int protRev) +CURFClient::CURFClient(const CCallsign &callsign, const CIp &ip, char reflectorModule, int protRev) : CClient(callsign, ip, reflectorModule) { m_ProtRev = protRev; } -CUlxClient::CUlxClient(const CUlxClient &client) +CURFClient::CURFClient(const CURFClient &client) : CClient(client) { m_ProtRev = client.m_ProtRev; @@ -44,7 +44,7 @@ CUlxClient::CUlxClient(const CUlxClient &client) //////////////////////////////////////////////////////////////////////////////////////// // identity -int CUlxClient::GetCodec(void) const +int CURFClient::GetCodec(void) const { int codec; @@ -65,7 +65,7 @@ int CUlxClient::GetCodec(void) const //////////////////////////////////////////////////////////////////////////////////////// // status -bool CUlxClient::IsAlive(void) const +bool CURFClient::IsAlive(void) const { return (m_LastKeepaliveTime.time() < XLX_KEEPALIVE_TIMEOUT); } diff --git a/reflector/ULXClient.h b/reflector/URFClient.h similarity index 90% rename from reflector/ULXClient.h rename to reflector/URFClient.h index 350bd42..7befc19 100644 --- a/reflector/ULXClient.h +++ b/reflector/URFClient.h @@ -24,16 +24,16 @@ #define XLX_PROTOCOL_REVISION_1 1 // AMBE only, revised connect mechanism #define XLX_PROTOCOL_REVISION_2 2 // Transcoded AMBE+AMBE2 interlink -class CUlxClient : public CClient +class CURFClient : public CClient { public: // constructors - CUlxClient(); - CUlxClient(const CCallsign &, const CIp &, char = ' ', int = XLX_PROTOCOL_REVISION_0); - CUlxClient(const CUlxClient &); + CURFClient(); + CURFClient(const CCallsign &, const CIp &, char = ' ', int = XLX_PROTOCOL_REVISION_0); + CURFClient(const CURFClient &); // destructor - virtual ~CUlxClient() {}; + virtual ~CURFClient() {}; // identity EProtocol GetProtocol(void) const { return EProtocol::ulx; } diff --git a/reflector/ULXPeer.cpp b/reflector/URFPeer.cpp similarity index 86% rename from reflector/ULXPeer.cpp rename to reflector/URFPeer.cpp index d660d0f..a68125d 100644 --- a/reflector/ULXPeer.cpp +++ b/reflector/URFPeer.cpp @@ -19,19 +19,19 @@ #include "Main.h" #include #include "Reflector.h" -#include "ULXPeer.h" -#include "ULXClient.h" +#include "URFPeer.h" +#include "URFClient.h" //////////////////////////////////////////////////////////////////////////////////////// // constructor -CUlxPeer::CUlxPeer() +CURFPeer::CURFPeer() { } -CUlxPeer::CUlxPeer(const CCallsign &callsign, const CIp &ip, const char *modules, const CVersion &version) +CURFPeer::CURFPeer(const CCallsign &callsign, const CIp &ip, const char *modules, const CVersion &version) : CPeer(callsign, ip, modules, version) { // get protocol revision @@ -42,14 +42,14 @@ CUlxPeer::CUlxPeer(const CCallsign &callsign, const CIp &ip, const char *modules for ( unsigned i = 0; i < ::strlen(modules); i++ ) { // create and append to vector - m_Clients.push_back(std::make_shared(callsign, ip, modules[i], protrev)); + m_Clients.push_back(std::make_shared(callsign, ip, modules[i], protrev)); } } //////////////////////////////////////////////////////////////////////////////////////// // status -bool CUlxPeer::IsAlive(void) const +bool CURFPeer::IsAlive(void) const { return (m_LastKeepaliveTime.time() < XLX_KEEPALIVE_TIMEOUT); } @@ -57,7 +57,7 @@ bool CUlxPeer::IsAlive(void) const //////////////////////////////////////////////////////////////////////////////////////// // revision helper -int CUlxPeer::GetProtocolRevision(const CVersion &version) +int CURFPeer::GetProtocolRevision(const CVersion &version) { int protrev = XLX_PROTOCOL_REVISION_0; diff --git a/reflector/ULXPeer.h b/reflector/URFPeer.h similarity index 87% rename from reflector/ULXPeer.h rename to reflector/URFPeer.h index 1573e11..5c308f6 100644 --- a/reflector/ULXPeer.h +++ b/reflector/URFPeer.h @@ -19,15 +19,15 @@ #pragma once #include "Peer.h" -#include "ULXClient.h" +#include "URFClient.h" -class CUlxPeer : public CPeer +class CURFPeer : public CPeer { public: // constructors - CUlxPeer(); - CUlxPeer(const CCallsign &, const CIp &, const char *, const CVersion &); - CUlxPeer(const CUlxPeer &) = delete; + CURFPeer(); + CURFPeer(const CCallsign &, const CIp &, const char *, const CVersion &); + CURFPeer(const CURFPeer &) = delete; // status bool IsAlive(void) const; diff --git a/reflector/ULXProtocol.cpp b/reflector/URFProtocol.cpp similarity index 92% rename from reflector/ULXProtocol.cpp rename to reflector/URFProtocol.cpp index c1dcd85..08ffd13 100644 --- a/reflector/ULXProtocol.cpp +++ b/reflector/URFProtocol.cpp @@ -18,9 +18,9 @@ #include "Main.h" #include -#include "ULXPeer.h" +#include "URFPeer.h" #include "BMPeer.h" -#include "ULXProtocol.h" +#include "URFProtocol.h" #include "Reflector.h" #include "GateKeeper.h" @@ -28,7 +28,7 @@ //////////////////////////////////////////////////////////////////////////////////////// // operation -bool CUlxProtocol::Initialize(const char *type, const EProtocol ptype, const uint16_t port, const bool has_ipv4, const bool has_ipv6) +bool CURFProtocol::Initialize(const char *type, const EProtocol ptype, const uint16_t port, const bool has_ipv4, const bool has_ipv6) { if (! CProtocol::Initialize(type, ptype, port, has_ipv4, has_ipv6)) return false; @@ -44,7 +44,7 @@ bool CUlxProtocol::Initialize(const char *type, const EProtocol ptype, const uin //////////////////////////////////////////////////////////////////////////////////////// // task -void CUlxProtocol::Task(void) +void CURFProtocol::Task(void) { CBuffer Buffer; CIp Ip; @@ -218,7 +218,7 @@ void CUlxProtocol::Task(void) //////////////////////////////////////////////////////////////////////////////////////// // queue helper -void CUlxProtocol::HandleQueue(void) +void CURFProtocol::HandleQueue(void) { m_Queue.Lock(); while ( !m_Queue.empty() ) @@ -285,7 +285,7 @@ void CUlxProtocol::HandleQueue(void) //////////////////////////////////////////////////////////////////////////////////////// // keepalive helpers -void CUlxProtocol::HandleKeepalives(void) +void CURFProtocol::HandleKeepalives(void) { // DExtra protocol sends and monitors keepalives packets // event if the client is currently streaming @@ -327,7 +327,7 @@ void CUlxProtocol::HandleKeepalives(void) //////////////////////////////////////////////////////////////////////////////////////// // Peers helpers -void CUlxProtocol::HandlePeerLinks(void) +void CURFProtocol::HandlePeerLinks(void) { CBuffer buffer; @@ -378,7 +378,7 @@ void CUlxProtocol::HandlePeerLinks(void) //////////////////////////////////////////////////////////////////////////////////////// // streams helpers -void CUlxProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, const CIp &Ip) +void CURFProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, const CIp &Ip) { CCallsign peer; @@ -423,7 +423,7 @@ void CUlxProtocol::OnDvHeaderPacketIn(std::unique_ptr &Header, } } -void CUlxProtocol::OnDvFramePacketIn(std::unique_ptr &DvFrame, const CIp *Ip) +void CURFProtocol::OnDvFramePacketIn(std::unique_ptr &DvFrame, const CIp *Ip) { // tag packet as remote peer origin DvFrame->SetRemotePeerOrigin(); @@ -432,7 +432,7 @@ void CUlxProtocol::OnDvFramePacketIn(std::unique_ptr &DvFrame, c CDextraProtocol::OnDvFramePacketIn(DvFrame, Ip); } -void CUlxProtocol::OnDvLastFramePacketIn(std::unique_ptr &DvFrame, const CIp *Ip) +void CURFProtocol::OnDvLastFramePacketIn(std::unique_ptr &DvFrame, const CIp *Ip) { // tag packet as remote peer origin DvFrame->SetRemotePeerOrigin(); @@ -445,7 +445,7 @@ void CUlxProtocol::OnDvLastFramePacketIn(std::unique_ptr &Dv //////////////////////////////////////////////////////////////////////////////////////// // packet decoding helpers -bool CUlxProtocol::IsValidKeepAlivePacket(const CBuffer &Buffer, CCallsign *callsign) +bool CURFProtocol::IsValidKeepAlivePacket(const CBuffer &Buffer, CCallsign *callsign) { bool valid = false; if (Buffer.size() == 9) @@ -457,7 +457,7 @@ bool CUlxProtocol::IsValidKeepAlivePacket(const CBuffer &Buffer, CCallsign *call } -bool CUlxProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsign, char *modules, CVersion *version) +bool CURFProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsign, char *modules, CVersion *version) { bool valid = false; if ((Buffer.size() == 39) && (Buffer.data()[0] == 'L') && (Buffer.data()[38] == 0)) @@ -474,7 +474,7 @@ bool CUlxProtocol::IsValidConnectPacket(const CBuffer &Buffer, CCallsign *callsi return valid; } -bool CUlxProtocol::IsValidDisconnectPacket(const CBuffer &Buffer, CCallsign *callsign) +bool CURFProtocol::IsValidDisconnectPacket(const CBuffer &Buffer, CCallsign *callsign) { bool valid = false; if ((Buffer.size() == 10) && (Buffer.data()[0] == 'U') && (Buffer.data()[9] == 0)) @@ -485,7 +485,7 @@ bool CUlxProtocol::IsValidDisconnectPacket(const CBuffer &Buffer, CCallsign *cal return valid; } -bool CUlxProtocol::IsValidAckPacket(const CBuffer &Buffer, CCallsign *callsign, char *modules, CVersion *version) +bool CURFProtocol::IsValidAckPacket(const CBuffer &Buffer, CCallsign *callsign, char *modules, CVersion *version) { bool valid = false; if ((Buffer.size() == 39) && (Buffer.data()[0] == 'A') && (Buffer.data()[38] == 0)) @@ -502,7 +502,7 @@ bool CUlxProtocol::IsValidAckPacket(const CBuffer &Buffer, CCallsign *callsign, return valid; } -bool CUlxProtocol::IsValidNackPacket(const CBuffer &Buffer, CCallsign *callsign) +bool CURFProtocol::IsValidNackPacket(const CBuffer &Buffer, CCallsign *callsign) { bool valid = false; if ((Buffer.size() == 10) && (Buffer.data()[0] == 'N') && (Buffer.data()[9] == 0)) @@ -513,7 +513,7 @@ bool CUlxProtocol::IsValidNackPacket(const CBuffer &Buffer, CCallsign *callsign) return valid; } -bool CUlxProtocol::IsValidDvFramePacket(const CBuffer &Buffer, std::unique_ptr &dvframe) +bool CURFProtocol::IsValidDvFramePacket(const CBuffer &Buffer, std::unique_ptr &dvframe) { // base class first (protocol revision 1 and lower) if (CDextraProtocol::IsValidDvFramePacket(Buffer, dvframe)) @@ -538,7 +538,7 @@ bool CUlxProtocol::IsValidDvFramePacket(const CBuffer &Buffer, std::unique_ptr &dvframe) +bool CURFProtocol::IsValidDvLastFramePacket(const CBuffer &Buffer, std::unique_ptr &dvframe) { // base class first (protocol revision 1 and lower) if (CDextraProtocol::IsValidDvLastFramePacket(Buffer, dvframe)) @@ -566,12 +566,12 @@ bool CUlxProtocol::IsValidDvLastFramePacket(const CBuffer &Buffer, std::unique_p //////////////////////////////////////////////////////////////////////////////////////// // packet encoding helpers -void CUlxProtocol::EncodeKeepAlivePacket(CBuffer *Buffer) +void CURFProtocol::EncodeKeepAlivePacket(CBuffer *Buffer) { Buffer->Set(GetReflectorCallsign()); } -void CUlxProtocol::EncodeConnectPacket(CBuffer *Buffer, const char *Modules) +void CURFProtocol::EncodeConnectPacket(CBuffer *Buffer, const char *Modules) { uint8_t tag[] = { 'L' }; @@ -589,7 +589,7 @@ void CUlxProtocol::EncodeConnectPacket(CBuffer *Buffer, const char *Modules) Buffer->resize(39); } -void CUlxProtocol::EncodeDisconnectPacket(CBuffer *Buffer) +void CURFProtocol::EncodeDisconnectPacket(CBuffer *Buffer) { uint8_t tag[] = { 'U' }; @@ -601,7 +601,7 @@ void CUlxProtocol::EncodeDisconnectPacket(CBuffer *Buffer) Buffer->Append((uint8_t)0); } -void CUlxProtocol::EncodeConnectAckPacket(CBuffer *Buffer, const char *Modules) +void CURFProtocol::EncodeConnectAckPacket(CBuffer *Buffer, const char *Modules) { uint8_t tag[] = { 'A' }; @@ -619,7 +619,7 @@ void CUlxProtocol::EncodeConnectAckPacket(CBuffer *Buffer, const char *Modules) Buffer->resize(39); } -void CUlxProtocol::EncodeConnectNackPacket(CBuffer *Buffer) +void CURFProtocol::EncodeConnectNackPacket(CBuffer *Buffer) { uint8_t tag[] = { 'N' }; @@ -631,7 +631,7 @@ void CUlxProtocol::EncodeConnectNackPacket(CBuffer *Buffer) Buffer->Append((uint8_t)0); } -bool CUlxProtocol::EncodeDvFramePacket(const CDvFramePacket &Packet, CBuffer *Buffer) const +bool CURFProtocol::EncodeDvFramePacket(const CDvFramePacket &Packet, CBuffer *Buffer) const { uint8_t tag[] = { 'D','S','V','T',0x20,0x00,0x00,0x00,0x20,0x00,0x01,0x02 }; @@ -650,7 +650,7 @@ bool CUlxProtocol::EncodeDvFramePacket(const CDvFramePacket &Packet, CBuffer *Bu } -bool CUlxProtocol::EncodeDvLastFramePacket(const CDvLastFramePacket &Packet, CBuffer *Buffer) const +bool CURFProtocol::EncodeDvLastFramePacket(const CDvLastFramePacket &Packet, CBuffer *Buffer) const { uint8_t tag[] = { 'D','S','V','T',0x20,0x00,0x00,0x00,0x20,0x00,0x01,0x02 }; uint8_t dstarambe[] = { 0x55,0xC8,0x7A,0x00,0x00,0x00,0x00,0x00,0x00 }; @@ -674,7 +674,7 @@ bool CUlxProtocol::EncodeDvLastFramePacket(const CDvLastFramePacket &Packet, CBu //////////////////////////////////////////////////////////////////////////////////////// // protocol revision helper -int CUlxProtocol::GetConnectingPeerProtocolRevision(const CCallsign &Callsign, const CVersion &Version) +int CURFProtocol::GetConnectingPeerProtocolRevision(const CCallsign &Callsign, const CVersion &Version) { int protrev; @@ -686,14 +686,14 @@ int CUlxProtocol::GetConnectingPeerProtocolRevision(const CCallsign &Callsign, c // otherwise, assume native xlx else { - protrev = CUlxPeer::GetProtocolRevision(Version); + protrev = CURFPeer::GetProtocolRevision(Version); } // done return protrev; } -std::shared_ptr CUlxProtocol::CreateNewPeer(const CCallsign &Callsign, const CIp &Ip, char *Modules, const CVersion &Version) +std::shared_ptr CURFProtocol::CreateNewPeer(const CCallsign &Callsign, const CIp &Ip, char *Modules, const CVersion &Version) { // BM ? if ( Callsign.HasSameCallsignWithWildcard(CCallsign("BM*")) ) @@ -702,6 +702,6 @@ std::shared_ptr CUlxProtocol::CreateNewPeer(const CCallsign &Callsign, co } else { - return std::make_shared(Callsign, Ip, Modules, Version); + return std::make_shared(Callsign, Ip, Modules, Version); } } diff --git a/reflector/ULXProtocol.h b/reflector/URFProtocol.h similarity index 98% rename from reflector/ULXProtocol.h rename to reflector/URFProtocol.h index 39d797b..c759c07 100644 --- a/reflector/ULXProtocol.h +++ b/reflector/URFProtocol.h @@ -30,7 +30,7 @@ class CPeer; //////////////////////////////////////////////////////////////////////////////////////// // class -class CUlxProtocol : public CDextraProtocol +class CURFProtocol : public CDextraProtocol { public: // initialization