clean up "new connection" mechanism for the server (which messages are fired, etc.)
This commit is contained in:
parent
8e95b548cb
commit
72b24fedf3
4 changed files with 31 additions and 33 deletions
|
@ -419,7 +419,6 @@ EPutDataStat CChannel::PutData ( const CVector<uint8_t>& vecbyData,
|
|||
|
||||
// init flags
|
||||
bool bIsProtocolPacket = false;
|
||||
bool bIsAudioPacket = false;
|
||||
bool bNewConnection = false;
|
||||
|
||||
if ( bIsEnabled )
|
||||
|
@ -460,9 +459,6 @@ EPutDataStat CChannel::PutData ( const CVector<uint8_t>& vecbyData,
|
|||
// only process audio if packet has correct size
|
||||
if ( iNumBytes == ( iNetwFrameSize * iNetwFrameSizeFact ) )
|
||||
{
|
||||
// set audio packet flag
|
||||
bIsAudioPacket = true;
|
||||
|
||||
// store new packet in jitter buffer
|
||||
if ( SockBuf.Put ( vecbyData, iNumBytes ) )
|
||||
{
|
||||
|
@ -488,6 +484,8 @@ EPutDataStat CChannel::PutData ( const CVector<uint8_t>& vecbyData,
|
|||
// about the audio packet properties via the protocol
|
||||
|
||||
// check if channel was not connected, this is a new connection
|
||||
// (do not fire an event directly since we are inside a mutex
|
||||
// region -> to avoid a dead-lock)
|
||||
bNewConnection = !IsConnected();
|
||||
|
||||
// reset time-out counter
|
||||
|
@ -498,23 +496,6 @@ EPutDataStat CChannel::PutData ( const CVector<uint8_t>& vecbyData,
|
|||
|
||||
if ( bNewConnection )
|
||||
{
|
||||
// if this is a new connection and the current network packet is
|
||||
// neither an audio or protocol packet, we have to query the
|
||||
// network transport properties for the audio packets
|
||||
// (this is only required for server since we defined that the
|
||||
// server has to send with the same properties as sent by
|
||||
// the client)
|
||||
|
||||
// TODO check the conditions: !bIsProtocolPacket should always be true
|
||||
// since we can only get here if bNewConnection, should we really put
|
||||
// !bIsAudioPacket in here, because shouldn't we always query the audio
|
||||
// properties on a new connection?
|
||||
|
||||
if ( bIsServer && ( !bIsProtocolPacket ) && ( !bIsAudioPacket ) )
|
||||
{
|
||||
Protocol.CreateReqNetwTranspPropsMes();
|
||||
}
|
||||
|
||||
// inform other objects that new connection was established
|
||||
emit NewConnection();
|
||||
}
|
||||
|
|
|
@ -137,6 +137,7 @@ Protocol.CreateChanNameMes ( ChInfo.strName );
|
|||
Protocol.CreateJitBufMes ( iJitBufSize );
|
||||
}
|
||||
}
|
||||
void CreateReqNetwTranspPropsMes() { Protocol.CreateReqNetwTranspPropsMes(); }
|
||||
void CreateReqJitBufMes() { Protocol.CreateReqJitBufMes(); }
|
||||
void CreateReqConnClientsList() { Protocol.CreateReqConnClientsList(); }
|
||||
void CreateChatTextMes ( const QString& strChatText ) { Protocol.CreateChatTextMes ( strChatText ); }
|
||||
|
|
|
@ -514,6 +514,21 @@ void CServer::OnSendProtMessage ( int iChID, CVector<uint8_t> vecMessage )
|
|||
Socket.SendPacket ( vecMessage, vecChannels[iChID].GetAddress() );
|
||||
}
|
||||
|
||||
void CServer::OnNewConnection ( int iChID )
|
||||
{
|
||||
// on a new connection we query the network transport properties for the
|
||||
// audio packets (to use the correct network block size and audio
|
||||
// compression properties, etc.)
|
||||
vecChannels[iChID].CreateReqNetwTranspPropsMes();
|
||||
|
||||
// this is a new connection, query the jitter buffer size we shall use
|
||||
// for this client (note that at the same time on a new connection the
|
||||
// client sends the jitter buffer size by default but maybe we have
|
||||
// reached a state where this did not happen because of network trouble,
|
||||
// client or server thinks that the connection was still active, etc.)
|
||||
vecChannels[iChID].CreateReqJitBufMes();
|
||||
}
|
||||
|
||||
void CServer::OnSendCLProtMessage ( CHostAddress InetAddr,
|
||||
CVector<uint8_t> vecMessage )
|
||||
{
|
||||
|
|
25
src/server.h
25
src/server.h
|
@ -262,6 +262,7 @@ signals:
|
|||
public slots:
|
||||
void OnTimer();
|
||||
void OnSendProtMessage ( int iChID, CVector<uint8_t> vecMessage );
|
||||
void OnNewConnection ( int iChID );
|
||||
void OnSendCLProtMessage ( CHostAddress InetAddr, CVector<uint8_t> vecMessage );
|
||||
|
||||
void OnDetCLMess ( const CVector<uint8_t>& vecbyData,
|
||||
|
@ -337,18 +338,18 @@ public slots:
|
|||
void OnDetCLMessCh10 ( CVector<uint8_t> vData, int iNBy ) { OnDetCLMess ( vData, iNBy, vecChannels[10].GetAddress() ); }
|
||||
void OnDetCLMessCh11 ( CVector<uint8_t> vData, int iNBy ) { OnDetCLMess ( vData, iNBy, vecChannels[11].GetAddress() ); }
|
||||
|
||||
void OnNewConnectionCh0() { vecChannels[0].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh1() { vecChannels[1].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh2() { vecChannels[2].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh3() { vecChannels[3].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh4() { vecChannels[4].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh5() { vecChannels[5].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh6() { vecChannels[6].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh7() { vecChannels[7].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh8() { vecChannels[8].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh9() { vecChannels[9].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh10() { vecChannels[10].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh11() { vecChannels[11].CreateReqJitBufMes(); }
|
||||
void OnNewConnectionCh0() { OnNewConnection ( 0 ); }
|
||||
void OnNewConnectionCh1() { OnNewConnection ( 1 ); }
|
||||
void OnNewConnectionCh2() { OnNewConnection ( 2 ); }
|
||||
void OnNewConnectionCh3() { OnNewConnection ( 3 ); }
|
||||
void OnNewConnectionCh4() { OnNewConnection ( 4 ); }
|
||||
void OnNewConnectionCh5() { OnNewConnection ( 5 ); }
|
||||
void OnNewConnectionCh6() { OnNewConnection ( 6 ); }
|
||||
void OnNewConnectionCh7() { OnNewConnection ( 7 ); }
|
||||
void OnNewConnectionCh8() { OnNewConnection ( 8 ); }
|
||||
void OnNewConnectionCh9() { OnNewConnection ( 9 ); }
|
||||
void OnNewConnectionCh10() { OnNewConnection ( 10 ); }
|
||||
void OnNewConnectionCh11() { OnNewConnection ( 11 ); }
|
||||
|
||||
void OnReqConnClientsListCh0() { CreateAndSendChanListForThisChan ( 0 ); }
|
||||
void OnReqConnClientsListCh1() { CreateAndSendChanListForThisChan ( 1 ); }
|
||||
|
|
Loading…
Reference in a new issue