From 912c8f6887b6007c474ca6c1c3134c25936ab982 Mon Sep 17 00:00:00 2001 From: Alexander Wenzel Date: Fri, 10 Jan 2014 07:06:19 +0100 Subject: Defined return value for dlt_message_read(). Signed-off-by: Alexander Wenzel --- include/dlt/dlt_common.h | 5 ++ src/daemon/dlt-daemon.c | 194 ++++++++++++++++++++++++----------------------- src/lib/dlt_client.c | 2 +- src/shared/dlt_common.c | 16 ++-- 4 files changed, 112 insertions(+), 105 deletions(-) diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h index 22710c7..be04e68 100755 --- a/include/dlt/dlt_common.h +++ b/include/dlt/dlt_common.h @@ -614,6 +614,11 @@ typedef struct int size; } DltBufferBlockHead; +#define DLT_MESSAGE_ERROR_OK 0 +#define DLT_MESSAGE_ERROR_UNKNOWN -1 +#define DLT_MESSAGE_ERROR_SIZE -2 +#define DLT_MESSAGE_ERROR_CONTENT -3 + #ifdef __cplusplus extern "C" { diff --git a/src/daemon/dlt-daemon.c b/src/daemon/dlt-daemon.c index b10237c..c862ba8 100644 --- a/src/daemon/dlt-daemon.c +++ b/src/daemon/dlt-daemon.c @@ -1242,7 +1242,7 @@ int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon } /* Process all received messages */ - while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSock.buf,daemon_local->receiverSock.bytesRcvd,daemon_local->flags.nflag,daemon_local->flags.vflag)==0) + while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSock.buf,daemon_local->receiverSock.bytesRcvd,daemon_local->flags.nflag,daemon_local->flags.vflag)==DLT_MESSAGE_ERROR_OK) { /* Check for control message */ if ( 0 < daemon_local->receiverSock.fd && DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg)) ) @@ -1297,7 +1297,7 @@ int dlt_daemon_process_client_messages_serial(DltDaemon *daemon, DltDaemonLocal } /* Process all received messages */ - while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSerial.buf,daemon_local->receiverSerial.bytesRcvd,daemon_local->flags.mflag,daemon_local->flags.vflag)==0) + while (dlt_message_read(&(daemon_local->msg),(uint8_t*)daemon_local->receiverSerial.buf,daemon_local->receiverSerial.bytesRcvd,daemon_local->flags.mflag,daemon_local->flags.vflag)==DLT_MESSAGE_ERROR_OK) { /* Check for control message */ if (DLT_MSG_IS_CONTROL_REQUEST(&(daemon_local->msg))) @@ -1910,112 +1910,114 @@ int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemo return DLT_DAEMON_ERROR_UNKNOWN; } - if (dlt_message_read(&(daemon_local->msg),(unsigned char*)daemon_local->receiver.buf+sizeof(DltUserHeader),daemon_local->receiver.bytesRcvd-sizeof(DltUserHeader),0,verbose)==0) + ret=dlt_message_read(&(daemon_local->msg),(unsigned char*)daemon_local->receiver.buf+sizeof(DltUserHeader),daemon_local->receiver.bytesRcvd-sizeof(DltUserHeader),0,verbose); + if(ret!=DLT_MESSAGE_ERROR_OK) { - /* set overwrite ecu id */ - if (daemon_local->flags.evalue!=0) - { - /* Set header extra parameters */ - dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid ); - //msg.headerextra.seid = 0; - if (dlt_message_set_extraparameters(&(daemon_local->msg),0)==-1) - { - dlt_log(LOG_ERR,"Can't set message extra parameters in process user message log\n"); - return DLT_DAEMON_ERROR_UNKNOWN; - } + if(ret!=DLT_MESSAGE_ERROR_SIZE) + { + dlt_log(LOG_ERR,"Can't read messages from receiver\n"); + } + return DLT_DAEMON_ERROR_UNKNOWN; + } - /* Correct value of timestamp, this was changed by dlt_message_set_extraparameters() */ - daemon_local->msg.headerextra.tmsp = DLT_BETOH_32(daemon_local->msg.headerextra.tmsp); - } + /* set overwrite ecu id */ + if (daemon_local->flags.evalue!=0) + { + /* Set header extra parameters */ + dlt_set_id(daemon_local->msg.headerextra.ecu, daemon->ecuid ); + //msg.headerextra.seid = 0; + if (dlt_message_set_extraparameters(&(daemon_local->msg),0)==-1) + { + dlt_log(LOG_ERR,"Can't set message extra parameters in process user message log\n"); + return DLT_DAEMON_ERROR_UNKNOWN; + } - /* prepare storage header */ - if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp)) - { - if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon_local->msg.headerextra.ecu)==-1) - { - dlt_log(LOG_ERR,"Can't set storage header in process user message log\n"); - return DLT_DAEMON_ERROR_UNKNOWN; - } - } - else - { - if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon->ecuid)==-1) - { - dlt_log(LOG_ERR,"Can't set storage header in process user message log\n"); - return DLT_DAEMON_ERROR_UNKNOWN; - } - } + /* Correct value of timestamp, this was changed by dlt_message_set_extraparameters() */ + daemon_local->msg.headerextra.tmsp = DLT_BETOH_32(daemon_local->msg.headerextra.tmsp); + } - { - /* if no filter set or filter is matching display message */ - if (daemon_local->flags.xflag) - { - if (dlt_message_print_hex(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1) - { - dlt_log(LOG_ERR,"dlt_message_print_hex() failed!\n"); - } - } /* if */ - else if (daemon_local->flags.aflag) - { - if (dlt_message_print_ascii(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1) - { - dlt_log(LOG_ERR,"dlt_message_print_ascii() failed!\n"); - } - } /* if */ - else if (daemon_local->flags.sflag) - { - if (dlt_message_print_header(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1) - { - dlt_log(LOG_ERR,"dlt_message_print_header() failed!\n"); - } - /* print message header only */ - } /* if */ + /* prepare storage header */ + if (DLT_IS_HTYP_WEID(daemon_local->msg.standardheader->htyp)) + { + if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon_local->msg.headerextra.ecu)==-1) + { + dlt_log(LOG_ERR,"Can't set storage header in process user message log\n"); + return DLT_DAEMON_ERROR_UNKNOWN; + } + } + else + { + if (dlt_set_storageheader(daemon_local->msg.storageheader,daemon->ecuid)==-1) + { + dlt_log(LOG_ERR,"Can't set storage header in process user message log\n"); + return DLT_DAEMON_ERROR_UNKNOWN; + } + } + + { + /* if no filter set or filter is matching display message */ + if (daemon_local->flags.xflag) + { + if (dlt_message_print_hex(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1) + { + dlt_log(LOG_ERR,"dlt_message_print_hex() failed!\n"); + } + } /* if */ + else if (daemon_local->flags.aflag) + { + if (dlt_message_print_ascii(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1) + { + dlt_log(LOG_ERR,"dlt_message_print_ascii() failed!\n"); + } + } /* if */ + else if (daemon_local->flags.sflag) + { + if (dlt_message_print_header(&(daemon_local->msg),text,DLT_DAEMON_TEXTSIZE,verbose)==-1) + { + dlt_log(LOG_ERR,"dlt_message_print_header() failed!\n"); + } + /* print message header only */ + } /* if */ - /* check if overflow occurred */ - if(daemon->overflow_counter) + /* check if overflow occurred */ + if(daemon->overflow_counter) + { + if(dlt_daemon_send_message_overflow(daemon,daemon_local,verbose)==0) { - if(dlt_daemon_send_message_overflow(daemon,daemon_local,verbose)==0) - { - sprintf(str,"%u messages discarded!\n",daemon->overflow_counter); - dlt_log(LOG_ERR, str); - daemon->overflow_counter=0; - } + sprintf(str,"%u messages discarded!\n",daemon->overflow_counter); + dlt_log(LOG_ERR, str); + daemon->overflow_counter=0; } + } - /* look if TCP connection to client is available */ - if((daemon->mode == DLT_USER_MODE_EXTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH)) - { + /* look if TCP connection to client is available */ + if((daemon->mode == DLT_USER_MODE_EXTERNAL) || (daemon->mode == DLT_USER_MODE_BOTH)) + { - if((ret = dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,daemon_local->msg.headerbuffer+sizeof(DltStorageHeader),daemon_local->msg.headersize-sizeof(DltStorageHeader), - daemon_local->msg.databuffer,daemon_local->msg.datasize,verbose))) - { - if(ret == DLT_DAEMON_ERROR_BUFFER_FULL) - { - daemon->overflow_counter++; - } - } - } + if((ret = dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL,daemon,daemon_local,daemon_local->msg.headerbuffer+sizeof(DltStorageHeader),daemon_local->msg.headersize-sizeof(DltStorageHeader), + daemon_local->msg.databuffer,daemon_local->msg.datasize,verbose))) + { + if(ret == DLT_DAEMON_ERROR_BUFFER_FULL) + { + daemon->overflow_counter++; + } + } + } - } - /* keep not read data in buffer */ - bytes_to_be_removed = daemon_local->msg.headersize+daemon_local->msg.datasize-sizeof(DltStorageHeader)+sizeof(DltUserHeader); - if (daemon_local->msg.found_serialheader) - { - bytes_to_be_removed += sizeof(dltSerialHeader); - } + } + /* keep not read data in buffer */ + bytes_to_be_removed = daemon_local->msg.headersize+daemon_local->msg.datasize-sizeof(DltStorageHeader)+sizeof(DltUserHeader); + if (daemon_local->msg.found_serialheader) + { + bytes_to_be_removed += sizeof(dltSerialHeader); + } - if (dlt_receiver_remove(&(daemon_local->receiver),bytes_to_be_removed)==-1) - { - dlt_log(LOG_ERR,"Can't remove bytes from receiver\n"); - return DLT_DAEMON_ERROR_UNKNOWN; - } - } - else - { - dlt_log(LOG_ERR,"Can't read messages from receiver\n"); - return DLT_DAEMON_ERROR_UNKNOWN; - } + if (dlt_receiver_remove(&(daemon_local->receiver),bytes_to_be_removed)==-1) + { + dlt_log(LOG_ERR,"Can't remove bytes from receiver\n"); + return DLT_DAEMON_ERROR_UNKNOWN; + } return DLT_DAEMON_ERROR_OK; } diff --git a/src/lib/dlt_client.c b/src/lib/dlt_client.c index 8c1e9ca..b8872ad 100755 --- a/src/lib/dlt_client.c +++ b/src/lib/dlt_client.c @@ -271,7 +271,7 @@ int dlt_client_main_loop(DltClient *client, void *data, int verbose) return 1; } - while (dlt_message_read(&msg,(unsigned char*)(client->receiver.buf),client->receiver.bytesRcvd,0,verbose)==0) + while (dlt_message_read(&msg,(unsigned char*)(client->receiver.buf),client->receiver.bytesRcvd,0,verbose)==DLT_MESSAGE_ERROR_OK) { /* Call callback function */ if (message_callback_function) diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c index 2544446..a12d137 100755 --- a/src/shared/dlt_common.c +++ b/src/shared/dlt_common.c @@ -1118,7 +1118,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res if ((msg==0) || (buffer==0) || (length<=0)) { - return -1; + return DLT_MESSAGE_ERROR_UNKNOWN; } /* initialize resync_offset */ @@ -1128,7 +1128,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res if (lengthheaderbuffer+sizeof(DltStorageHeader),buffer,sizeof(DltStandardHeader)); @@ -1210,7 +1210,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res { sprintf(str,"Plausibility check failed. Complete message size too short (%d)!\n",msg->datasize); dlt_log(LOG_ERR, str); - return -1; + return DLT_MESSAGE_ERROR_CONTENT; } /* load standard header extra parameters and Extended header if used */ @@ -1218,7 +1218,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res { if (length < (msg->headersize - sizeof(DltStorageHeader))) { - return -1; + return DLT_MESSAGE_ERROR_SIZE; } memcpy(msg->headerbuffer+sizeof(DltStorageHeader)+sizeof(DltStandardHeader),buffer+sizeof(DltStandardHeader),extra_size); @@ -1241,7 +1241,7 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res if (length < (msg->headersize - sizeof(DltStorageHeader) + msg->datasize)) { /* dlt_log(LOG_ERR,"length does not fit!\n"); */ - return -1; + return DLT_MESSAGE_ERROR_SIZE; } /* free last used memory for buffer */ @@ -1261,13 +1261,13 @@ int dlt_message_read(DltMessage *msg,uint8_t *buffer,unsigned int length,int res { sprintf(str,"Cannot allocate memory for payload buffer of size %d!\n",msg->datasize); dlt_log(LOG_ERR, str); - return -1; + return DLT_MESSAGE_ERROR_UNKNOWN; } /* load payload data from buffer */ memcpy(msg->databuffer,buffer+(msg->headersize-sizeof(DltStorageHeader)),msg->datasize); - return 0; + return DLT_MESSAGE_ERROR_OK; } int dlt_message_get_extraparameters(DltMessage *msg,int verbose) -- cgit v1.2.1