Merge pull request #1 from LX3JL/master

Update
pull/169/head
Catalin Vatra 5 years ago committed by GitHub
commit 3be46c4246
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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. 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 dont need to register your XLX at ysfreflector.de ! It has nothing to do with the regular YSFReflector network, hence you dont need to register your XLX at ysfreflector.de !
Nevertheless it is possible.
© 2016 Jean-Luc Deltombe (LX3JL) and Luc Engelmann (LX1IQ) © 2016 Jean-Luc Deltombe (LX3JL) and Luc Engelmann (LX1IQ)

@ -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 xlx db v2.4.0
- "config.inc.php" - "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. This version is a major release with voluntary self-registration feature build in.
You need to edit the conf.inc.php to your needs. 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 servers /tmp folder. On the first run your personal hash to access the database is place in the servers /tmp folder.
Take care to make a backup of this file because this folder is cleaned up after a server reboot. 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 This version is a major release
@ -119,7 +126,7 @@ xlx db v2.1.4
- "class.reflector.php" improved the flag search - "class.reflector.php" improved the flag search
- "country.csv" added serveral prefixes - "country.csv" added serveral prefixes
- "flags" added Puerto Ricco and Åland Islands - "flags" added Puerto Ricco and Åland Islands
xlx db v2.1.3 xlx db v2.1.3

@ -139,7 +139,6 @@ else {
<td><a href="./index.php?show=repeaters" class="menulink<?php if ($_GET['show'] == 'repeaters') { echo 'active'; } ?>">Repeaters / Nodes (<?php echo $Reflector->NodeCount(); ?>)</a></td> <td><a href="./index.php?show=repeaters" class="menulink<?php if ($_GET['show'] == 'repeaters') { echo 'active'; } ?>">Repeaters / Nodes (<?php echo $Reflector->NodeCount(); ?>)</a></td>
<td><a href="./index.php?show=peers" class="menulink<?php if ($_GET['show'] == 'peers') { echo 'active'; } ?>">Peers (<?php echo $Reflector->PeerCount(); ?>)</a></td> <td><a href="./index.php?show=peers" class="menulink<?php if ($_GET['show'] == 'peers') { echo 'active'; } ?>">Peers (<?php echo $Reflector->PeerCount(); ?>)</a></td>
<td><a href="./index.php?show=reflectors" class="menulink<?php if ($_GET['show'] == 'reflectors') { echo 'active'; } ?>">Reflectorlist</a></td> <td><a href="./index.php?show=reflectors" class="menulink<?php if ($_GET['show'] == 'reflectors') { echo 'active'; } ?>">Reflectorlist</a></td>
<td><a href="./index.php?show=liveircddb" class="menulink<?php if ($_GET['show'] == 'liveircddb') { echo 'active'; } ?>">D-Star live</a></td>
<?php <?php
if ($PageOptions['Traffic']['Show']) { if ($PageOptions['Traffic']['Show']) {
@ -148,6 +147,12 @@ else {
if ($_GET['show'] == 'traffic') { echo 'active'; } if ($_GET['show'] == 'traffic') { echo 'active'; }
echo '">Traffic statistics</a></td>'; echo '">Traffic statistics</a></td>';
} }
if ($PageOptions['IRCDDB']['Show']) {
echo '
<td><a href="./index.php?show=liveircddb" class="menulink';
if ($_GET['show'] == 'liveircddb') { echo 'active'; }
echo '">D-Star live</a></td>';
}
?> ?>
</tr> </tr>

@ -17,7 +17,7 @@ $VNStat = array();
$PageOptions['ContactEmail'] = 'your_email'; // Support E-Mail address $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['PageRefreshActive'] = true; // Activate automatic refresh
$PageOptions['PageRefreshDelay'] = '10000'; // Page refresh time in miliseconds $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['UserPage']['ShowFilter'] = true; // Show Filter on Users page
$PageOptions['Traffic']['Show'] = false; // Enable vnstat traffic statistics $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 $PageOptions['CustomTXT'] = ''; // custom text in your header

@ -43,7 +43,7 @@ for ($i=0;$i<count($Reflectors);$i++) {
<td align="center">'.($i+1).'</td> <td align="center">'.($i+1).'</td>
<td><a href="'.$DASHBOARDURL.'" target="_blank" class="listinglink" title="Visit the Dashboard of&nbsp;'.$NAME.'">'.$NAME.'</a></td> <td><a href="'.$DASHBOARDURL.'" target="_blank" class="listinglink" title="Visit the Dashboard of&nbsp;'.$NAME.'">'.$NAME.'</a></td>
<td>'.$COUNTRY.'</td> <td>'.$COUNTRY.'</td>
<td align="center" valign="middle"><img src="./img/'; if ($LASTCONTACT<(time()-600)) { echo 'down'; } ELSE { echo 'up'; } echo '.png" height="25" /></td> <td align="center" valign="middle"><img src="./img/'; if ($LASTCONTACT<(time()-1800)) { echo 'down'; } ELSE { echo 'up'; } echo '.png" height="25" /></td>
<td>'.$COMMENT.'</td> <td>'.$COMMENT.'</td>
</tr>'; </tr>';
} }

@ -40,7 +40,7 @@ for ($i=0;$i<count($Reflectors);$i++) {
<td>'.($i+1).'</td> <td>'.($i+1).'</td>
<td><a href="'.$DASHBOARDURL.'" target="_blank" class="listinglink" title="Visit the Dashboard of&nbsp;'.$NAME.'">'.$NAME.'</a></td> <td><a href="'.$DASHBOARDURL.'" target="_blank" class="listinglink" title="Visit the Dashboard of&nbsp;'.$NAME.'">'.$NAME.'</a></td>
<td>'.$COUNTRY.'</td> <td>'.$COUNTRY.'</td>
<td><img src="./img/'; if ($LASTCONTACT<(time()-600)) { echo 'down'; } ELSE { echo 'up'; } echo '.png" class="table-status" alt=""></td> <td><img src="./img/'; if ($LASTCONTACT<(time()-1800)) { echo 'down'; } ELSE { echo 'up'; } echo '.png" class="table-status" alt=""></td>
<td>'.$COMMENT.'</td> <td>'.$COMMENT.'</td>
</tr>'; </tr>';
} }

