Loading include/sysutils/SocketClient.h +13 −0 Original line number Diff line number Diff line Loading @@ -4,16 +4,29 @@ #include "../../../frameworks/base/include/utils/List.h" #include <pthread.h> #include <sys/types.h> class SocketClient { int mSocket; pthread_mutex_t mWriteMutex; /* Peer process ID */ pid_t mPid; /* Peer user ID */ uid_t mUid; /* Peer group ID */ gid_t mGid; public: SocketClient(int sock); virtual ~SocketClient() {} int getSocket() { return mSocket; } pid_t getPid() const { return mPid; } uid_t getUid() const { return mUid; } gid_t getGid() const { return mGid; } int sendMsg(int code, const char *msg, bool addErrno); int sendMsg(const char *msg); Loading libsysutils/src/SocketClient.cpp +18 −2 Original line number Diff line number Diff line #include <alloca.h> #include <errno.h> #include <sys/socket.h> #include <sys/types.h> #include <pthread.h> #include <string.h> Loading @@ -9,9 +10,24 @@ #include <sysutils/SocketClient.h> SocketClient::SocketClient(int socket) { mSocket = socket; SocketClient::SocketClient(int socket) : mSocket(socket) , mPid(-1) , mUid(-1) , mGid(-1) { pthread_mutex_init(&mWriteMutex, NULL); struct ucred creds; socklen_t szCreds = sizeof(creds); memset(&creds, 0, szCreds); int err = getsockopt(socket, SOL_SOCKET, SO_PEERCRED, &creds, &szCreds); if (err == 0) { mPid = creds.pid; mUid = creds.uid; mGid = creds.gid; } } int SocketClient::sendMsg(int code, const char *msg, bool addErrno) { Loading Loading
include/sysutils/SocketClient.h +13 −0 Original line number Diff line number Diff line Loading @@ -4,16 +4,29 @@ #include "../../../frameworks/base/include/utils/List.h" #include <pthread.h> #include <sys/types.h> class SocketClient { int mSocket; pthread_mutex_t mWriteMutex; /* Peer process ID */ pid_t mPid; /* Peer user ID */ uid_t mUid; /* Peer group ID */ gid_t mGid; public: SocketClient(int sock); virtual ~SocketClient() {} int getSocket() { return mSocket; } pid_t getPid() const { return mPid; } uid_t getUid() const { return mUid; } gid_t getGid() const { return mGid; } int sendMsg(int code, const char *msg, bool addErrno); int sendMsg(const char *msg); Loading
libsysutils/src/SocketClient.cpp +18 −2 Original line number Diff line number Diff line #include <alloca.h> #include <errno.h> #include <sys/socket.h> #include <sys/types.h> #include <pthread.h> #include <string.h> Loading @@ -9,9 +10,24 @@ #include <sysutils/SocketClient.h> SocketClient::SocketClient(int socket) { mSocket = socket; SocketClient::SocketClient(int socket) : mSocket(socket) , mPid(-1) , mUid(-1) , mGid(-1) { pthread_mutex_init(&mWriteMutex, NULL); struct ucred creds; socklen_t szCreds = sizeof(creds); memset(&creds, 0, szCreds); int err = getsockopt(socket, SOL_SOCKET, SO_PEERCRED, &creds, &szCreds); if (err == 0) { mPid = creds.pid; mUid = creds.uid; mGid = creds.gid; } } int SocketClient::sendMsg(int code, const char *msg, bool addErrno) { Loading