From 42b653a23ffcf30954ecbf8ebd705de9cd6a6990 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Tue, 26 Jan 2016 19:24:14 +0100 Subject: [PATCH] Spectrum2_manager: add method to detect frontend type --- spectrum_manager/src/methods.cpp | 39 ++++++++++++++++++++++++++++++++ spectrum_manager/src/methods.h | 1 + spectrum_manager/src/server.cpp | 2 ++ 3 files changed, 42 insertions(+) diff --git a/spectrum_manager/src/methods.cpp b/spectrum_manager/src/methods.cpp index aabbfee8..c4f7b793 100644 --- a/spectrum_manager/src/methods.cpp +++ b/spectrum_manager/src/methods.cpp @@ -501,6 +501,45 @@ static void handleConnected(boost::shared_ptr m_conn, const s } } +bool is_slack(ManagerConfig *config, const std::string &jid) { + path p(CONFIG_STRING(config, "service.config_directory")); + + try { + if (!exists(p)) { + std::cerr << "Config directory " << CONFIG_STRING(config, "service.config_directory") << " does not exist\n"; + exit(6); + } + + if (!is_directory(p)) { + std::cerr << "Config directory " << CONFIG_STRING(config, "service.config_directory") << " does not exist\n"; + exit(7); + } + + directory_iterator end_itr; + for (directory_iterator itr(p); itr != end_itr; ++itr) { + if (is_regular(itr->path()) && extension(itr->path()) == ".cfg") { + Config cfg; + if (cfg.load(itr->path().string()) == false) { + std::cerr << "Can't load config file " << itr->path().string() << ". Skipping...\n"; + continue; + } + + if (CONFIG_STRING(&cfg, "service.jid") != jid) { + continue; + } + + return CONFIG_STRING(&cfg, "service.frontend") == "slack"; + } + } + + } + catch (const filesystem_error& ex) { + return false; + } + + return false; +} + void ask_local_server(ManagerConfig *config, Swift::BoostNetworkFactories &networkFactories, const std::string &jid, const std::string &message) { response = ""; path p(CONFIG_STRING(config, "service.config_directory")); diff --git a/spectrum_manager/src/methods.h b/spectrum_manager/src/methods.h index 6101acb5..fa0e36b3 100644 --- a/spectrum_manager/src/methods.h +++ b/spectrum_manager/src/methods.h @@ -51,6 +51,7 @@ void stop_instances(ManagerConfig *config, const std::string &_jid = ""); int show_status(ManagerConfig *config); void ask_local_server(ManagerConfig *config, Swift::BoostNetworkFactories &networkFactories, const std::string &jid, const std::string &message); +bool is_slack(ManagerConfig *config, const std::string &jid); std::vector show_list(ManagerConfig *config, bool show = true); diff --git a/spectrum_manager/src/server.cpp b/spectrum_manager/src/server.cpp index b8993d2d..c5a3f88e 100644 --- a/spectrum_manager/src/server.cpp +++ b/spectrum_manager/src/server.cpp @@ -397,9 +397,11 @@ void Server::serve_oauth2(struct mg_connection *conn, struct http_message *hm) { std::string state = get_http_var(hm, "state"); std::string response = send_command(instance, "set_oauth2_code " + code + " " + state); + std::cerr << "set_oauth2_code response: '" << response << "'\n"; if (response.find("Registered as ") == 0) { std::vector args; boost::split(args, response, boost::is_any_of(" ")); + std::cerr << "set_oauth2_code response size " << args.size() << "\n"; if (args.size() == 3) { Server:session *session = get_session(hm); UserInfo info;