• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <alloca.h>
2 #include <errno.h>
3 #include <sys/types.h>
4 #include <pthread.h>
5 
6 #define LOG_TAG "FrameworkClient"
7 #include <cutils/log.h>
8 
9 #include <sysutils/FrameworkClient.h>
10 
FrameworkClient(int socket)11 FrameworkClient::FrameworkClient(int socket) {
12     mSocket = socket;
13     pthread_mutex_init(&mWriteMutex, NULL);
14 }
15 
sendMsg(const char * msg)16 int FrameworkClient::sendMsg(const char *msg) {
17     if (mSocket < 0) {
18         errno = EHOSTUNREACH;
19         return -1;
20     }
21 
22     pthread_mutex_lock(&mWriteMutex);
23     if (write(mSocket, msg, strlen(msg) +1) < 0) {
24         LOGW("Unable to send msg '%s' (%s)", msg, strerror(errno));
25     }
26     pthread_mutex_unlock(&mWriteMutex);
27     return 0;
28 }
29 
sendMsg(const char * msg,const char * data)30 int FrameworkClient::sendMsg(const char *msg, const char *data) {
31     char *buffer = (char *) alloca(strlen(msg) + strlen(data) + 1);
32     if (!buffer) {
33         errno = -ENOMEM;
34         return -1;
35     }
36     strcpy(buffer, msg);
37     strcat(buffer, data);
38     return sendMsg(buffer);
39 }
40 
41