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)11FrameworkClient::FrameworkClient(int socket) { 12 mSocket = socket; 13 pthread_mutex_init(&mWriteMutex, NULL); 14 } 15 sendMsg(const char * msg)16int 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)30int 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