Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Donald Haase
Cockatrice
Commits
7c8b3fc5
Commit
7c8b3fc5
authored
May 01, 2012
by
Max-Wilhelm Bruker
Browse files
fixed #45: Terminate servatrice if critical error in e.g. listen() happens during initialization
parent
875610e1
Changes
3
Hide whitespace changes
Inline
Side-by-side
servatrice/src/main.cpp
View file @
7c8b3fc5
...
@@ -165,15 +165,17 @@ int main(int argc, char *argv[])
...
@@ -165,15 +165,17 @@ int main(int argc, char *argv[])
Servatrice
*
server
=
new
Servatrice
(
settings
);
Servatrice
*
server
=
new
Servatrice
(
settings
);
QObject
::
connect
(
server
,
SIGNAL
(
logDebugMessage
(
QString
,
void
*
)),
logger
,
SLOT
(
logMessage
(
QString
,
void
*
)));
QObject
::
connect
(
server
,
SIGNAL
(
logDebugMessage
(
QString
,
void
*
)),
logger
,
SLOT
(
logMessage
(
QString
,
void
*
)));
QObject
::
connect
(
server
,
SIGNAL
(
destroyed
()),
&
app
,
SLOT
(
quit
()),
Qt
::
QueuedConnection
);
QObject
::
connect
(
server
,
SIGNAL
(
destroyed
()),
&
app
,
SLOT
(
quit
()),
Qt
::
QueuedConnection
);
int
retval
=
0
;
std
::
cerr
<<
"-------------------------"
<<
std
::
endl
;
if
(
server
->
initServer
())
{
std
::
cerr
<<
"Server initialized."
<<
std
::
endl
;
std
::
cerr
<<
"-------------------------"
<<
std
::
endl
;
std
::
cerr
<<
"Server initialized."
<<
std
::
endl
;
qInstallMsgHandler
(
myMessageOutput
);
int
retval
=
app
.
exec
();
qInstallMsgHandler
(
myMessageOutput
);
retval
=
app
.
exec
();
std
::
cerr
<<
"Server quit."
<<
std
::
endl
;
std
::
cerr
<<
"-------------------------"
<<
std
::
endl
;
std
::
cerr
<<
"Server quit."
<<
std
::
endl
;
std
::
cerr
<<
"-------------------------"
<<
std
::
endl
;
}
delete
rng
;
delete
rng
;
delete
settings
;
delete
settings
;
...
...
servatrice/src/servatrice.cpp
View file @
7c8b3fc5
...
@@ -64,6 +64,16 @@ void Servatrice_IslServer::incomingConnection(int socketDescriptor)
...
@@ -64,6 +64,16 @@ void Servatrice_IslServer::incomingConnection(int socketDescriptor)
Servatrice
::
Servatrice
(
QSettings
*
_settings
,
QObject
*
parent
)
Servatrice
::
Servatrice
(
QSettings
*
_settings
,
QObject
*
parent
)
:
Server
(
parent
),
dbMutex
(
QMutex
::
Recursive
),
settings
(
_settings
),
uptime
(
0
),
shutdownTimer
(
0
)
:
Server
(
parent
),
dbMutex
(
QMutex
::
Recursive
),
settings
(
_settings
),
uptime
(
0
),
shutdownTimer
(
0
)
{
}
Servatrice
::~
Servatrice
()
{
prepareDestroy
();
QSqlDatabase
::
database
().
close
();
}
bool
Servatrice
::
initServer
()
{
{
serverName
=
settings
->
value
(
"server/name"
).
toString
();
serverName
=
settings
->
value
(
"server/name"
).
toString
();
serverId
=
settings
->
value
(
"server/id"
,
0
).
toInt
();
serverId
=
settings
->
value
(
"server/id"
,
0
).
toInt
();
...
@@ -192,10 +202,10 @@ Servatrice::Servatrice(QSettings *_settings, QObject *parent)
...
@@ -192,10 +202,10 @@ Servatrice::Servatrice(QSettings *_settings, QObject *parent)
if
(
islServer
->
listen
(
QHostAddress
::
Any
,
networkPort
))
if
(
islServer
->
listen
(
QHostAddress
::
Any
,
networkPort
))
qDebug
()
<<
"ISL server listening."
;
qDebug
()
<<
"ISL server listening."
;
else
else
throw
QString
(
"islServer->listen(): Error."
);
throw
QString
(
"islServer->listen()"
);
}
}
catch
(
QString
error
)
{
}
}
catch
(
QString
error
)
{
qDebug
()
<<
"ERROR --"
<<
error
;
qDebug
()
<<
"ERROR --"
<<
error
;
return
false
;
}
}
pingClock
=
new
QTimer
(
this
);
pingClock
=
new
QTimer
(
this
);
...
@@ -216,15 +226,11 @@ Servatrice::Servatrice(QSettings *_settings, QObject *parent)
...
@@ -216,15 +226,11 @@ Servatrice::Servatrice(QSettings *_settings, QObject *parent)
qDebug
()
<<
"Starting server on port"
<<
gamePort
;
qDebug
()
<<
"Starting server on port"
<<
gamePort
;
if
(
gameServer
->
listen
(
QHostAddress
::
Any
,
gamePort
))
if
(
gameServer
->
listen
(
QHostAddress
::
Any
,
gamePort
))
qDebug
()
<<
"Server listening."
;
qDebug
()
<<
"Server listening."
;
else
else
{
qDebug
()
<<
"gameServer->listen(): Error."
;
qDebug
()
<<
"gameServer->listen(): Error."
;
return
false
;
}
}
return
true
;
Servatrice
::~
Servatrice
()
{
prepareDestroy
();
QSqlDatabase
::
database
().
close
();
}
}
bool
Servatrice
::
openDatabase
()
bool
Servatrice
::
openDatabase
()
...
...
servatrice/src/servatrice.h
View file @
7c8b3fc5
...
@@ -88,6 +88,7 @@ public:
...
@@ -88,6 +88,7 @@ public:
mutable
QMutex
dbMutex
;
mutable
QMutex
dbMutex
;
Servatrice
(
QSettings
*
_settings
,
QObject
*
parent
=
0
);
Servatrice
(
QSettings
*
_settings
,
QObject
*
parent
=
0
);
~
Servatrice
();
~
Servatrice
();
bool
initServer
();
bool
openDatabase
();
bool
openDatabase
();
bool
checkSql
();
bool
checkSql
();
bool
execSqlQuery
(
QSqlQuery
&
query
);
bool
execSqlQuery
(
QSqlQuery
&
query
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment