android_system_core/adb/sysdeps/env.h
Joshua Duong 62a42ec8ca [adb] Correctly read host/user name on Windows.
Bug: 162111908

Test: On linux/mac:
HOSTNAME="" adb keygen mykey; cat mykey.pub # Also LOGNAME
HOSTNAME="测试" adb keygen mykey; cat mykey.pub
HOSTNAME="test" adb keygen mykey; cat mykey.pub

Test: On Windows:
set COMPUTERNAME=&& adb keygen mykey
&& powershell -command "get-content -encoding utf8 mykey.pub" # Also USERNAME
set COMPUTERNAME=测试&& adb keygen mykey
&& powershell -command "get-content -encoding utf8 mykey.pub"
set COMPUTERNAME=test&& adb keygen mykey
&& powershell -command "get-content -encoding utf8 mykey.pub"

Change-Id: I62c952c511a620286aa4e05b1763361406e9f89a
2020-08-03 18:55:17 -07:00

35 lines
1.1 KiB
C++

/*
* Copyright (C) 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <optional>
#include <string>
namespace adb {
namespace sysdeps {
// Attempts to retrieve the environment variable value for |var|. Returns std::nullopt
// if unset.
std::optional<std::string> GetEnvironmentVariableUTF8(std::string_view var);
// Gets the host name of the system. Returns empty string on failure.
std::string GetHostNameUTF8();
// Gets the current login user. Returns empty string on failure.
std::string GetLoginNameUTF8();
} // namespace sysdeps
} // namespace adb