Simplify the format of the XLX Hosts file a little.

This commit is contained in:
Jonathan Naylor
2017-09-26 14:58:22 +01:00
parent 82ce7a32f3
commit 2159abb418
9 changed files with 167 additions and 142 deletions

View File

@@ -90,6 +90,8 @@ m_xlxNetworkEnabled(false),
m_xlxNetworkId(0U), m_xlxNetworkId(0U),
m_xlxNetworkFile(), m_xlxNetworkFile(),
m_xlxNetworkReloadTime(0U), m_xlxNetworkReloadTime(0U),
m_xlxNetworkPort(62030U),
m_xlxNetworkPassword("passw0rd"),
m_xlxNetworkLocal(0U), m_xlxNetworkLocal(0U),
m_xlxNetworkSlot(1U), m_xlxNetworkSlot(1U),
m_xlxNetworkTG(8U), m_xlxNetworkTG(8U),
@@ -192,6 +194,10 @@ bool CConf::read()
m_xlxNetworkFile = value; m_xlxNetworkFile = value;
else if (::strcmp(key, "ReloadTime") == 0) else if (::strcmp(key, "ReloadTime") == 0)
m_xlxNetworkReloadTime = (unsigned int)::atoi(value); m_xlxNetworkReloadTime = (unsigned int)::atoi(value);
else if (::strcmp(key, "Port") == 0)
m_xlxNetworkPort = (unsigned int)::atoi(value);
else if (::strcmp(key, "Password") == 0)
m_xlxNetworkPassword = value;
else if (::strcmp(key, "Local") == 0) else if (::strcmp(key, "Local") == 0)
m_xlxNetworkLocal = (unsigned int)::atoi(value); m_xlxNetworkLocal = (unsigned int)::atoi(value);
else if (::strcmp(key, "Slot") == 0) else if (::strcmp(key, "Slot") == 0)
@@ -486,6 +492,16 @@ unsigned int CConf::getXLXNetworkReloadTime() const
return m_xlxNetworkReloadTime; return m_xlxNetworkReloadTime;
} }
unsigned int CConf::getXLXNetworkPort() const
{
return m_xlxNetworkPort;
}
std::string CConf::getXLXNetworkPassword() const
{
return m_xlxNetworkPassword;
}
unsigned int CConf::getXLXNetworkLocal() const unsigned int CConf::getXLXNetworkLocal() const
{ {
return m_xlxNetworkLocal; return m_xlxNetworkLocal;

4
Conf.h
View File

@@ -124,6 +124,8 @@ public:
unsigned int getXLXNetworkId() const; unsigned int getXLXNetworkId() const;
std::string getXLXNetworkFile() const; std::string getXLXNetworkFile() const;
unsigned int getXLXNetworkReloadTime() const; unsigned int getXLXNetworkReloadTime() const;
unsigned int getXLXNetworkPort() const;
std::string getXLXNetworkPassword() const;
unsigned int getXLXNetworkLocal() const; unsigned int getXLXNetworkLocal() const;
unsigned int getXLXNetworkSlot() const; unsigned int getXLXNetworkSlot() const;
unsigned int getXLXNetworkTG() const; unsigned int getXLXNetworkTG() const;
@@ -191,6 +193,8 @@ private:
unsigned int m_xlxNetworkId; unsigned int m_xlxNetworkId;
std::string m_xlxNetworkFile; std::string m_xlxNetworkFile;
unsigned int m_xlxNetworkReloadTime; unsigned int m_xlxNetworkReloadTime;
unsigned int m_xlxNetworkPort;
std::string m_xlxNetworkPassword;
unsigned int m_xlxNetworkLocal; unsigned int m_xlxNetworkLocal;
unsigned int m_xlxNetworkSlot; unsigned int m_xlxNetworkSlot;
unsigned int m_xlxNetworkTG; unsigned int m_xlxNetworkTG;

View File

@@ -144,6 +144,8 @@ m_xlxSlot(0U),
m_xlxTG(0U), m_xlxTG(0U),
m_xlxBase(0U), m_xlxBase(0U),
m_xlxLocal(0U), m_xlxLocal(0U),
m_xlxPort(62030U),
m_xlxPassword("passw0rd"),
m_xlxStartup(950U), m_xlxStartup(950U),
m_xlxRoom(4000U), m_xlxRoom(4000U),
m_xlxRelink(1000U), m_xlxRelink(1000U),
@@ -1107,9 +1109,11 @@ bool CDMRGateway::createXLXNetwork()
return false; return false;
} }
m_xlxLocal = m_conf.getXLXNetworkLocal(); m_xlxLocal = m_conf.getXLXNetworkLocal();
m_xlxId = m_conf.getXLXNetworkId(); m_xlxPort = m_conf.getXLXNetworkPort();
m_xlxDebug = m_conf.getXLXNetworkDebug(); m_xlxPassword = m_conf.getXLXNetworkPassword();
m_xlxId = m_conf.getXLXNetworkId();
m_xlxDebug = m_conf.getXLXNetworkDebug();
if (m_xlxId == 0U) if (m_xlxId == 0U)
m_xlxId = m_repeater->getId(); m_xlxId = m_repeater->getId();
@@ -1124,10 +1128,12 @@ bool CDMRGateway::createXLXNetwork()
LogInfo("XLX Network Parameters"); LogInfo("XLX Network Parameters");
LogInfo(" Id: %u", m_xlxId); LogInfo(" Id: %u", m_xlxId);
LogInfo(" Hosts file: %s", fileName.c_str()); LogInfo(" Hosts file: %s", fileName.c_str());
LogInfo(" Reload time: %u minutes", reloadTime);
if (m_xlxLocal > 0U) if (m_xlxLocal > 0U)
LogInfo(" Local: %u", m_xlxLocal); LogInfo(" Local: %u", m_xlxLocal);
else else
LogInfo(" Local: random"); LogInfo(" Local: random");
LogInfo(" Port: %u", m_xlxPort);
LogInfo(" Slot: %u", m_xlxSlot); LogInfo(" Slot: %u", m_xlxSlot);
LogInfo(" TG: %u", m_xlxTG); LogInfo(" TG: %u", m_xlxTG);
LogInfo(" Base: %u", m_xlxBase); LogInfo(" Base: %u", m_xlxBase);
@@ -1164,7 +1170,7 @@ bool CDMRGateway::linkXLX(unsigned int number)
m_xlxConnected = false; m_xlxConnected = false;
m_xlxRelink.stop(); m_xlxRelink.stop();
m_xlxNetwork = new CDMRNetwork(reflector->m_address, reflector->m_port, m_xlxLocal, m_xlxId, reflector->m_password, "XLX", m_xlxDebug); m_xlxNetwork = new CDMRNetwork(reflector->m_address, m_xlxPort, m_xlxLocal, m_xlxId, m_xlxPassword, "XLX", m_xlxDebug);
unsigned char config[400U]; unsigned char config[400U];
unsigned int len = m_repeater->getConfig(config); unsigned int len = m_repeater->getConfig(config);

