Loading include/sysutils/SocketClient.h +4 −0 Original line number Diff line number Diff line Loading @@ -28,8 +28,12 @@ public: 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; Loading libsysutils/src/SocketClient.cpp +17 −5 Original line number Diff line number Diff line Loading @@ -50,14 +50,26 @@ int SocketClient::sendMsg(const char *msg) { } // Send the message including null character if (sendData(msg, strlen(msg) + 1) != 0) { SLOGW("Unable to send msg '%s'", msg); return -1; } return 0; } int SocketClient::sendData(const void* data, int len) { int rc = 0; const char *p = msg; int brtw = strlen(msg) + 1; const char *p = (const char*) data; int brtw = len; if (len == 0) { return 0; } pthread_mutex_lock(&mWriteMutex); while(brtw) { while (brtw > 0) { if ((rc = write(mSocket, p, brtw)) < 0) { SLOGW("Unable to send msg '%s' (%s)", msg, strerror(errno)); SLOGW("write error (%s)", strerror(errno)); pthread_mutex_unlock(&mWriteMutex); return -1; } else if (!rc) { Loading rootdir/init.rc +1 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,7 @@ service vold /system/bin/vold service netd /system/bin/netd socket netd stream 0660 root system socket dnsproxyd stream 0660 root inet service debuggerd /system/bin/debuggerd Loading Loading
include/sysutils/SocketClient.h +4 −0 Original line number Diff line number Diff line Loading @@ -28,8 +28,12 @@ public: 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; Loading
libsysutils/src/SocketClient.cpp +17 −5 Original line number Diff line number Diff line Loading @@ -50,14 +50,26 @@ int SocketClient::sendMsg(const char *msg) { } // Send the message including null character if (sendData(msg, strlen(msg) + 1) != 0) { SLOGW("Unable to send msg '%s'", msg); return -1; } return 0; } int SocketClient::sendData(const void* data, int len) { int rc = 0; const char *p = msg; int brtw = strlen(msg) + 1; const char *p = (const char*) data; int brtw = len; if (len == 0) { return 0; } pthread_mutex_lock(&mWriteMutex); while(brtw) { while (brtw > 0) { if ((rc = write(mSocket, p, brtw)) < 0) { SLOGW("Unable to send msg '%s' (%s)", msg, strerror(errno)); SLOGW("write error (%s)", strerror(errno)); pthread_mutex_unlock(&mWriteMutex); return -1; } else if (!rc) { Loading
rootdir/init.rc +1 −0 Original line number Diff line number Diff line Loading @@ -320,6 +320,7 @@ service vold /system/bin/vold service netd /system/bin/netd socket netd stream 0660 root system socket dnsproxyd stream 0660 root inet service debuggerd /system/bin/debuggerd Loading