bug fix: server list ping times may not be accurate and client list may not be retrieved
This commit is contained in:
parent
324287beda
commit
b9c6d87766
4 changed files with 14 additions and 8 deletions
10
ChangeLog
10
ChangeLog
|
@ -12,13 +12,15 @@
|
||||||
|
|
||||||
- changed the maximum number of clients supported by the server from 20 to 50
|
- changed the maximum number of clients supported by the server from 20 to 50
|
||||||
|
|
||||||
TODO x64 deploy version for Windows -> change deploy script
|
- Windows installer now contains a 32 and 64 bit version of Jamulus (the version to
|
||||||
|
be installed is selected automatically according to the detected operating system)
|
||||||
|
|
||||||
|
- bug fix: server list ping times may not be accurate and client list may not be retrieved
|
||||||
|
|
||||||
|
|
||||||
TODO client: larger sound card buffers are managed by conversion buffer, not in processintern for loop (note iSndCrdFrameSizeFactor!)
|
TODO client: larger sound card buffers are managed by conversion buffer, not in processintern for loop (note iSndCrdFrameSizeFactor!)
|
||||||
|
|
||||||
TODO check why for some servers we do not get client list in server list
|
TODO #12 A server in the same NAT region as the client is not visible (https://sourceforge.net/p/llcon/bugs/12/)
|
||||||
|
|
||||||
TODO check server list registration for correct behavior
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -512,8 +512,12 @@ CClientDlg::CClientDlg ( CClient* pNCliP,
|
||||||
QObject::connect ( &ConnectDlg, SIGNAL ( ReqServerListQuery ( CHostAddress ) ),
|
QObject::connect ( &ConnectDlg, SIGNAL ( ReqServerListQuery ( CHostAddress ) ),
|
||||||
this, SLOT ( OnReqServerListQuery ( CHostAddress ) ) );
|
this, SLOT ( OnReqServerListQuery ( CHostAddress ) ) );
|
||||||
|
|
||||||
|
// note that this connection must be a queued connection, otherwise the server list ping
|
||||||
|
// times are not accurate and the client list may not be retrieved for all servers listed
|
||||||
|
// (it seems the sendto() function needs to be called from different threads to fire the
|
||||||
|
// packet immediately and do not collect packets before transmitting)
|
||||||
QObject::connect ( &ConnectDlg, SIGNAL ( CreateCLServerListPingMes ( CHostAddress ) ),
|
QObject::connect ( &ConnectDlg, SIGNAL ( CreateCLServerListPingMes ( CHostAddress ) ),
|
||||||
this, SLOT ( OnCreateCLServerListPingMes ( CHostAddress ) ) );
|
this, SLOT ( OnCreateCLServerListPingMes ( CHostAddress ) ), Qt::QueuedConnection );
|
||||||
|
|
||||||
QObject::connect ( &ConnectDlg, SIGNAL ( CreateCLServerListReqVerAndOSMes ( CHostAddress ) ),
|
QObject::connect ( &ConnectDlg, SIGNAL ( CreateCLServerListReqVerAndOSMes ( CHostAddress ) ),
|
||||||
this, SLOT ( OnCreateCLServerListReqVerAndOSMes ( CHostAddress ) ) );
|
this, SLOT ( OnCreateCLServerListReqVerAndOSMes ( CHostAddress ) ) );
|
||||||
|
|
|
@ -169,7 +169,7 @@ void CSocket::SendPacket ( const CVector<uint8_t>& vecbySendBuf,
|
||||||
|
|
||||||
const int iVecSizeOut = vecbySendBuf.Size();
|
const int iVecSizeOut = vecbySendBuf.Size();
|
||||||
|
|
||||||
if ( iVecSizeOut != 0 )
|
if ( iVecSizeOut > 0 )
|
||||||
{
|
{
|
||||||
// send packet through network (we have to convert the constant unsigned
|
// send packet through network (we have to convert the constant unsigned
|
||||||
// char vector in "const char*", for this we first convert the const
|
// char vector in "const char*", for this we first convert the const
|
||||||
|
|
Loading…
Reference in a new issue