From: Jinhyung Choi Date: Wed, 30 Oct 2013 07:23:54 +0000 (+0900) Subject: guest_server: changed message format for suspend/resume X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~672^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F65%2F11565%2F1;p=sdk%2Femulator%2Fqemu.git guest_server: changed message format for suspend/resume Change-Id: I6c7c6766e5baa0e380531c2cf20401d4522fae5e Signed-off-by: Jinhyung Choi --- diff --git a/tizen/src/guest_server.c b/tizen/src/guest_server.c index e2b0d44fda..7719ec7258 100644 --- a/tizen/src/guest_server.c +++ b/tizen/src/guest_server.c @@ -68,6 +68,7 @@ static int server_sock = 0; typedef struct GS_Client { int port; char addr[RECV_BUF_SIZE]; + char serial[RECV_BUF_SIZE]; QTAILQ_ENTRY(GS_Client) next; } GS_Client; @@ -95,6 +96,7 @@ static void send_to_client(GS_Client* client, int state) { struct sockaddr_in sock_addr; int s, slen = sizeof(sock_addr); + int serial_len = 0; char buf [32]; if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){ @@ -112,8 +114,10 @@ static void send_to_client(GS_Client* client, int state) memset(buf, 0, sizeof(buf)); + serial_len = strlen(client->serial); + // send message "[4 digit message length]host:sync:emulator-26101:[0|1]" - sprintf(buf, "0026host:sync:emulator-%d:%d", svr_port, state); + sprintf(buf, "%04dhost:sync:%s:%d", (serial_len + 12), client->serial, state); if (sendto(s, buf, sizeof(buf), 0, (struct sockaddr*)&sock_addr, slen) == -1) { @@ -137,7 +141,7 @@ void notify_all_sdb_clients(int state) } -static void add_sdb_client(const char* addr, int port) +static void add_sdb_client(const char* addr, int port, const char* serial) { GS_Client *client = g_malloc0(sizeof(GS_Client)); if (NULL == client) { @@ -151,10 +155,17 @@ static void add_sdb_client(const char* addr, int port) } else if (strlen(addr) > RECV_BUF_SIZE) { INFO("GS_Client client's address is too long. %s\n", addr); return; + } else if (serial == NULL || strlen(serial) <= 0) { + INFO("GS_Client client's serial is EMPTY.\n"); + return; + } else if (strlen(serial) > RECV_BUF_SIZE) { + INFO("GS_Client client's serial is too long. %s\n", serial); + return; } strcpy(client->addr, addr); client->port = port; + strcpy(client->serial, serial); pthread_mutex_lock(&mutex_clilist); @@ -404,16 +415,23 @@ static void register_sdb_server(char* readbuf) char token[] = "\n"; char* ret = NULL; char* addr = NULL; + char* serial = NULL; + ret = strtok(readbuf, token); addr = strtok(NULL, token); if (addr == NULL) return; + ret = strtok(NULL, token); if (ret == NULL) return; port = atoi(ret); - add_sdb_client(addr, port); + serial = strtok(NULL, token); + if (serial == NULL) + return; + + add_sdb_client(addr, port, serial); } #define PRESS 1