Fix GPIB server failure

master
Timothy Pearson 13 years ago
parent 8970266265
commit ce03928981

@ -575,6 +575,11 @@ AuthServer::AuthServer(TQObject* parent) :
} }
AuthServer::~AuthServer() { AuthServer::~AuthServer() {
if (m_sqlPingTimer) {
m_sqlPingTimer->stop();
delete m_sqlPingTimer;
m_sqlPingTimer = NULL;
}
if (m_database) { if (m_database) {
TQSqlDatabase::removeDatabase(m_database); TQSqlDatabase::removeDatabase(m_database);
m_database = NULL; m_database = NULL;
@ -639,9 +644,24 @@ int AuthServer::connectToDatabase() {
return -1; 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; 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) { void AuthServer::newConnection(int socket) {
AuthSocket *s = new AuthSocket(socket, this); AuthSocket *s = new AuthSocket(socket, this);
s->m_remoteHost = s->peerAddress().toString(); s->m_remoteHost = s->peerAddress().toString();

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

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

Loading…
Cancel
Save