| // Copyright (c) 2012 The Chromium OS 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 "debugd/src/process_with_id.h" |
| |
| #include <string> |
| #include <vector> |
| |
| #include <base/rand_util.h> |
| #include <base/strings/string_number_conversions.h> |
| |
| namespace debugd { |
| |
| namespace { |
| |
| constexpr int kNumRandomBytesInId = 16; |
| |
| } // namespace |
| |
| bool ProcessWithId::Init(const std::vector<std::string>& minijail_extra_args) { |
| if (SandboxedProcess::Init(minijail_extra_args)) { |
| GenerateId(); |
| return true; |
| } |
| return false; |
| } |
| |
| bool ProcessWithId::Init() { |
| return ProcessWithId::Init({}); |
| } |
| |
| void ProcessWithId::GenerateId() { |
| std::string random_bytes = base::RandBytesAsString(kNumRandomBytesInId); |
| id_ = base::HexEncode(random_bytes.data(), random_bytes.size()); |
| } |
| |
| } // namespace debugd |