From: Sage Weil Date: Mon, 8 Feb 2016 16:31:30 +0000 (-0500) Subject: common/admin_socket: add chown X-Git-Tag: v10.1.0~217^2~3 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=ccd5531ed304ed44a36436ebc311846414758cba;p=ceph.git common/admin_socket: add chown Signed-off-by: Sage Weil --- diff --git a/src/common/admin_socket.cc b/src/common/admin_socket.cc index aa0146fe1c3bb..f9468e37712bf 100644 --- a/src/common/admin_socket.cc +++ b/src/common/admin_socket.cc @@ -286,6 +286,17 @@ void* AdminSocket::entry() ldout(m_cct, 5) << "entry exit" << dendl; } +void AdminSocket::chown(uid_t uid, gid_t gid) +{ + if (m_sock_fd >= 0) { + int r = ::fchown(m_sock_fd, uid, gid); + if (r < 0) { + r = -errno; + lderr(m_cct) << "AdminSocket: failed to chown socket: " + << cpp_strerror(r) << dendl; + } + } +} bool AdminSocket::do_accept() { diff --git a/src/common/admin_socket.h b/src/common/admin_socket.h index bad235a277f6e..42be28c958da8 100644 --- a/src/common/admin_socket.h +++ b/src/common/admin_socket.h @@ -71,7 +71,9 @@ public: int unregister_command(std::string command); bool init(const std::string &path); - + + void chown(uid_t uid, gid_t gid); + private: AdminSocket(const AdminSocket& rhs); AdminSocket& operator=(const AdminSocket &rhs);