View File

@@ -54,6 +54,8 @@ private:
unsigned int m_xlxTG; unsigned int m_xlxTG;
unsigned int m_xlxBase; unsigned int m_xlxBase;
unsigned int m_xlxLocal; unsigned int m_xlxLocal;
unsigned int m_xlxPort;
std::string m_xlxPassword;
unsigned int m_xlxStartup; unsigned int m_xlxStartup;
unsigned int m_xlxRoom; unsigned int m_xlxRoom;
CTimer m_xlxRelink; CTimer m_xlxRelink;

View File

@@ -25,6 +25,8 @@ Directory=./Audio
[XLX Network] [XLX Network]
Enabled=1 Enabled=1
File=XLXHosts.txt File=XLXHosts.txt
Port=62030
Password=passw0rd
ReloadTime=60 ReloadTime=60
# Local=3351 # Local=3351
Slot=1 Slot=1

View File

@@ -59,17 +59,13 @@ bool CReflectors::load()
char* p1 = ::strtok(buffer, ";\r\n"); char* p1 = ::strtok(buffer, ";\r\n");
char* p2 = ::strtok(NULL, ";\r\n"); char* p2 = ::strtok(NULL, ";\r\n");
char* p3 = ::strtok(NULL, ";\r\n"); char* p3 = ::strtok(NULL, "\r\n");
char* p4 = ::strtok(NULL, ";\r\n");
char* p5 = ::strtok(NULL, "\r\n");
if (p1 != NULL && p2 != NULL && p3 != NULL && p4 != NULL && p5 != NULL) { if (p1 != NULL && p2 != NULL && p3 != NULL) {
CReflector* refl = new CReflector; CReflector* refl = new CReflector;
refl->m_id = (unsigned int)::atoi(p1); refl->m_id = (unsigned int)::atoi(p1);
refl->m_address = std::string(p2); refl->m_address = std::string(p2);
refl->m_port = (unsigned int)::atoi(p3); refl->m_startup = (unsigned int)::atoi(p3);
refl->m_startup = (unsigned int)::atoi(p4);
refl->m_password = std::string(p5);
m_reflectors.push_back(refl); m_reflectors.push_back(refl);
} }
} }

