diff options
author | Android (Google) Code Review <android-gerrit@google.com> | 2009-05-11 09:01:15 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2009-05-11 09:01:15 -0700 |
commit | c73d9e43a0c98a87222ef0c8749d6abba06c7778 (patch) | |
tree | 5af57a264b8dda537f5720dfc45333abda996dc0 /libsysutils/src/FrameworkClient.cpp | |
parent | 3fd82b8861aa410fab7785074941b459d92220c1 (diff) | |
parent | fa644ffe944c01a9b00f8d7676d58394fabee285 (diff) | |
download | system_core-c73d9e43a0c98a87222ef0c8749d6abba06c7778.zip system_core-c73d9e43a0c98a87222ef0c8749d6abba06c7778.tar.gz system_core-c73d9e43a0c98a87222ef0c8749d6abba06c7778.tar.bz2 |
Merge changes 1341,1342 into donut
* changes:
libsysutils: Add multiple client support and fix some bugs
nexus: Implement wifi scanner and fix a lot of bugs
Diffstat (limited to 'libsysutils/src/FrameworkClient.cpp')
-rw-r--r-- | libsysutils/src/FrameworkClient.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/libsysutils/src/FrameworkClient.cpp b/libsysutils/src/FrameworkClient.cpp new file mode 100644 index 0000000..237bb60 --- /dev/null +++ b/libsysutils/src/FrameworkClient.cpp @@ -0,0 +1,41 @@ +#include <alloca.h> +#include <errno.h> +#include <sys/types.h> +#include <pthread.h> + +#define LOG_TAG "FrameworkClient" +#include <cutils/log.h> + +#include <sysutils/FrameworkClient.h> + +FrameworkClient::FrameworkClient(int socket) { + mSocket = socket; + pthread_mutex_init(&mWriteMutex, NULL); +} + +int FrameworkClient::sendMsg(char *msg) { + LOGD("FrameworkClient::sendMsg(%s)", msg); + if (mSocket < 0) { + errno = EHOSTUNREACH; + return -1; + } + + pthread_mutex_lock(&mWriteMutex); + if (write(mSocket, msg, strlen(msg) +1) < 0) { + LOGW("Unable to send msg '%s' (%s)", msg, strerror(errno)); + } + pthread_mutex_unlock(&mWriteMutex); + return 0; +} + +int FrameworkClient::sendMsg(char *msg, char *data) { + char *buffer = (char *) alloca(strlen(msg) + strlen(data) + 1); + if (!buffer) { + errno = -ENOMEM; + return -1; + } + strcpy(buffer, msg); + strcat(buffer, data); + return sendMsg(buffer); +} + |