text: // Copyright (c) 2011 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/base/auth_token_util.h"
  #include "remoting/base/constants.h"
  
  namespace remoting {
  
  void ParseAuthTokenWithService(const std::string& auth_service_with_token,
                                 std::string* auth_token,
                                 std::string* auth_service) {
    size_t delimiter_pos = auth_service_with_token.find(':');
    if (delimiter_pos == std::string::npos) {
      // Legacy case: there is no delimiter. Assume the whole string is the
      // auth_token, and that we're using the default service.
      //
      // TODO(ajwong): Remove this defaulting once all webclients are migrated.
      // BUG:83897
      auth_token->assign(auth_service_with_token);
      auth_service->assign(kChromotingTokenDefaultServiceName);
    } else {
      auth_service->assign(auth_service_with_token.substr(0, delimiter_pos));
  
      // Make sure there is *something* after the delimiter before doing substr.
      if (delimiter_pos < auth_service_with_token.size()) {
        auth_token->assign(auth_service_with_token.substr(delimiter_pos + 1));
      } else {
        auth_token->clear();
      }
    }
  }
  
  }  // namespace remoting
  