Merge ssh://slp-info.sec.samsung.net:29418/magnolia/framework/appfw/com-core into...
authorSung-jae Park <nicesj.park@samsung.com>
Thu, 4 Dec 2014 06:54:22 +0000 (15:54 +0900)
committerSung-jae Park <nicesj.park@samsung.com>
Thu, 4 Dec 2014 07:04:20 +0000 (16:04 +0900)
Conflicts:
CMakeLists.txt
include/com-core.h
include/com-core_internal.h
include/com-core_packet-router.h
include/com-core_packet.h
include/com-core_thread.h
include/packet.h
include/secure_socket.h
packaging/libcom-core.changes
packaging/libcom-core.spec
src/com-core.c
src/com-core_packet.c
src/com-core_thread.c
src/packet.c
src/secure_socket.c

Sync with the latest private implementations

Change-Id: I8aec4d532b687226d29eb11c18332a2cabc4f5e3

1  2 
src/packet.c

diff --cc src/packet.c
@@@ -301,47 -332,55 +332,55 @@@ out
  
  EAPI struct packet *packet_create_reply(const struct packet *packet, const char *fmt, ...)
  {
-       int payload_size;
-       struct packet *result;
-       va_list va;
-       if (!packet || packet->state != VALID) {
-               return NULL;
-       }
-       result = malloc(sizeof(*result));
-       if (!result) {
-               ErrPrint("Heap: %s\n", strerror(errno));
-               return NULL;
-       }
-       payload_size = sizeof(*result->data) + BUFSIZ;
-       result->refcnt = 0;
-       result->data = calloc(1, payload_size);
-       if (!packet->data) {
-               ErrPrint("Heap: %s\n", strerror(errno));
-               result->state = INVALID;
-               free(result);
-               return NULL;
-       }
-       result->state = VALID;
-       result->data->head.source = packet->data->head.destination;
-       result->data->head.destination = packet->data->head.source;
-       result->data->head.mask = 0xFFFFFFFF;
-       result->data->head.seq = packet->data->head.seq;
-       result->data->head.type = PACKET_ACK;
-       result->data->head.version = packet->data->head.version;
+     int payload_size;
+     struct packet *result;
+     va_list va;
+     if (!packet || packet->state != VALID) {
+       return NULL;
+     }
+     result = malloc(sizeof(*result));
+     if (!result) {
+       ErrPrint("Heap: %s\n", strerror(errno));
+       return NULL;
+     }
+     payload_size = sizeof(*result->data) + BUFSIZ;
+     result->refcnt = 0;
 -    result->data = calloc(1, payload_size);
++    result->data = calloc(1, BUFSIZ);
+     if (!packet->data) {
+       ErrPrint("Heap: %s\n", strerror(errno));
+       result->state = INVALID;
+       free(result);
+       return NULL;
+     }
+     result->state = VALID;
+     result->data->head.source = packet->data->head.destination;
+     result->data->head.destination = packet->data->head.source;
+     result->data->head.mask = 0xFFFFFFFF;
+     result->data->head.seq = packet->data->head.seq;
+     result->data->head.type = PACKET_ACK;
+     result->data->head.version = packet->data->head.version;
+     result->data->head.fd = -1;
+     if (packet->data->head.command[0] == PACKET_CMD_INT_TAG) {
+       unsigned int *head_cmd = (unsigned int *)result->data->head.command;
+       unsigned int *packet_cmd = (unsigned int *)packet->data->head.command;
+       *head_cmd = *packet_cmd;
+     } else {
        strcpy(result->data->head.command, packet->data->head.command); /* we don't need to use strncmp */
-       result->data->head.payload_size = 0;
-       payload_size -= sizeof(*result->data);
+     }
+     result->data->head.payload_size = 0;
+     payload_size -= sizeof(*result->data);
  
-       va_start(va, fmt);
-       result = packet_body_filler(result, payload_size, fmt, va);
-       va_end(va);
+     va_start(va, fmt);
+     result = packet_body_filler(result, payload_size, fmt, va);
+     va_end(va);
  
-       return packet_ref(result);
+     return packet_ref(result);
  }
  
  EAPI int packet_swap_address(struct packet *packet)
  
  EAPI struct packet *packet_create(const char *cmd, const char *fmt, ...)
  {
-       struct packet *packet;
-       int payload_size;
-       va_list va;
-       if (strlen(cmd) >= PACKET_MAX_CMD) {
-               ErrPrint("Command is too long\n");
-               return NULL;
-       }
-       packet = malloc(sizeof(*packet));
-       if (!packet) {
-               ErrPrint("Heap: %s\n", strerror(errno));
-               return NULL;
-       }
-       payload_size = sizeof(*packet->data) + BUFSIZ;
-       packet->refcnt = 0;
-       packet->data = calloc(1, BUFSIZ);
-       if (!packet->data) {
-               ErrPrint("Heap: %s\n", strerror(errno));
-               packet->state = INVALID;
-               free(packet);
-               return NULL;
-       }
-       packet->state = VALID;
-       packet->data->head.source = 0lu;
-       packet->data->head.destination = 0lu;
-       packet->data->head.mask = 0xFFFFFFFF;
-       packet->data->head.seq = util_timestamp();
-       packet->data->head.type = PACKET_REQ;
-       packet->data->head.version = PACKET_VERSION;
+     struct packet *packet;
+     int payload_size;
+     va_list va;
+     if (strlen(cmd) >= PACKET_MAX_CMD) {
+       ErrPrint("Command is too long\n");
+       return NULL;
+     }
+     packet = malloc(sizeof(*packet));
+     if (!packet) {
+       ErrPrint("Heap: %s\n", strerror(errno));
+       return NULL;
+     }
+     payload_size = sizeof(*packet->data) + BUFSIZ;
+     packet->refcnt = 0;
 -    packet->data = calloc(1, payload_size);
++    packet->data = calloc(1, BUFSIZ);
+     if (!packet->data) {
+       ErrPrint("Heap: %s\n", strerror(errno));
+       packet->state = INVALID;
+       free(packet);
+       return NULL;
+     }
+     packet->state = VALID;
+     packet->data->head.source = 0lu;
+     packet->data->head.destination = 0lu;
+     packet->data->head.mask = 0xFFFFFFFF;
+     packet->data->head.seq = util_timestamp();
+     packet->data->head.type = PACKET_REQ;
+     packet->data->head.version = PACKET_VERSION;
+     packet->data->head.fd = -1;
+     if (cmd[0] == PACKET_CMD_INT_TAG) {
+       unsigned int *head_cmd = (unsigned int *)packet->data->head.command;
+       unsigned int *in_cmd = (unsigned int *)cmd;
+       *head_cmd = *in_cmd;
+     } else {
        strncpy(packet->data->head.command, cmd, sizeof(packet->data->head.command));
-       packet->data->head.payload_size = 0;
-       payload_size -= sizeof(*packet->data); /*!< Usable payload size (except head size) */
+     }
+     packet->data->head.payload_size = 0;
+     payload_size -= sizeof(*packet->data); /*!< Usable payload size (except head size) */
  
-       va_start(va, fmt);
-       packet = packet_body_filler(packet, payload_size, fmt, va);
-       va_end(va);
+     va_start(va, fmt);
+     packet = packet_body_filler(packet, payload_size, fmt, va);
+     va_end(va);
  
-       return packet_ref(packet);
+     return packet_ref(packet);
  }
  
  EAPI struct packet *packet_create_noack(const char *cmd, const char *fmt, ...)
  {
-       int payload_size;
-       struct packet *result;
-       va_list va;
-       if (strlen(cmd) >= PACKET_MAX_CMD) {
-               ErrPrint("Command is too long\n");
-               return NULL;
-       }
-       result = malloc(sizeof(*result));
-       if (!result) {
-               ErrPrint("Heap: %s\n", strerror(errno));
-               return NULL;
-       }
-       payload_size = sizeof(*result->data) + BUFSIZ;
-       result->refcnt = 0;
-       result->data = calloc(1, payload_size);
-       if (!result->data) {
-               ErrPrint("Heap: %s\n", strerror(errno));
-               result->state = INVALID;
-               free(result);
-               return NULL;
-       }
-       result->state = VALID;
-       result->data->head.source = 0lu;
-       result->data->head.destination = 0lu;
-       result->data->head.mask = 0xFFFFFFFF;
-       result->data->head.seq = util_timestamp();
-       result->data->head.type = PACKET_REQ_NOACK;
-       result->data->head.version = PACKET_VERSION;
+     int payload_size;
+     struct packet *result;
+     va_list va;
+     if (strlen(cmd) >= PACKET_MAX_CMD) {
+       ErrPrint("Command is too long\n");
+       return NULL;
+     }
+     result = malloc(sizeof(*result));
+     if (!result) {
+       ErrPrint("Heap: %s\n", strerror(errno));
+       return NULL;
+     }
+     payload_size = sizeof(*result->data) + BUFSIZ;
+     result->refcnt = 0;
 -    result->data = calloc(1, payload_size);
++    result->data = calloc(1, BUFSIZ);
+     if (!result->data) {
+       ErrPrint("Heap: %s\n", strerror(errno));
+       result->state = INVALID;
+       free(result);
+       return NULL;
+     }
+     result->state = VALID;
+     result->data->head.source = 0lu;
+     result->data->head.destination = 0lu;
+     result->data->head.mask = 0xFFFFFFFF;
+     result->data->head.seq = util_timestamp();
+     result->data->head.type = PACKET_REQ_NOACK;
+     result->data->head.version = PACKET_VERSION;
+     result->data->head.fd = -1;
+     if (cmd[0] == PACKET_CMD_INT_TAG) {
+       unsigned int *head_cmd = (unsigned int *)result->data->head.command;
+       unsigned int *cmd_in = (unsigned int *)cmd;
+       *head_cmd = *cmd_in;
+     } else {
        strncpy(result->data->head.command, cmd, sizeof(result->data->head.command));
-       result->data->head.payload_size = 0;
-       payload_size -= sizeof(*result->data);
+     }
+     result->data->head.payload_size = 0;
+     payload_size -= sizeof(*result->data);
  
-       va_start(va, fmt);
-       result = packet_body_filler(result, payload_size, fmt, va);
-       va_end(va);
+     va_start(va, fmt);
+     result = packet_body_filler(result, payload_size, fmt, va);
+     va_end(va);
  
-       return packet_ref(result);
+     return packet_ref(result);
  }
  
  EAPI int packet_get(const struct packet *packet, const char *fmt, ...)