diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-11 09:17:32 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-12-11 09:17:32 +0000 |
commit | 07b063c348bdc5627fff9f9bcf558ea2a2a80a03 (patch) | |
tree | 8bc1938fd4a60a9718810fb2f7717e1a8d2cf78e /remoting/host/username.cc | |
parent | 8ad04b82b3514a78b3f11d2bf06f8d984c609606 (diff) | |
download | chromium_src-07b063c348bdc5627fff9f9bcf558ea2a2a80a03.zip chromium_src-07b063c348bdc5627fff9f9bcf558ea2a2a80a03.tar.gz chromium_src-07b063c348bdc5627fff9f9bcf558ea2a2a80a03.tar.bz2 |
Move remoting::GetUsername() from remoting/base to remoting/host
GetUsername() doesn't belong to remoting/base because it's not used by
the client.
BUG=276739
Review URL: https://codereview.chromium.org/112353002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@240064 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/username.cc')
-rw-r--r-- | remoting/host/username.cc | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/remoting/host/username.cc b/remoting/host/username.cc new file mode 100644 index 0000000..e737425 --- /dev/null +++ b/remoting/host/username.cc @@ -0,0 +1,36 @@ +// Copyright 2013 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/host/username.h" + +#include <vector> + +#include "base/logging.h" + +#if defined(OS_POSIX) +#include <pwd.h> +#include <sys/types.h> +#include <unistd.h> +#endif // defined(OS_POSIX) + +namespace remoting { + +std::string GetUsername() { +#if defined(OS_POSIX) + long buf_size = sysconf(_SC_GETPW_R_SIZE_MAX); + if (buf_size <= 0) + return std::string(); + + std::vector<char> buf(buf_size); + struct passwd passwd; + struct passwd* passwd_result = NULL; + getpwuid_r(getuid(), &passwd, &(buf[0]), buf_size, &passwd_result); + return passwd_result ? passwd_result->pw_name : std::string(); +#else // !defined(OS_POSIX) + NOTIMPLEMENTED(); + return std::string(); +#endif // defined(OS_POSIX) +} + +} // namespace remoting |