Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d59c04eb authored by Elliott Hughes's avatar Elliott Hughes Committed by android-build-merger
Browse files

Merge "Set $HOSTNAME in adbd." am: 2364d7cc am: 51055214

am: 3ef8d2ab

Change-Id: Ib5fa7548a2ef15d3d78fdcabb2b66ce3e3a947f1
parents a7470fb3 3ef8d2ab
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -95,6 +95,7 @@
#include <vector>

#include <android-base/logging.h>
#include <android-base/properties.h>
#include <android-base/stringprintf.h>
#include <private/android_logger.h>

@@ -212,6 +213,13 @@ Subprocess::~Subprocess() {
    WaitForExit();
}

static std::string GetHostName() {
    char buf[HOST_NAME_MAX];
    if (gethostname(buf, sizeof(buf)) != -1 && strcmp(buf, "localhost") != 0) return buf;

    return android::base::GetProperty("ro.product.device", "android");
}

bool Subprocess::ForkAndExec(std::string* error) {
    unique_fd child_stdinout_sfd, child_stderr_sfd;
    unique_fd parent_error_sfd, child_error_sfd;
@@ -250,11 +258,11 @@ bool Subprocess::ForkAndExec(std::string* error) {
    }

    if (pw != nullptr) {
        // TODO: $HOSTNAME? Normally bash automatically sets that, but mksh doesn't.
        env["HOME"] = pw->pw_dir;
        env["HOSTNAME"] = GetHostName();
        env["LOGNAME"] = pw->pw_name;
        env["USER"] = pw->pw_name;
        env["SHELL"] = pw->pw_shell;
        env["USER"] = pw->pw_name;
    }

    if (!terminal_type_.empty()) {