diff --git a/README.md b/README.md
index ef3f33a..265493d 100644
--- a/README.md
+++ b/README.md
@@ -134,6 +134,6 @@ XLX Server requires the following ports to be open and forwarded properly for in
Pay attention, the XLX Server acts as an YSF Master, which provides 26 wires-x rooms.
It has nothing to do with the regular YSFReflector network, hence you don’t need to register your XLX at ysfreflector.de !
-
+Nevertheless it is possible.
© 2016 Jean-Luc Deltombe (LX3JL) and Luc Engelmann (LX1IQ)
diff --git a/dashboard/changes.txt b/dashboard/changes.txt
index 904cb77..5d18d53 100755
--- a/dashboard/changes.txt
+++ b/dashboard/changes.txt
@@ -1,3 +1,10 @@
+xlx db v2.4.1
+
+you can now hide the liveircddb menu button, if you are running your db in https.
+
+- "config.inc.php
+- "index.php"
+
xlx db v2.4.0
- "config.inc.php"
@@ -91,7 +98,7 @@ xlx db v2.2.2
This version is a major release with voluntary self-registration feature build in.
You need to edit the conf.inc.php to your needs.
-On the first run your personal hash to access the database is place in the server’s /tmp folder.
+On the first run your personal hash to access the database is place in the server’s /tmp folder.
Take care to make a backup of this file because this folder is cleaned up after a server reboot.
This version is a major release
@@ -119,7 +126,7 @@ xlx db v2.1.4
- "class.reflector.php" improved the flag search
- "country.csv" added serveral prefixes
-- "flags" added Puerto Ricco and Åland Islands
+- "flags" added Puerto Ricco and Ã…land Islands
xlx db v2.1.3
diff --git a/dashboard/index.php b/dashboard/index.php
index 56626e1..f72d7fb 100755
--- a/dashboard/index.php
+++ b/dashboard/index.php
@@ -139,7 +139,6 @@ else {
|
|
|
- |
Traffic statistics';
}
+ if ($PageOptions['IRCDDB']['Show']) {
+ echo '
+ | ';
+ }
?>
diff --git a/dashboard/pgs/config.inc.php b/dashboard/pgs/config.inc.php
index 970671c..09f1a13 100755
--- a/dashboard/pgs/config.inc.php
+++ b/dashboard/pgs/config.inc.php
@@ -17,7 +17,7 @@ $VNStat = array();
$PageOptions['ContactEmail'] = 'your_email'; // Support E-Mail address
-$PageOptions['DashboardVersion'] = '2.4.0'; // Dashboard Version
+$PageOptions['DashboardVersion'] = '2.4.1'; // Dashboard Version
$PageOptions['PageRefreshActive'] = true; // Activate automatic refresh
$PageOptions['PageRefreshDelay'] = '10000'; // Page refresh time in miliseconds
@@ -48,6 +48,7 @@ $PageOptions['MetaRobots'] = 'index,follow'; //
$PageOptions['UserPage']['ShowFilter'] = true; // Show Filter on Users page
$PageOptions['Traffic']['Show'] = false; // Enable vnstat traffic statistics
+$PageOptions['IRCDDB']['Show'] = true; // Show liveircddb, set it to false if you are running your db in https
$PageOptions['CustomTXT'] = ''; // custom text in your header
diff --git a/dashboard/pgs/reflectors.php b/dashboard/pgs/reflectors.php
index 15318e2..d79ce5a 100755
--- a/dashboard/pgs/reflectors.php
+++ b/dashboard/pgs/reflectors.php
@@ -43,7 +43,7 @@ for ($i=0;$i'.($i+1).'
'.$NAME.' |
'.$COUNTRY.' |
- |
+ |
'.$COMMENT.' |
';
}
diff --git a/dashboard2/pgs/reflectors.php b/dashboard2/pgs/reflectors.php
index 8211315..f8e1adb 100644
--- a/dashboard2/pgs/reflectors.php
+++ b/dashboard2/pgs/reflectors.php
@@ -40,7 +40,7 @@ for ($i=0;$i'.($i+1).'
'.$NAME.' |
'.$COUNTRY.' |
- |
+ |
'.$COMMENT.' |
';
}
diff --git a/scripts/scripts.readme.txt b/scripts/scripts.readme.txt
index 4008da3..86bb307 100644
--- a/scripts/scripts.readme.txt
+++ b/scripts/scripts.readme.txt
@@ -1,11 +1,10 @@
*************************************************
-*copy xlxd into /etc.init.d/
-*copy ambed.service into /etc/systemd/system/
-*
+*copy xlxd to /etc.init.d/
+*copy ambed.service to /etc/systemd/system/
+*copy watchdog to /ambed/
*************************************************
* xlxd executable must be in /xlxd/ folder
* ambed executable must be in /ambed/ folder
-*
*************************************************
* possible options:
*
@@ -18,3 +17,10 @@
* #systemctl enable ambed
*
*************************************************
+* If your usb port gets unresponsive and you get some persistent timeouts,
+* the watchdog script restarts the ambed service.
+* You can run it every 5 minutes by a cronjob.
+*
+* */5 * * * * /ambed/./watchdog >> /ambed/watchdog.log
+*
+***************************************************
diff --git a/scripts/watchdog b/scripts/watchdog
new file mode 100644
index 0000000..4582bf0
--- /dev/null
+++ b/scripts/watchdog
@@ -0,0 +1,14 @@
+#!/bin/bash
+sleep 5
+PATTERN=timed
+FILE=/var/log/syslog
+if grep -q $PATTERN $FILE;
+ then
+ echo "ambed timeout error"
+ > /var/log/syslog
+ service ambed restart
+ else
+ echo "all ok"
+ echo "Exiting..."
+ exit 0
+fi
diff --git a/src/cg3protocol.cpp b/src/cg3protocol.cpp
old mode 100644
new mode 100755
index 053da9d..9f85420
--- a/src/cg3protocol.cpp
+++ b/src/cg3protocol.cpp
@@ -69,6 +69,7 @@ bool CG3Protocol::Init(void)
std::cout << "Error opening socket on port UDP" << G3_CONFIG_PORT << " on ip " << g_Reflector.GetListenIp() << std::endl;
}
+#ifndef DEBUG_NO_G3_ICMP_SOCKET
ok &= m_IcmpRawSocket.Open(IPPROTO_ICMP);
if ( !ok )
{
@@ -82,7 +83,8 @@ bool CG3Protocol::Init(void)
m_pPresenceThread = new std::thread(ConfigThread, this);
m_pPresenceThread = new std::thread(IcmpThread, this);
}
-
+#endif
+
// update time
m_LastKeepaliveTime.Now();
diff --git a/src/cprotocol.cpp b/src/cprotocol.cpp
old mode 100644
new mode 100755
index 7fd4967..6054971
--- a/src/cprotocol.cpp
+++ b/src/cprotocol.cpp
@@ -19,7 +19,7 @@
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
-// along with Foobar. If not, see .
+// along with Foobar. If not, see .
// ----------------------------------------------------------------------------
#include "main.h"
@@ -52,7 +52,7 @@ CProtocol::~CProtocol()
m_pThread->join();
delete m_pThread;
}
-
+
// empty queue
m_Queue.Lock();
while ( !m_Queue.empty() )
@@ -69,13 +69,13 @@ bool CProtocol::Init(void)
{
// init reflector apparent callsign
m_ReflectorCallsign = g_Reflector.GetCallsign();
-
+
// reset stop flag
m_bStopThread = false;
// start thread;
m_pThread = new std::thread(CProtocol::Thread, this);
-
+
// done
return true;
}
@@ -138,7 +138,12 @@ void CProtocol::OnDvFramePacketIn(CDvFramePacket *Frame, const CIp *Ip)
{
// find the stream
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip);
- if ( stream != NULL )
+ if ( stream == NULL )
+ {
+ // std::cout << "Deleting oprhaned Last Frame Packet with StreamId " << Frame->GetStreamId() << " from " << *Ip << std::endl;
+ delete Frame;
+ }
+ else
{
//std::cout << "DV frame" << "from " << *Ip << std::endl;
// and push
@@ -152,15 +157,23 @@ void CProtocol::OnDvLastFramePacketIn(CDvLastFramePacket *Frame, const CIp *Ip)
{
// find the stream
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip);
- if ( stream != NULL )
+ if ( stream == NULL )
+ {
+ // std::cout << "Deleting oprhaned Last Frame Packet with StreamId " << Frame->GetStreamId() << " from " << *Ip << std::endl;
+ delete Frame;
+ }
+ else
{
// push
stream->Lock();
stream->Push(Frame);
stream->Unlock();
- // and close the stream
- g_Reflector.CloseStream(stream);
+ // and don't close the stream yet but rely on CheckStreamsTimeout
+ // mechanism, so the stream will be closed after the queues have
+ // been sinked out. This avoid last packets to be send back
+ // to transmitting client (master)
+ // g_Reflector.CloseStream(stream);
}
}
@@ -170,7 +183,7 @@ void CProtocol::OnDvLastFramePacketIn(CDvLastFramePacket *Frame, const CIp *Ip)
CPacketStream *CProtocol::GetStream(uint16 uiStreamId, const CIp *Ip)
{
CPacketStream *stream = NULL;
-
+
// find if we have a stream with same streamid in our cache
for ( int i = 0; (i < m_Streams.size()) && (stream == NULL); i++ )
{
@@ -257,4 +270,3 @@ uint32 CProtocol::ModuleToDmrDestId(char m) const
return (uint32)(m - 'A')+1;
}
-
diff --git a/src/main.h b/src/main.h
old mode 100644
new mode 100755
index 03c3af1..7127e39
--- a/src/main.h
+++ b/src/main.h
@@ -49,7 +49,7 @@
#define VERSION_MAJOR 2
#define VERSION_MINOR 4
-#define VERSION_REVISION 0
+#define VERSION_REVISION 1
// global ------------------------------------------------------
@@ -60,6 +60,7 @@
//#define DEBUG_NO_ERROR_ON_XML_OPEN_FAIL
//#define DEBUG_DUMPFILE
+//#define DEBUG_NO_G3_ICMP_SOCKET
// reflector ---------------------------------------------------