From 963501ff41849e6bbcaa7a5c12c6e04b37a8a130 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 1 Jul 2012 20:43:39 -0500 Subject: Fix crashes in servers Start work on FPGA client --- servers/auth_server_lin/src/auth_conn.cpp | 17 +++++++++++++---- servers/auth_server_lin/src/auth_conn.h | 2 ++ 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'servers/auth_server_lin/src') diff --git a/servers/auth_server_lin/src/auth_conn.cpp b/servers/auth_server_lin/src/auth_conn.cpp index 177a0e3..29b8501 100644 --- a/servers/auth_server_lin/src/auth_conn.cpp +++ b/servers/auth_server_lin/src/auth_conn.cpp @@ -45,7 +45,7 @@ struct exit_exception { instance of this class. */ AuthSocket::AuthSocket(int sock, TQObject *parent, const char *name) : - TDEKerberosServerSocket(parent, name), m_criticalSection(0), m_stationID(-1), m_bound(false), m_servActive(false), m_servState(0), m_servClientSocket(NULL), m_servClientTimeout(NULL), m_config(static_cast(parent)->m_config), m_database(NULL), m_databaseStationsCursor(NULL), + TDEKerberosServerSocket(parent, name), m_criticalSection(0), m_stationID(-1), m_bound(false), m_servActive(false), m_servState(0), m_servClientSocket(NULL), m_servClientTimeout(NULL), m_loopTimer(NULL), m_config(static_cast(parent)->m_config), m_database(NULL), m_databaseStationsCursor(NULL), m_databaseServicesCursor(NULL), m_databaseServiceTypesCursor(NULL), m_databasePermissionsCursor(NULL), m_databaseActivityCursor(NULL) { @@ -61,6 +61,11 @@ AuthSocket::AuthSocket(int sock, TQObject *parent, const char *name) : } AuthSocket::~AuthSocket() { + if (m_loopTimer) { + m_loopTimer->stop(); + delete m_loopTimer; + m_loopTimer = NULL; + } if (m_databaseStationsCursor) { delete m_databaseStationsCursor; } @@ -260,7 +265,7 @@ void AuthSocket::servLoop() { void AuthSocket::commandLoop() { if (m_servActive) { servLoop(); - TQTimer::singleShot(0, this, SLOT(commandLoop())); + if (m_loopTimer) m_loopTimer->start(0, TRUE); return; } @@ -427,7 +432,7 @@ void AuthSocket::commandLoop() { } m_criticalSection--; - TQTimer::singleShot(0, this, SLOT(commandLoop())); + if (m_loopTimer) m_loopTimer->start(0, TRUE); return; } } @@ -438,7 +443,11 @@ void AuthSocket::commandLoop() { } int AuthSocket::enterCommandLoop() { - TQTimer::singleShot(0, this, SLOT(commandLoop())); + if (!m_loopTimer) { + m_loopTimer = new TQTimer(); + connect(m_loopTimer, SIGNAL(timeout()), this, SLOT(commandLoop())); + } + if (m_loopTimer) m_loopTimer->start(0, TRUE); return 0; } diff --git a/servers/auth_server_lin/src/auth_conn.h b/servers/auth_server_lin/src/auth_conn.h index f1b3295..08f8072 100644 --- a/servers/auth_server_lin/src/auth_conn.h +++ b/servers/auth_server_lin/src/auth_conn.h @@ -74,6 +74,8 @@ class AuthSocket : public TDEKerberosServerSocket TQString m_srvServiceHostName; int m_srvServicePort; + TQTimer* m_loopTimer; + KSimpleConfig* m_config; TQSqlDatabase* m_database; TQSqlCursor* m_databaseStationsCursor; -- cgit v1.2.1