Index: net/socket/unix_domain_server_socket_posix.cc |
diff --git a/net/socket/unix_domain_server_socket_posix.cc b/net/socket/unix_domain_server_socket_posix.cc |
index 8f2f2d6de2f01e4bffa0758b22edea5c96489455..551889cc28af2dff757150b49d9ecd21d3540c36 100644 |
--- a/net/socket/unix_domain_server_socket_posix.cc |
+++ b/net/socket/unix_domain_server_socket_posix.cc |
@@ -29,18 +29,19 @@ UnixDomainServerSocket::~UnixDomainServerSocket() { |
// static |
bool UnixDomainServerSocket::GetPeerIds(SocketDescriptor socket, |
- uid_t* user_id, |
- gid_t* group_id) { |
+ Credentials* credentials) { |
#if defined(OS_LINUX) || defined(OS_ANDROID) |
struct ucred user_cred; |
socklen_t len = sizeof(user_cred); |
if (getsockopt(socket, SOL_SOCKET, SO_PEERCRED, &user_cred, &len) < 0) |
return false; |
- *user_id = user_cred.uid; |
- *group_id = user_cred.gid; |
+ credentials->process_id = user_cred.pid; |
+ credentials->user_id = user_cred.uid; |
+ credentials->group_id = user_cred.gid; |
return true; |
#else |
- return getpeereid(socket, user_id, group_id) == 0; |
+ return getpeereid(socket, |
+ &credentials->user_id, &credentials->group_id) == 0; |
byungchul
2014/08/04 22:18:02
wrong indentation
SeRya
2014/08/05 10:32:27
Done.
|
#endif |
} |
@@ -130,10 +131,9 @@ bool UnixDomainServerSocket::AuthenticateAndGetStreamSocket( |
scoped_ptr<StreamSocket>* socket) { |
DCHECK(accept_socket_); |
- uid_t user_id; |
- gid_t group_id; |
- if (!GetPeerIds(accept_socket_->socket_fd(), &user_id, &group_id) || |
- !auth_callback_.Run(user_id, group_id)) { |
+ Credentials credentials; |
+ if (!GetPeerIds(accept_socket_->socket_fd(), &credentials) || |
+ !auth_callback_.Run(credentials)) { |
accept_socket_.reset(); |
return false; |
} |