diff --git a/src/ripple/app/main/Application.cpp b/src/ripple/app/main/Application.cpp index 40b3311b57c..769d92928ac 100644 --- a/src/ripple/app/main/Application.cpp +++ b/src/ripple/app/main/Application.cpp @@ -61,6 +61,7 @@ #include #include #include +#include namespace ripple { @@ -1227,11 +1228,23 @@ bool ApplicationImp::setup() } { - auto setup = setup_ServerHandler( - *config_, - beast::logstream { m_journal.error() }); - setup.makeContexts(); - serverHandler_->setup (setup, m_journal); + try + { + auto setup = setup_ServerHandler( + *config_, beast::logstream{m_journal.error()}); + setup.makeContexts(); + serverHandler_->setup(setup, m_journal); + } + catch (std::exception const& e) + { + if (auto stream = m_journal.fatal()) + { + stream << "Unable to setup server handler"; + if(std::strlen(e.what()) > 0) + stream << ": " << e.what(); + } + return false; + } } // Begin connecting to network. diff --git a/src/ripple/rpc/impl/ServerHandlerImp.cpp b/src/ripple/rpc/impl/ServerHandlerImp.cpp index 0802c3924a3..ed1330d24d6 100644 --- a/src/ripple/rpc/impl/ServerHandlerImp.cpp +++ b/src/ripple/rpc/impl/ServerHandlerImp.cpp @@ -893,19 +893,19 @@ to_Port(ParsedPort const& parsed, std::ostream& log) if (! parsed.ip) { - log << "Missing 'ip' in [" << p.name << "]\n"; + log << "Missing 'ip' in [" << p.name << "]"; Throw (); } p.ip = *parsed.ip; if (! parsed.port) { - log << "Missing 'port' in [" << p.name << "]\n"; + log << "Missing 'port' in [" << p.name << "]"; Throw (); } else if (*parsed.port == 0) { - log << "Port " << *parsed.port << "in [" << p.name << "] is invalid\n"; + log << "Port " << *parsed.port << "in [" << p.name << "] is invalid"; Throw (); } p.port = *parsed.port; @@ -916,7 +916,7 @@ to_Port(ParsedPort const& parsed, std::ostream& log) if (parsed.protocol.empty()) { - log << "Missing 'protocol' in [" << p.name << "]\n"; + log << "Missing 'protocol' in [" << p.name << "]"; Throw (); } p.protocol = parsed.protocol; @@ -947,7 +947,7 @@ parse_Ports ( if (! config.exists("server")) { log << - "Required section [server] is missing\n"; + "Required section [server] is missing"; Throw (); } @@ -961,7 +961,7 @@ parse_Ports ( if (! config.exists(name)) { log << - "Missing section: [" << name << "]\n"; + "Missing section: [" << name << "]"; Throw (); } ParsedPort parsed = common; @@ -997,12 +997,12 @@ parse_Ports ( if (count > 1) { - log << "Error: More than one peer protocol configured in [server]\n"; + log << "Error: More than one peer protocol configured in [server]"; Throw (); } if (count == 0) - log << "Warning: No peer protocol configured\n"; + log << "Warning: No peer protocol configured"; } return result; diff --git a/src/ripple/server/impl/Port.cpp b/src/ripple/server/impl/Port.cpp index b3ef671a570..c8b18511f82 100644 --- a/src/ripple/server/impl/Port.cpp +++ b/src/ripple/server/impl/Port.cpp @@ -87,7 +87,7 @@ populate (Section const& section, std::string const& field, std::ostream& log, if (! addr.second) { log << "Invalid value '" << ip << "' for key '" << field << - "' in [" << section.name () << "]\n"; + "' in [" << section.name () << "]"; Throw (); } @@ -97,7 +97,7 @@ populate (Section const& section, std::string const& field, std::ostream& log, { log << "0.0.0.0 not allowed'" << "' for key '" << field << "' in [" << - section.name () << "]\n"; + section.name () << "]"; Throw (); } else @@ -110,7 +110,7 @@ populate (Section const& section, std::string const& field, std::ostream& log, { log << "IP specified along with 0.0.0.0 '" << ip << "' for key '" << field << "' in [" << - section.name () << "]\n"; + section.name () << "]"; Throw (); } @@ -123,7 +123,7 @@ populate (Section const& section, std::string const& field, std::ostream& log, ) != admin_ip.end()) { log << "IP specified for " << field << " is also for " << - "admin: " << ip << " in [" << section.name() << "]\n"; + "admin: " << ip << " in [" << section.name() << "]"; Throw (); } @@ -146,7 +146,7 @@ parse_Port (ParsedPort& port, Section const& section, std::ostream& log) catch (std::exception const&) { log << "Invalid value '" << result.first << - "' for key 'ip' in [" << section.name() << "]\n"; + "' for key 'ip' in [" << section.name() << "]"; Rethrow(); } } @@ -169,7 +169,7 @@ parse_Port (ParsedPort& port, Section const& section, std::ostream& log) { log << "Invalid value '" << result.first << "' for key " << - "'port' in [" << section.name() << "]\n"; + "'port' in [" << section.name() << "]"; Rethrow(); } } @@ -199,7 +199,7 @@ parse_Port (ParsedPort& port, Section const& section, std::ostream& log) { log << "Invalid value '" << lim << "' for key " << - "'limit' in [" << section.name() << "]\n"; + "'limit' in [" << section.name() << "]"; Rethrow(); } } @@ -222,7 +222,7 @@ parse_Port (ParsedPort& port, Section const& section, std::ostream& log) { log << "Invalid value '" << result.first << "' for key " << - "'send_queue_limit' in [" << section.name() << "]\n"; + "'send_queue_limit' in [" << section.name() << "]"; Rethrow(); } }