View File

@@ -29,17 +29,13 @@ public:
CReflector() : CReflector() :
m_id(0U), m_id(0U),
m_address(), m_address(),
m_port(0U), m_startup(0U)
m_startup(0U),
m_password()
{ {
} }
unsigned int m_id; unsigned int m_id;
std::string m_address; std::string m_address;
unsigned int m_port;
unsigned int m_startup; unsigned int m_startup;
std::string m_password;
}; };
class CReflectors { class CReflectors {

View File

@@ -1,125 +1,128 @@
# The format of this file is: # The format of this file is:
# XLX Number;host;port;default;password # XLX Number;host;default
000;206.208.56.92;62030;4004;passw0rd 000;206.208.56.92;4004
001;77.57.43.220;62030;4004;passw0rd 001;77.57.43.220;4004
002;64.137.191.177;62030;4004;passw0rd 002;64.137.191.177;4004
004;44.103.34.3;62030;4004;passw0rd 004;44.103.34.3;4004
007;212.227.203.37;62030;4004;passw0rd 006;66.154.105.126;4004
015;176.10.105.212;62030;4004;passw0rd 007;212.227.203.37;4004
017;81.169.228.115;62030;4004;passw0rd 011;81.95.126.168;4004
018;149.202.61.56;62030;4004;passw0rd 015;176.10.105.212;4004
020;94.177.164.25;62030;4004;passw0rd 017;81.169.228.115;4004
022;83.137.45.116;62030;4004;passw0rd 018;149.202.61.56;4004
023;185.177.59.166;62030;4004;passw0rd 020;94.177.164.25;4004
024;94.199.172.148;62030;4004;passw0rd 022;83.137.45.116;4004
031;185.122.56.190;62030;4004;passw0rd 023;185.177.59.166;4004
039;185.203.118.66;62030;4004;passw0rd 024;94.199.172.148;4004
040;109.71.45.29;62030;4004;passw0rd 031;185.122.56.190;4004
046;176.10.140.161;62030;4004;passw0rd 039;185.203.118.66;4004
047;121.94.218.243;62030;4004;passw0rd 040;109.71.45.29;4004
051;93.186.254.219;62030;4004;passw0rd 046;176.10.140.161;4004
060;212.237.36.181;62030;4004;passw0rd 047;121.94.218.243;4004
064;202.241.175.133;62030;4004;passw0rd 051;93.186.254.219;4004
068;92.222.145.202;62030;4004;passw0rd 060;212.237.36.181;4004
069;89.36.214.120;62030;4004;passw0rd 064;202.241.175.133;4004
075;5.135.162..136;62030;4004;passw0rd 068;92.222.145.202;4004
076;203.137.116.117;62030;4004;passw0rd 069;89.36.214.120;4004
078;109.10.128.221;62030;4004;passw0rd 075;5.135.162.136;4004
079;121.162.91.94;62030;4004;passw0rd 076;203.137.116.117;4004
087;44.137.36.209;62030;4004;passw0rd 078;109.10.128.221;4004
088;194.109.192.235;62030;4004;passw0rd 079;121.162.91.94;4004
089;194.109.192.236;62030;4004;passw0rd 087;44.137.36.209;4004
090;91.92.136.252;62030;4004;passw0rd 088;194.109.192.235;4004
095;58.1.93.223;62030;4004;passw0rd 089;194.109.192.236;4004
099;212..237.59.103;62030;4004;passw0rd 090;91.92.136.252;4004
100;96.94.7.196;62030;4004;passw0rd 095;58.1.93.223;4004
101;104.233.105.86;62030;4004;passw0rd 098;111.168.208.169;4004
103;64.137.248.42;62030;4004;passw0rd 099;212.237.59.103;4004
104;206.208.56.93;62030;4004;passw0rd 100;96.94.7.196;4004
111;61.214.140.24;62030;4004;passw0rd 101;104.233.105.86;4004
112;216.45.55.151;62030;4004;passw0rd 103;64.137.248.42;4004
114;91.121.136.94;62030;4004;passw0rd 104;206.208.56.93;4004
118;5.249.148.252;62030;4004;passw0rd 111;61.214.140.24;4004
121;174.37.249.156;62030;4004;passw0rd 112;80.211.236.189;4004
124;211.14.169.234;62030;4004;passw0rd 114;91.121.136.94;4004
145;178.59.23.138;62030;4004;passw0rd 118;5.249.148.252;4004
170;210.178.113.173;62030;4004;passw0rd 121;174.37.249.156;4004
171;121.162.91.45;62030;4004;passw0rd 124;211.14.169.234;4004
206;193.190.240.227;62030;4004;passw0rd 145;178.59.23.138;4004
208;151.80.155.39;62030;4004;passw0rd 170;210.178.113.173;4004
210;45.62.210.243;62030;4004;passw0rd 171;121.162.91.45;4004
214;185.47.129.230;62030;4004;passw0rd 206;193.190.240.227;4004
222;93.189.136.50;62030;4004;passw0rd 208;151.80.155.39;4004
228;212.237.33.114;62030;4004;passw0rd 210;45.62.210.243;4004
232;213.47.219.169;62030;4004;passw0rd 214;185.47.129.230;4004
241;151.80.158.227;62030;4004;passw0rd 222;93.189.136.50;4004
246;172.93.48.159;62030;4004;passw0rd 228;212.237.33.114;4004
248;158.69.206.45;62030;4004;passw0rd 232;213.47.219.169;4004
255;245.115.35.52;62030;4004;passw0rd 241;151.80.158.227;4004
265;51.255.43.60;62030;4004;passw0rd 246;172.93.48.159;4004
270;158.64.26..132;62030;4004;passw0rd 255;245.115.35.52;4004
291;60.112.168.104;62030;4004;passw0rd 265;51.255.43.60;4004
295;45.62.238.78;62030;4004;passw0rd 270;158.64.26.132;4004
298;122.131.154.87;62030;4004;passw0rd 291;60.112.168.104;4004
299;125.236.227.43;62030;4004;passw0rd 295;45.62.238.78;4004
300;64.137.172.56;62030;4004;passw0rd 298;122.131.152.178;4004
307;104.36.40.243;62030;4004;passw0rd 299;125.236.227.43;4004
311;78.47.206.12;62030;4004;passw0rd 300;64.137.172.56;4004
313;34.213.108.164;62030;4001;passw0rd 307;104.36.40.243;4004
339;198.98.53.247;62030;4004;passw0rd 311;78.47.206.12;4004
357;52.39.82.54;62030;4004;passw0rd 313;34.213.108.164;4001
359;79.232.250.96;62030;4004;passw0rd 339;198.98.53.247;4004
365;59.139.141.204;62030;4004;passw0rd 357;52.39.82.54;4004
373;101.143.24.88;62030;4004;passw0rd 359;79.232.250.96;4004
382;61.116.7.187;62030;4004;passw0rd 365;59.139.141.204;4004
389;xlxdmr.duckdns.org;62030;4004;passw0rd 373;101.143.24.88;4004
390;31.14.140.230;62030;4004;passw0rd 382;61.116.7.187;4004
398;45.62.243.153;62030;4004;passw0rd 389;106.71.106.79;4004
412;42.151.97.55;62030;4004;passw0rd 390;31.14.140.230;4004
441;203.137.99.110;62030;4004;passw0rd 398;45.62.243.153;4004
444;188.68.37.51;62030;4004;passw0rd 412;42.151.97.55;4004
450;64.137.161.11;62030;4004;passw0rd 441;203.137.99.110;4004
486;51.255.172.249;62030;4004;passw0rd 444;188.68.37.51;4004
502;74..208.88.137;62030;4004;passw0rd 450;64.137.161.11;4004
518;176.9.1.168;62030;4004;passw0rd 486;51.255.172.249;4004
538;133.137.49.171;62030;4004;passw0rd 499;59.157.4.151;4004
550;151.80.141.175;62030;4004;passw0rd 502;74.208.88.137;4004
555;64.137.186..11;62030;4004;passw0rd 518;176.9.1.168;4004
569;58.70.25.88;62030;4004;passw0rd 538;133.137.49.171;4004
595;218.226.193.157;62030;4004;passw0rd 550;151.80.141.175;4004
601;51.141.52.193;62030;4004;passw0rd 555;64.137.186.11;4004
626;202.137.244.157;62030;4004;passw0rd 569;58.70.25.88;4004
706;93.186.255.126;62030;4004;passw0rd 595;218.226.193.157;4004
707;90.145.156.196;62030;4004;passw0rd 601;51.141.52.193;4004
708;202.218.37.62;62030;4004;passw0rd 626;202.137.244.157;4004
709;212.237.34.32;62030;4004;passw0rd 706;93.186.255.126;4004
711;212.237..18.27;62030;4004;passw0rd 707;90.145.156.196;4004
714;85.214.119.76;62030;4004;passw0rd 708;202.218.37.62;4004
724;191.232.36.180;62030;4004;passw0rd 709;212.237.34.32;4004
746;178.254.34.44;62030;4004;passw0rd 711;212.237.18.27;4004
750;203.86.206.49;62030;4004;passw0rd 714;85.214.119.76;4004
766;201.62.48.61;62030;4004;passw0rd 724;191.232.36.180;4004
773;94.177.175.230;62030;4004;passw0rd 746;178.254.34.44;4004
781;175.179.238.153;62030;4004;passw0rd 750;203.86.206.49;4004
801;77.117.214.188;62030;4004;passw0rd 766;201.62.48.61;4004
812;126.25.168.252;62030;4004;passw0rd 773;94.177.175.230;4004
813;97.76.81.165;62030;4004;passw0rd 781;175.179.238.153;4004
850;88.198.94.77;62030;4004;passw0rd 801;77.117.214.188;4004
886;118.163.103.178;62030;4004;passw0rd 812;126.25.168.252;4004
887;118.163.103..177;62030;4004;passw0rd 813;97.76.81.165;4004
888;31.14.135.7;62030;4004;passw0rd 850;88.198.94.77;4004
897;212.237.2.183;62030;4004;passw0rd 886;118.163.103.178;4004
908;92.222.23.124;62030;4004;passw0rd 887;118.163.103.177;4004
909;216.86.147.198;62030;4004;passw0rd 888;31.14.135.7;4004
911;5..196.73.89;62030;4004;passw0rd 897;212.237.2.183;4004
929;158.69.166.132;62030;4004;passw0rd 908;92.222.23.124;4004
930;94.177.160.5;62030;4004;passw0rd 909;216.86.147.198;4004
933;37.59.119.115;62030;4004;passw0rd 911;5.196.73.89;4004
940;202.218.37.121;62030;4004;passw0rd 929;158.69.166.132;4004
950;xlx950.epf.lu;62030;4005;passw0rd 930;94.177.160.5;4004
967;95.158.165.32;62030;4004;passw0rd 933;37.59.119.115;4004
974;94.177.217.52;62030;4004;passw0rd 940;202.218.37.121;4004
976;212.237.36.71;62030;4004;passw0rd 950;158.64.26.134;4005
989;75..110.247.252;62030;4004;passw0rd 967;95.158.165.32;4004
995;142.116.255.245;62030;4004;passw0rd 974;94.177.217.52;4004
997;94.177.187.40;62030;4004;passw0rd 976;212.237.36.71;4004
989;75.110.247.252;4004
995;142.116.255.245;4004
997;94.177.187.40;4004

View File

@@ -86,7 +86,7 @@ fi
curl http://xlxapi.rlx.lu/api.php?do=GetXLXDMRMaster | awk ' curl http://xlxapi.rlx.lu/api.php?do=GetXLXDMRMaster | awk '
BEGIN { BEGIN {
print "# The format of this file is:" print "# The format of this file is:"
print "# XLX Number;host;port;default;password" print "# XLX Number;host;default"
} }
/^XLX/ { /^XLX/ {
reflector=4004 reflector=4004
@@ -94,7 +94,7 @@ BEGIN {
reflector=4001 reflector=4001
if ($1 == "XLX950") if ($1 == "XLX950")
reflector=4005 reflector=4005
printf "%s;%s;62030;%d;passw0rd\n", substr($1,4), $2, reflector printf "%s;%s;%d\n", substr($1,4), $2, reflector
}' > ${XLXHOSTS} }' > ${XLXHOSTS}
exit 0 exit 0