@ -1,11 +1,10 @@
************************************************* *************************************************
*copy xlxd into /etc.init.d/ *copy xlxd to /etc.init.d/
*copy ambed.service into /etc/systemd/system/ *copy ambed.service to /etc/systemd/system/
* *copy watchdog to /ambed/
************************************************* *************************************************
* xlxd executable must be in /xlxd/ folder * xlxd executable must be in /xlxd/ folder
* ambed executable must be in /ambed/ folder * ambed executable must be in /ambed/ folder
*
************************************************* *************************************************
* possible options: * possible options:
* *
@ -18,3 +17,10 @@
* #systemctl enable ambed * #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
*
***************************************************

@ -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

@ -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; 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); ok &= m_IcmpRawSocket.Open(IPPROTO_ICMP);
if ( !ok ) if ( !ok )
{ {
@ -82,7 +83,8 @@ bool CG3Protocol::Init(void)
m_pPresenceThread = new std::thread(ConfigThread, this); m_pPresenceThread = new std::thread(ConfigThread, this);
m_pPresenceThread = new std::thread(IcmpThread, this); m_pPresenceThread = new std::thread(IcmpThread, this);
} }
#endif
// update time // update time
m_LastKeepaliveTime.Now(); m_LastKeepaliveTime.Now();

@ -19,7 +19,7 @@
// GNU General Public License for more details. // GNU General Public License for more details.
// //
// You should have received a copy of the GNU General Public License // You should have received a copy of the GNU General Public License
// along with Foobar. If not, see <http://www.gnu.org/licenses/>. // along with Foobar. If not, see <http://www.gnu.org/licenses/>.
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#include "main.h" #include "main.h"
@ -52,7 +52,7 @@ CProtocol::~CProtocol()
m_pThread->join(); m_pThread->join();
delete m_pThread; delete m_pThread;
} }
// empty queue // empty queue
m_Queue.Lock(); m_Queue.Lock();
while ( !m_Queue.empty() ) while ( !m_Queue.empty() )
@ -69,13 +69,13 @@ bool CProtocol::Init(void)
{ {
// init reflector apparent callsign // init reflector apparent callsign
m_ReflectorCallsign = g_Reflector.GetCallsign(); m_ReflectorCallsign = g_Reflector.GetCallsign();
// reset stop flag // reset stop flag
m_bStopThread = false; m_bStopThread = false;
// start thread; // start thread;
m_pThread = new std::thread(CProtocol::Thread, this); m_pThread = new std::thread(CProtocol::Thread, this);
// done // done
return true; return true;
} }
@ -138,7 +138,12 @@ void CProtocol::OnDvFramePacketIn(CDvFramePacket *Frame, const CIp *Ip)
{ {
// find the stream // find the stream
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip); 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; //std::cout << "DV frame" << "from " << *Ip << std::endl;
// and push // and push
@ -152,15 +157,23 @@ void CProtocol::OnDvLastFramePacketIn(CDvLastFramePacket *Frame, const CIp *Ip)
{ {
// find the stream // find the stream
CPacketStream *stream = GetStream(Frame->GetStreamId(), Ip); 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 // push
stream->Lock(); stream->Lock();
stream->Push(Frame); stream->Push(Frame);
stream->Unlock(); stream->Unlock();
// and close the stream // and don't close the stream yet but rely on CheckStreamsTimeout
g_Reflector.CloseStream(stream); // 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 *CProtocol::GetStream(uint16 uiStreamId, const CIp *Ip)
{ {
CPacketStream *stream = NULL; CPacketStream *stream = NULL;
// find if we have a stream with same streamid in our cache // find if we have a stream with same streamid in our cache
for ( int i = 0; (i < m_Streams.size()) && (stream == NULL); i++ ) 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; return (uint32)(m - 'A')+1;
} }

@ -49,7 +49,7 @@
#define VERSION_MAJOR 2 #define VERSION_MAJOR 2
#define VERSION_MINOR 4 #define VERSION_MINOR 4
#define VERSION_REVISION 0 #define VERSION_REVISION 1
// global ------------------------------------------------------ // global ------------------------------------------------------
@ -60,6 +60,7 @@
//#define DEBUG_NO_ERROR_ON_XML_OPEN_FAIL //#define DEBUG_NO_ERROR_ON_XML_OPEN_FAIL
//#define DEBUG_DUMPFILE //#define DEBUG_DUMPFILE
//#define DEBUG_NO_G3_ICMP_SOCKET
// reflector --------------------------------------------------- // reflector ---------------------------------------------------

Loading…
Cancel
Save

Powered by TurnKey Linux.