// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "remoting/client/client_util.h" #include #include #include "base/logging.h" #include "base/string_util.h" #include "remoting/client/client_config.h" using std::string; using std::vector; namespace remoting { // Get host JID from command line arguments, or stdin if not specified. bool GetLoginInfoFromArgs(int argc, char** argv, ClientConfig* config) { bool found_host_jid = false; bool found_jid = false; bool found_auth_token = false; string host_jid; string username; string auth_token; for (int i = 1; i < argc; i++) { std::string arg = argv[i]; if (arg == "--host_jid") { if (++i >= argc) { LOG(WARNING) << "Expected Host JID to follow --host_jid option" << std::endl; } else { found_host_jid = true; host_jid = argv[i]; } } else if (arg == "--jid") { if (++i >= argc) { LOG(WARNING) << "Expected JID to follow --jid option" << std::endl; } else { found_jid = true; username = argv[i]; } } else if (arg == "--token") { if (++i >= argc) { LOG(WARNING) << "Expected Auth token to follow --token option" << std::endl; } else { found_auth_token = true; auth_token = argv[i]; } } else { LOG(WARNING) << "Unrecognized option: " << arg << std::endl; } } if (!found_host_jid) { return false; } // Validate the chromoting host JID. if (host_jid.find("/chromoting") == std::string::npos) { return false; } if (!found_jid) { return false; } if (!found_auth_token) { return false; } config->host_jid = host_jid; config->username = username; config->auth_token = auth_token; return true; } } // namespace remoting