bool NSCPServer::loadModuleEx(std::string alias, NSCAPI::moduleLoadMode mode) { sh::settings_registry settings(get_settings_proxy()); settings.set_alias("nscp", alias, "server"); settings.alias().add_path_to_settings() ("NSCP SERVER SECTION", "Section for NSCP (NSCPListener.dll) (check_nscp) protocol options.") ; settings.alias().add_key_to_settings() ("port", sh::string_key(&info_.port_, "5668"), "PORT NUMBER", "Port to use for NSCP.") ("allow arguments", sh::bool_fun_key<bool>(boost::bind(&handler_impl::set_allow_arguments, handler_, _1), false), "COMMAND ARGUMENT PROCESSING", "This option determines whether or not the we will allow clients to specify arguments to commands that are executed.") ; socket_helpers::settings_helper::add_core_server_opts(settings, info_); socket_helpers::settings_helper::add_ssl_server_opts(settings, info_, true); settings.register_all(); settings.notify(); #ifndef USE_SSL if (info_.use_ssl) { NSC_LOG_ERROR_STD(_T("SSL not avalible! (not compiled with openssl support)")); return false; } #endif boost::asio::io_service io_service_; if (mode == NSCAPI::normalStart) { NSC_LOG_ERROR_LISTS(info_.validate()); std::list<std::string> errors; info_.allowed_hosts.refresh(errors); NSC_LOG_ERROR_LISTS(errors); NSC_DEBUG_MSG_STD("Allowed hosts definition: " + info_.allowed_hosts.to_string()); server_.reset(new nscp::server::server(info_, handler_)); if (!server_) { NSC_LOG_ERROR_STD("Failed to create server instance!"); return false; } server_->start(); } return true; }
bool NSClientServer::loadModuleEx(std::string alias, NSCAPI::moduleLoadMode mode) { sh::settings_registry settings(get_settings_proxy()); settings.set_alias("NSClient", alias, "server"); settings.alias().add_path_to_settings() ("NSCLIENT SERVER SECTION", "Section for NSClient (NSClientServer.dll) (check_nt) protocol options.") ; settings.alias().add_key_to_settings() ("performance data", sh::bool_fun_key<bool>(boost::bind(&NSClientServer::set_perf_data, this, _1), true), "PERFORMANCE DATA", "Send performance data back to Nagios (set this to 0 to remove all performance data).") ; socket_helpers::settings_helper::add_port_server_opts(settings, info_, "12489"); socket_helpers::settings_helper::add_ssl_server_opts(settings, info_, false); socket_helpers::settings_helper::add_core_server_opts(settings, info_); settings.alias().add_parent("/settings/default").add_key_to_settings() ("password", sh::string_fun_key<std::string>(boost::bind(&NSClientServer::set_password, this, _1), ""), "PASSWORD", "Password used to authenticate against server") ; settings.register_all(); settings.notify(); #ifndef USE_SSL if (info_.use_ssl) { NSC_LOG_ERROR_STD(_T("SSL not avalible! (not compiled with openssl support)")); } #endif NSC_LOG_ERROR_LISTS(info_.validate()); std::list<std::string> errors; info_.allowed_hosts.refresh(errors); BOOST_FOREACH(const std::string &e, errors) { NSC_LOG_ERROR_STD(e); }
bool NSCAServer::loadModuleEx(std::string alias, NSCAPI::moduleLoadMode mode) { try { if (server_) { server_->stop(); server_.reset(); } } catch (...) { NSC_LOG_ERROR_STD("Failed to stop server"); return false; } sh::settings_registry settings(get_settings_proxy()); settings.set_alias("NSCA", alias, "server"); settings.alias().add_path_to_settings() ("NSCA SERVER SECTION", "Section for NSCA (NSCAServer) (check_nsca) protocol options.") ; settings.alias().add_key_to_settings() ("port", sh::string_key(&info_.port_, "5667"), "PORT NUMBER", "Port to use for NSCA.") ("payload length", sh::uint_key(&payload_length_, 512), "PAYLOAD LENGTH", "Length of payload to/from the NSCA agent. This is a hard specific value so you have to \"configure\" (read recompile) your NSCA agent to use the same value for it to work.") ("performance data", sh::bool_fun_key<bool>(boost::bind(&NSCAServer::set_perf_data, this, _1), true), "PERFORMANCE DATA", "Send performance data back to nagios (set this to false to remove all performance data).") ("encryption", sh::string_fun_key<std::string>(boost::bind(&NSCAServer::set_encryption, this, _1), "aes"), "ENCRYPTION", std::string("Name of encryption algorithm to use.\nHas to be the same as your agent i using or it wont work at all." "This is also independent of SSL and generally used instead of SSL.\nAvailable encryption algorithms are:\n") + nscp::encryption::helpers::get_crypto_string("\n")) ; socket_helpers::settings_helper::add_core_server_opts(settings, info_); socket_helpers::settings_helper::add_ssl_server_opts(settings, info_, false); settings.alias().add_parent("/settings/default").add_key_to_settings() ("password", sh::string_key(&password_, ""), "PASSWORD", "Password to use") ("inbox", sh::string_key(&channel_, "inbox"), "INBOX", "The default channel to post incoming messages on") ; settings.register_all(); settings.notify(); #ifndef USE_SSL if (info_.ssl.enabled) { NSC_LOG_ERROR_STD(_T("SSL not avalible! (not compiled with openssl support)")); return false; } #endif if (payload_length_ != 512) NSC_DEBUG_MSG_STD("Non-standard buffer length (hope you have recompiled check_nsca changing #define MAX_PACKETBUFFER_LENGTH = " + strEx::s::xtos(payload_length_)); NSC_LOG_ERROR_LISTS(info_.validate()); std::list<std::string> errors; info_.allowed_hosts.refresh(errors); NSC_LOG_ERROR_LISTS(errors); NSC_DEBUG_MSG_STD("Allowed hosts definition: " + info_.allowed_hosts.to_string()); if (mode == NSCAPI::normalStart || mode == NSCAPI::reloadStart) { server_.reset(new nsca::server::server(info_, this)); if (!server_) { NSC_LOG_ERROR_STD("Failed to create server instance!"); return false; } server_->start(); } return true; }
bool CheckMKServer::loadModuleEx(std::string alias, NSCAPI::moduleLoadMode mode) { root_ = get_base_path(); nscp_runtime_.reset(new scripts::nscp::nscp_runtime_impl(get_id(), get_core())); lua_runtime_.reset(new lua::lua_runtime(utf8::cvt<std::string>(root_.string()))); lua_runtime_->register_plugin(boost::shared_ptr<check_mk::check_mk_plugin>(new check_mk::check_mk_plugin())); scripts_.reset(new scripts::script_manager<lua::lua_traits>(lua_runtime_, nscp_runtime_, get_id(), utf8::cvt<std::string>(alias))); handler_.reset(new handler_impl(scripts_)); sh::settings_registry settings(get_settings_proxy()); settings.set_alias("check_mk", alias, "server"); settings.alias().add_path_to_settings() ("CHECK MK SERVER SECTION", "Section for check_mk (CheckMKServer.dll) protocol options.") ("scripts", sh::fun_values_path(boost::bind(&CheckMKServer::add_script, this, _1, _2)), "REMOTE TARGET DEFINITIONS", "", "TARGET", "For more configuration options add a dedicated section") ; settings.alias().add_key_to_settings() ("port", sh::string_key(&info_.port_, "6556"), "PORT NUMBER", "Port to use for check_mk.") ; socket_helpers::settings_helper::add_core_server_opts(settings, info_); socket_helpers::settings_helper::add_ssl_server_opts(settings, info_, false); settings.register_all(); settings.notify(); if (scripts_->empty()) { add_script("default", "default_check_mk.lua"); } #ifndef USE_SSL if (info_.use_ssl) { NSC_LOG_ERROR_STD(_T("SSL not avalible! (not compiled with openssl support)")); return false; } #endif NSC_LOG_ERROR_LISTS(info_.validate()); std::list<std::string> errors; info_.allowed_hosts.refresh(errors); NSC_LOG_ERROR_LISTS(errors); NSC_DEBUG_MSG_STD("Allowed hosts definition: " + info_.allowed_hosts.to_string()); boost::asio::io_service io_service_; scripts_->load_all(); if (mode == NSCAPI::normalStart) { server_.reset(new check_mk::server::server(info_, handler_)); if (!server_) { NSC_LOG_ERROR_STD("Failed to create server instance!"); return false; } server_->start(); } return true; }