Fix GPIB server failure

master
Timothy Pearson 13 years ago
parent 8970266265
commit ce03928981

@ -575,6 +575,11 @@ AuthServer::AuthServer(TQObject* parent) :
}
AuthServer::~AuthServer() {
if (m_sqlPingTimer) {
m_sqlPingTimer->stop();
delete m_sqlPingTimer;
m_sqlPingTimer = NULL;
}
if (m_database) {
TQSqlDatabase::removeDatabase(m_database);
m_database = NULL;
@ -639,9 +644,24 @@ int AuthServer::connectToDatabase() {
return -1;
}
// FIXME
// We currently have no way to handle something as simple as the database server going offline!
// Start database ping process
m_sqlPingTimer = new TQTimer();
connect(m_sqlPingTimer, SIGNAL(timeout()), this, SLOT(pingSQLServer()));
m_sqlPingTimer->start(60*1000);
return 0;
}
void AuthServer::pingSQLServer() {
// FIXME
// We might as well gather statistics here...
TQSqlQuery query;
query.exec("SELECT * FROM activity");
}
void AuthServer::newConnection(int socket) {
AuthSocket *s = new AuthSocket(socket, this);
s->m_remoteHost = s->peerAddress().toString();

@ -104,6 +104,7 @@ class AuthServer : public TQServerSocket
private slots:
int connectToDatabase();
void pingSQLServer();
signals:
void newConnect(AuthSocket*);
@ -111,6 +112,7 @@ class AuthServer : public TQServerSocket
private:
KSimpleConfig* m_config;
TQSqlDatabase* m_database;
TQTimer* m_sqlPingTimer;
friend class AuthSocket;

@ -807,21 +807,13 @@ void GPIBSocket::commandLoop() {
m_servClientTimeout->start(NETWORK_COMM_TIMEOUT_MS, TRUE);
transferred_data = true;
m_commandLoopState = 2;
m_commandLoopState = 1;
}
clearFrameTail();
}
}
}
else if (m_commandLoopState == 2) {
if (canReadLine()) {
processPendingData();
}
if (canReadFrame()) {
//
}
}
}
m_criticalSection--;
if (transferred_data) {

Loading…
Cancel
Save