mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-13 17:43:59 +02:00
Reconnect JREEN plugin on disconnects where it seems reasonable
This commit is contained in:
@@ -194,37 +194,58 @@ Jabber_p::onConnect()
|
|||||||
void
|
void
|
||||||
Jabber_p::onDisconnect( jreen::Client::DisconnectReason reason )
|
Jabber_p::onDisconnect( jreen::Client::DisconnectReason reason )
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO << reason;
|
|
||||||
|
|
||||||
QString error;
|
QString error;
|
||||||
|
bool reconnect = false;
|
||||||
|
int reconnectInSeconds = 0;
|
||||||
|
|
||||||
switch( reason )
|
switch( reason )
|
||||||
{
|
{
|
||||||
case jreen::Client::User:
|
case jreen::Client::User:
|
||||||
|
error = "User Interaction";
|
||||||
break;
|
break;
|
||||||
case jreen::Client::HostUnknown:
|
case jreen::Client::HostUnknown:
|
||||||
|
error = "Host is unknown";
|
||||||
break;
|
break;
|
||||||
case jreen::Client::ItemNotFound:
|
case jreen::Client::ItemNotFound:
|
||||||
|
error = "Item not found";
|
||||||
break;
|
break;
|
||||||
case jreen::Client::AuthorizationError:
|
case jreen::Client::AuthorizationError:
|
||||||
|
error = "Authorization Error";
|
||||||
break;
|
break;
|
||||||
case jreen::Client::RemoteStreamError:
|
case jreen::Client::RemoteStreamError:
|
||||||
|
error = "Remote Stream Error";
|
||||||
|
reconnect = true;
|
||||||
break;
|
break;
|
||||||
case jreen::Client::RemoteConnectionFailed:
|
case jreen::Client::RemoteConnectionFailed:
|
||||||
|
error = "Remote Connection failed";
|
||||||
break;
|
break;
|
||||||
case jreen::Client::InternalServerError:
|
case jreen::Client::InternalServerError:
|
||||||
|
error = "Internal Server Error";
|
||||||
|
reconnect = true;
|
||||||
break;
|
break;
|
||||||
case jreen::Client::SystemShutdown:
|
case jreen::Client::SystemShutdown:
|
||||||
|
error = "System shutdown";
|
||||||
|
reconnect = true;
|
||||||
|
reconnectInSeconds = 60;
|
||||||
break;
|
break;
|
||||||
case jreen::Client::Conflict:
|
case jreen::Client::Conflict:
|
||||||
|
error = "Conflict";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case jreen::Client::Unknown:
|
case jreen::Client::Unknown:
|
||||||
|
error = "Unknown";
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
qDebug() << "Not all Client::DisconnectReasons checked";
|
||||||
|
Q_ASSERT(false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
qDebug() << "Connection error msg:" << error;
|
qDebug() << "Disconnected from server:" << error;
|
||||||
|
|
||||||
|
if(reconnect)
|
||||||
|
QTimer::singleShot(reconnectInSeconds*1000, m_client, SLOT(connectToServer()));
|
||||||
|
|
||||||
emit disconnected();
|
emit disconnected();
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user