summaryrefslogtreecommitdiff
path: root/src/mongo/db/initialize_server_global_state.cpp
diff options
context:
space:
mode:
authorShaun Verch <shaun.verch@10gen.com>2013-09-18 14:02:36 -0400
committerShaun Verch <shaun.verch@10gen.com>2013-10-04 16:58:54 -0400
commit6fc951d492881a32754bc3e38e8b5eca78929197 (patch)
tree73c2afe3120a8a87cf3bc8379e53461b2cf05b1e /src/mongo/db/initialize_server_global_state.cpp
parent99372153dfe9dd9251e49371d872b5f27dfd6f2c (diff)
downloadmongo-6fc951d492881a32754bc3e38e8b5eca78929197.tar.gz
SERVER-8510 Get rid of CmdLine struct and use new option handling style
Diffstat (limited to 'src/mongo/db/initialize_server_global_state.cpp')
-rw-r--r--src/mongo/db/initialize_server_global_state.cpp55
1 files changed, 29 insertions, 26 deletions
diff --git a/src/mongo/db/initialize_server_global_state.cpp b/src/mongo/db/initialize_server_global_state.cpp
index d23a6ef5835..3d66d684f4f 100644
--- a/src/mongo/db/initialize_server_global_state.cpp
+++ b/src/mongo/db/initialize_server_global_state.cpp
@@ -43,7 +43,6 @@
#include "mongo/client/sasl_client_authenticate.h"
#include "mongo/db/auth/authorization_manager.h"
#include "mongo/db/auth/security_key.h"
-#include "mongo/db/cmdline.h"
#include "mongo/logger/logger.h"
#include "mongo/logger/message_event.h"
#include "mongo/logger/message_event_utf8_encoder.h"
@@ -68,7 +67,7 @@ namespace mongo {
if ( sig == SIGUSR2 ) {
ProcessId cur = ProcessId::getCurrent();
- if ( cur == cmdLine.parentProc || cur == cmdLine.leaderProc ) {
+ if (cur == serverGlobalParams.parentProc || cur == serverGlobalParams.leaderProc) {
// signal indicates successful start allowing us to exit
_exit(0);
}
@@ -79,10 +78,10 @@ namespace mongo {
verify( signal(SIGUSR2 , launchSignal ) != SIG_ERR );
}
- void CmdLine::launchOk() {
- if ( cmdLine.doFork ) {
+ void signalForkSuccess() {
+ if (serverGlobalParams.doFork) {
// killing leader will propagate to parent
- verify( kill( cmdLine.leaderProc.toNative(), SIGUSR2 ) == 0 );
+ verify(kill(serverGlobalParams.leaderProc.toNative(), SIGUSR2) == 0);
}
}
#endif
@@ -90,13 +89,14 @@ namespace mongo {
static bool forkServer() {
#ifndef _WIN32
- if (cmdLine.doFork) {
- fassert(16447, !cmdLine.logpath.empty() || cmdLine.logWithSyslog);
+ if (serverGlobalParams.doFork) {
+ fassert(16447, !serverGlobalParams.logpath.empty() ||
+ serverGlobalParams.logWithSyslog);
cout.flush();
cerr.flush();
- cmdLine.parentProc = ProcessId::getCurrent();
+ serverGlobalParams.parentProc = ProcessId::getCurrent();
// facilitate clean exit when child starts successfully
setupLaunchSignals();
@@ -135,7 +135,7 @@ namespace mongo {
}
setsid();
- cmdLine.leaderProc = ProcessId::getCurrent();
+ serverGlobalParams.leaderProc = ProcessId::getCurrent();
pid_t child2 = fork();
if (child2 == -1) {
@@ -200,9 +200,9 @@ namespace mongo {
#ifndef _WIN32
using logger::SyslogAppender;
- if (cmdLine.logWithSyslog) {
+ if (serverGlobalParams.logWithSyslog) {
StringBuilder sb;
- sb << cmdLine.binaryName << "." << cmdLine.port;
+ sb << serverGlobalParams.binaryName << "." << serverGlobalParams.port;
openlog(strdup(sb.str().c_str()), LOG_PID | LOG_CONS, LOG_USER);
LogManager* manager = logger::globalLogManager();
manager->getGlobalDomain()->clearAppenders();
@@ -217,10 +217,10 @@ namespace mongo {
}
#endif // defined(_WIN32)
- if (!cmdLine.logpath.empty()) {
- fassert(16448, !cmdLine.logWithSyslog);
+ if (!serverGlobalParams.logpath.empty()) {
+ fassert(16448, !serverGlobalParams.logWithSyslog);
std::string absoluteLogpath = boost::filesystem::absolute(
- cmdLine.logpath, cmdLine.cwd).string();
+ serverGlobalParams.logpath, serverGlobalParams.cwd).string();
bool exists;
@@ -239,7 +239,8 @@ namespace mongo {
"\" should name a file, not a directory.");
}
- if (!cmdLine.logAppend && boost::filesystem::is_regular(absoluteLogpath)) {
+ if (!serverGlobalParams.logAppend &&
+ boost::filesystem::is_regular(absoluteLogpath)) {
std::string renameTarget = absoluteLogpath + "." + terseCurrentTime(false);
if (0 == rename(absoluteLogpath.c_str(), renameTarget.c_str())) {
log() << "log file \"" << absoluteLogpath
@@ -256,7 +257,8 @@ namespace mongo {
}
StatusWithRotatableFileWriter writer =
- logger::globalRotatableFileManager()->openFile(absoluteLogpath, cmdLine.logAppend);
+ logger::globalRotatableFileManager()->openFile(absoluteLogpath,
+ serverGlobalParams.logAppend);
if (!writer.isOK()) {
return writer.getStatus();
}
@@ -272,7 +274,7 @@ namespace mongo {
new RotatableFileAppender<MessageEventEphemeral>(
new MessageEventDetailsEncoder, writer.getValue())));
- if (cmdLine.logAppend && exists) {
+ if (serverGlobalParams.logAppend && exists) {
log() << "***** SERVER RESTARTED *****" << endl;
Status status =
logger::RotatableFileWriter::Use(writer.getValue()).status();
@@ -290,24 +292,24 @@ namespace mongo {
bool initializeServerGlobalState() {
- Listener::globalTicketHolder.resize( cmdLine.maxConns );
+ Listener::globalTicketHolder.resize(serverGlobalParams.maxConns);
#ifndef _WIN32
- if (!fs::is_directory(cmdLine.socket)) {
- cout << cmdLine.socket << " must be a directory" << endl;
+ if (!fs::is_directory(serverGlobalParams.socket)) {
+ cout << serverGlobalParams.socket << " must be a directory" << endl;
return false;
}
#endif
- if (!cmdLine.pidFile.empty()) {
- if (!writePidFile(cmdLine.pidFile)) {
+ if (!serverGlobalParams.pidFile.empty()) {
+ if (!writePidFile(serverGlobalParams.pidFile)) {
// error message logged in writePidFile
return false;
}
}
- if (!cmdLine.keyFile.empty() && cmdLine.clusterAuthMode != "x509") {
- if (!setUpSecurityKey(cmdLine.keyFile)) {
+ if (!serverGlobalParams.keyFile.empty() && serverGlobalParams.clusterAuthMode != "x509") {
+ if (!setUpSecurityKey(serverGlobalParams.keyFile)) {
// error message printed in setUpPrivateKey
return false;
}
@@ -315,12 +317,13 @@ namespace mongo {
// Auto-enable auth except if clusterAuthMode is not set.
// clusterAuthMode is automatically set if a --keyfile parameter is provided.
- if (!cmdLine.clusterAuthMode.empty()) {
+ if (!serverGlobalParams.clusterAuthMode.empty()) {
AuthorizationManager::setAuthEnabled(true);
}
#ifdef MONGO_SSL
- if (cmdLine.clusterAuthMode == "x509" || cmdLine.clusterAuthMode == "sendX509") {
+ if (serverGlobalParams.clusterAuthMode == "x509" ||
+ serverGlobalParams.clusterAuthMode == "sendX509") {
setInternalUserAuthParams(BSON(saslCommandMechanismFieldName << "MONGODB-X509" <<
saslCommandUserSourceFieldName << "$external" <<
saslCommandUserFieldName <<