android_system_core/include/sysutils/SocketClient.h
Brad Fitzpatrick 8c5669f9f9 Let SocketClient users write binary data to clients.
This is a dependency for the DNS proxy CLs.

This CL also adds a new socket for the netd process to inherit which
is owned by the inet group.  (so only apps with the INTERNET
permission can use the DNS proxy...)

Change-Id: Ic3475c697913ba85805b4e49801b65e7a1d59289
2010-10-27 10:27:34 -07:00

40 lines
876 B
C++

#ifndef _SOCKET_CLIENT_H
#define _SOCKET_CLIENT_H
#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; }
// Send null-terminated C strings:
int sendMsg(int code, const char *msg, bool addErrno);
int sendMsg(const char *msg);
// Sending binary data:
int sendData(const void *data, int len);
};
typedef android::List<SocketClient *> SocketClientCollection;
#endif