blob: 4b0b21b8aed56d81c1b5fa42f85fbf891c34d177 [file] [log] [blame]
Niels Möller9862c2e2018-10-30 12:20:03 +01001/*
2 * Copyright 2018 The WebRTC Project Authors. All rights reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "examples/turnserver/read_auth_file.h"
Yves Gerey3e707812018-11-28 16:47:49 +010012
13#include <stddef.h>
14
Ali Tofighfd6a4d62022-03-31 10:36:48 +020015#include "absl/strings/string_view.h"
16#include "api/array_view.h"
Steve Anton10542f22019-01-11 09:11:00 -080017#include "rtc_base/string_encode.h"
Niels Möller9862c2e2018-10-30 12:20:03 +010018
19namespace webrtc_examples {
20
Mirko Bonadei44ca9a32018-11-13 11:16:40 +010021std::map<std::string, std::string> ReadAuthFile(std::istream* s) {
Niels Möller9862c2e2018-10-30 12:20:03 +010022 std::map<std::string, std::string> name_to_key;
23 for (std::string line; std::getline(*s, line);) {
24 const size_t sep = line.find('=');
25 if (sep == std::string::npos)
26 continue;
27 char buf[32];
Ali Tofighfd6a4d62022-03-31 10:36:48 +020028 size_t len = rtc::hex_decode(rtc::ArrayView<char>(buf),
29 absl::string_view(line).substr(sep + 1));
Niels Möller9862c2e2018-10-30 12:20:03 +010030 if (len > 0) {
31 name_to_key.emplace(line.substr(0, sep), std::string(buf, len));
32 }
33 }
34 return name_to_key;
35}
36
37} // namespace webrtc_examples