/** * @RDE_HEADER@ * main (RoutingTest) * $Id$ * $HeadURL$ * $Author$ */ #include #include #include #include "main_handler.h" #ifdef Q_OS_LINUX #include #endif int main(int argc, char **argv) { NGLCoreApplication app(argc, argv); app.createLogger("RSC", "log4cxx_rsc.props"); #ifdef Q_OS_LINUX constexpr int fdLimit = 100; struct rlimit rl; if (getrlimit (RLIMIT_NOFILE, &rl) == 0) { if (rl.rlim_cur < fdLimit || rl.rlim_max < fdLimit) { struct rlimit rlNew = rl; rlNew.rlim_cur = fdLimit; rlNew.rlim_max = fdLimit; if (rlNew.rlim_max < rlNew.rlim_cur) rlNew.rlim_cur = rlNew.rlim_max; if (rlNew.rlim_cur != rl.rlim_cur) { if (setrlimit (RLIMIT_NOFILE, &rlNew) == 0) NOTICE_LOG(app.baseLogger()) << "setting RLIMIT_NOFILE to " << rlNew.rlim_cur; else WARNING_LOG(app.baseLogger()) << "failed setting RLIMIT_NOFILE to " << fdLimit; } } } #endif LtsCommandLineParser::LtsCommandLineParser options; if (!options.init()) return -1; int ret = 0; { std::unique_ptr handler(new RoutingService::MainHandler()); // todo: make configurable if (!handler->init(options.domainId(), 1, 7400)) return -2; STARTUP_LOG(app.baseLogger()); ret = app.exec(); SHUTDOWN_LOG(app.baseLogger()); } return ret; }