summaryrefslogtreecommitdiffstats
path: root/servers/auth_server_lin/src
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-07-01 20:43:39 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-07-01 20:43:39 -0500
commit963501ff41849e6bbcaa7a5c12c6e04b37a8a130 (patch)
treea92d85facc6b5168890d78e9ad8944fd96d5507a /servers/auth_server_lin/src
parente9dafbb9d016a1aa5e90bb12c63c12b8521cf059 (diff)
downloadulab-963501ff41849e6bbcaa7a5c12c6e04b37a8a130.tar.gz
ulab-963501ff41849e6bbcaa7a5c12c6e04b37a8a130.zip
Fix crashes in servers
Start work on FPGA client
Diffstat (limited to 'servers/auth_server_lin/src')
-rw-r--r--servers/auth_server_lin/src/auth_conn.cpp17
-rw-r--r--servers/auth_server_lin/src/auth_conn.h2
2 files changed, 15 insertions, 4 deletions
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<AuthServer*>(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<AuthServer*>(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;