Lines Matching defs:message

187 static int SendMessage(LoopHandle loop, TaskHandle task, const char *message)
189 if (message == NULL) {
190 printf("message is null \n");
194 uint32_t bufferSize = strlen(message) + 1;
202 int ret = memcpy_s(buff, bufferSize, message, strlen(message) + 1);
209 LE_STATUS status = LE_Send(loop, task, handle, strlen(message) + 1);
311 static int MsgRebuild(MsgNode *message, const Message *msg)
313 if (CheckMsg(&message->msgHeader) != 0) {
316 if (msg->msgLen == sizeof(message->msgHeader)) { // only has msg header
319 if (message->buffer == NULL) {
320 message->buffer = calloc(1, msg->msgLen - sizeof(message->msgHeader));
321 if (message->buffer == NULL) {
322 printf("Failed to alloc memory for recv message \n");
326 if (message->tlvOffset == NULL) {
328 message->tlvOffset = malloc(totalCount * sizeof(uint32_t));
329 if (message->tlvOffset == NULL) {
330 printf("Failed to alloc memory for recv message \n");
334 message->tlvOffset[i] = INVALID_OFFSET;
348 Message *message = *outMsg;
349 if (message == NULL) {
350 message = CreateMessage();
351 if (message == NULL) {
352 printf("Failed to create message \n");
355 *outMsg = message;
360 if (*msgRecvLen < sizeof(Message)) { // recv partial message
362 int ret = memcpy_s(((uint8_t *)&message->msgHeader) + *msgRecvLen,
363 sizeof(message->msgHeader) - *msgRecvLen,
364 buffer, sizeof(message->msgHeader) - *msgRecvLen);
370 ret = MsgRebuild(message, &message->msgHeader);
375 reminderLen = bufferLen - (sizeof(message->msgHeader) - *msgRecvLen);
376 reminderBuffer = buffer + sizeof(message->msgHeader) - *msgRecvLen;
377 *msgRecvLen = sizeof(message->msgHeader);
379 int ret = memcpy_s(((uint8_t *)&message->msgHeader) + *msgRecvLen,
380 sizeof(message->msgHeader) - *msgRecvLen, buffer, bufferLen);
392 int DecodeMsg(Message * message)
394 if (message == NULL) {
395 printf("decode empty message, failed! \n");
404 int ProcessTerminationStatusMsg(const MsgNode *message, Result *result)
406 if (message == NULL || result == NULL) {
450 int CheckMsg(const MsgNode *message)
452 if (message == NULL) {
455 if (strlen(message->msgHeader.processName) <= 0) {
456 printf("Invalid property processName %s \n", message->msgHeader.buffer);
459 if (message->tlvOffset == NULL) {
460 printf("Invalid property tlv offset %s \n", message->msgHeader.buffer);
463 if (message->buffer == NULL) {
464 printf("Invalid property buffer %s \n", message->msgHeader.buffer);
468 if (message->tlvOffset[TLV_BUNDLE_INFO] == INVALID_OFFSET ||
469 message->tlvOffset[TLV_MSG_FLAGS] == INVALID_OFFSET ||
470 message->tlvOffset[TLV_ACCESS_TOKEN_INFO] == INVALID_OFFSET ||
471 message->tlvOffset[TLV_DOMAIN_INFO] == INVALID_OFFSET ||
472 message->tlvOffset[TLV_DAC_INFO] == INVALID_OFFSET) {
474 message->tlvOffset[TLV_BUNDLE_INFO], message->tlvOffset[TLV_MSG_FLAGS],
475 message->tlvOffset[TLV_ACCESS_TOKEN_INFO],
476 message->tlvOffset[TLV_DOMAIN_INFO], message->tlvOffset[TLV_DAC_INFO]);
483 static void ProcessReqMsg(MyTask *task, MsgNode *message)
485 int ret = CheckMsg(message);
487 SendResponse(task, &message->msgHeader, ret, 0);
488 DeleteMsg(message);
492 message->task = task;
495 void *GetMsgExtInfo(const MsgNode *message, const char *name, uint32_t *len)
501 if (message == NULL || message->buffer == NULL || message->tlvOffset == NULL) {
504 printf("GetMsgExtInfo tlvCount %d name %s \n", message->tlvCount, name);
506 for (uint32_t index = TLV_MAX; index < (TLV_MAX + message->tlvCount); index++) {
507 if (message->tlvOffset[index] == INVALID_OFFSET) {
510 uint8_t *data = message->buffer + message->tlvOffset[index];
526 MsgNode *RebuildMsgNode(MsgNode *message, Process *info)
529 if (message == NULL || info == NULL) {
541 int ret = memcpy_s(&node->msgHeader, sizeof(Message), &message->msgHeader, sizeof(Message));
547 bufferLen = message->msgHeader.msgLen + info->message->msgHeader.msgLen - sizeof(Message);
550 node->msgHeader.tlvCount += message->msgHeader.tlvCount;
554 printf("Failed to alloc memory for recv message \n");
558 uint32_t infoBufLen = info->message->msgHeader.msgLen - sizeof(Message);
559 uint32_t msgBufLen = message->msgHeader.msgLen - sizeof(Message);
560 ret = memcpy_s(node->buffer, bufferLen, info->message->buffer, infoBufLen);
566 ret = memcpy_s(node->buffer + infoBufLen, bufferLen - infoBufLen, message->buffer, msgBufLen);
569 printf("Failed to memcpy_s message->buffer \n");
577 static MsgNode *ProcessBegetctlMsg(MyTask *task, MsgNode *message)
580 const char *msg = (const char *)GetMsgExtInfo(message, MSG_EXT_NAME_BEGET_PID, &len);
586 MsgNode *msgNode = RebuildMsgNode(message, info);
588 printf("Failed to rebuild message node \n");
600 static void ProcessBegetMsg(MyTask *task, MsgNode *message)
602 Message *msg = &message->msgHeader;
604 MsgNode *msgNode = ProcessBegetctlMsg(connection, message);
607 DeleteMsg(message);
611 DeleteMsg(message);
615 static void ProcessRecvMsg(MyTask *task, MsgNode *message)
617 Message *msg = &message->msgHeader;
618 printf("Recv message header magic 0x%x type %u id %u len %u %s \n",
629 ret = ProcessTerminationStatusMsg(message, &result);
631 DeleteMessage(message);
635 ProcessReqMsg(task, message);
640 DeleteMessage(message);
643 ProcessBegetMsg(task, message);
648 DeleteMessage(message);
651 ret = ProcessRemountMsg(task, message);
655 ProcessRestartMsg(task, message);
659 DeleteMessage(message);
681 Message *message = task->ctx.incompleteMsg; // incomplete msg
689 &message, &task->ctx.msgRecvLen, &reminder);
694 if (task->ctx.msgRecvLen != message->msgLen) { // recv complete msg
695 task->ctx.incompleteMsg = message;
696 message = NULL;
705 ret = DecodeMsg(message);
709 (void)ProcessRecvMsg(task, message);
710 message = NULL;