summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManikandan C <mchockalingam@de.adit-jv.com>2018-11-12 14:01:47 +0100
committerManikandan C <mchockalingam@de.adit-jv.com>2018-11-16 11:03:28 +0100
commit8112bb0c3a1b16a9f7e47e725d95f9fbab1bf4c2 (patch)
tree2967d4bf0cf3b95a542fc40e29cd7e67a341fc03
parent2c507329d9d161910c793c445ae8c388a608cf35 (diff)
downloadDLT-daemon-Gateway_updates.tar.gz
dlt-client: logging: Extended the receiver buffer sizeGateway_updates
- dlt-control couldn't receive all the GET_LOG_INFO response message when many applications and contexts are registered. Therefore the receiver buffer size was extended to 65K. Also the receive buffer size macros are reduced to one variable. - Code cleanup and improvements Signed-off-by: Saya Sugiura <ssugiura@jp.adit-jv.com>
-rw-r--r--include/dlt/dlt_client.h4
-rw-r--r--include/dlt/dlt_common.h13
-rw-r--r--src/console/dlt-control-common.c14
-rw-r--r--src/console/dlt-control.c6
-rw-r--r--src/console/dlt-receive.c12
-rw-r--r--src/daemon/dlt_daemon_offline_logstorage.c1
-rw-r--r--src/gateway/dlt_gateway.c23
-rw-r--r--src/lib/dlt_client.c6
-rw-r--r--src/lib/dlt_client_cfg.h3
-rw-r--r--src/shared/dlt_common.c4
-rw-r--r--tests/dlt_test_receiver.c14
11 files changed, 53 insertions, 47 deletions
diff --git a/include/dlt/dlt_client.h b/include/dlt/dlt_client.h
index e56c9ff..7ff55cf 100644
--- a/include/dlt/dlt_client.h
+++ b/include/dlt/dlt_client.h
@@ -296,9 +296,9 @@ int dlt_client_set_socket_path(DltClient *client, char *socket_path);
* Parse GET_LOG_INFO response text
* @param resp GET_LOG_INFO response
* @param resp_text response text represented by ASCII
- * @return 0 on success, -1 otherwise
+ * @return Value from DltReturnValue enum
*/
-int dlt_client_parse_get_log_info_resp_text(DltServiceGetLogInfoResponse *resp,
+DltReturnValue dlt_client_parse_get_log_info_resp_text(DltServiceGetLogInfoResponse *resp,
char *resp_text);
/**
diff --git a/include/dlt/dlt_common.h b/include/dlt/dlt_common.h
index d76d190..2824efd 100644
--- a/include/dlt/dlt_common.h
+++ b/include/dlt/dlt_common.h
@@ -210,7 +210,6 @@ enum {
/**
* Definitions for GET_LOG_INFO
*/
-#define DLT_RECEIVE_TEXTBUFSIZE 1024 /* Size of buffer for text output */
#define DLT_GET_LOG_INFO_HEADER 18 /*Get log info header size in response text */
#define GET_LOG_INFO_LENGTH 13
#define SERVICE_OPT_LENGTH 3
@@ -361,6 +360,16 @@ enum {
#define DLT_IPC_PATH_MAX 100
/**
+ * Maximal receiver buffer size for application messages
+ */
+#define DLT_RECEIVE_BUFSIZE 65535
+
+/**
+ * Maximal line length
+ */
+#define DLT_LINE_LEN 1024
+
+/**
* Provision to test static function
*/
#ifndef DLT_UNIT_TESTS
@@ -1488,6 +1497,8 @@ extern "C"
*
* @param rp char
* @param rp_count int
+ * @param wp char
+ * @param length int
*/
void dlt_getloginfo_conv_ascii_to_id(char *rp, int *rp_count, char *wp, int len);
diff --git a/src/console/dlt-control-common.c b/src/console/dlt-control-common.c
index 127eb4b..37c5a62 100644
--- a/src/console/dlt-control-common.c
+++ b/src/console/dlt-control-common.c
@@ -160,10 +160,10 @@ void set_timeout(long t)
int dlt_parse_config_param(char *config_id, char **config_data)
{
FILE * pFile = NULL;
- int value_length = DLT_RECEIVE_TEXTBUFSIZE;
- char line[DLT_RECEIVE_TEXTBUFSIZE-1] = {0};
- char token[DLT_RECEIVE_TEXTBUFSIZE] = {0};
- char value[DLT_RECEIVE_TEXTBUFSIZE] = {0};
+ int value_length = DLT_LINE_LEN;
+ char line[DLT_LINE_LEN-1] = {0};
+ char token[DLT_LINE_LEN] = {0};
+ char value[DLT_LINE_LEN] = {0};
char *pch = NULL;
const char *filename = NULL;
@@ -524,7 +524,7 @@ static void *dlt_control_listen_to_daemon(void *data)
*/
static int dlt_control_callback(DltMessage *message, void *data)
{
- char text[DLT_RECEIVE_TEXTBUFSIZE] = { 0 };
+ char text[DLT_RECEIVE_BUFSIZE] = { 0 };
(void) data;
if (message == NULL)
@@ -543,11 +543,11 @@ static int dlt_control_callback(DltMessage *message, void *data)
dlt_set_storageheader(message->storageheader, "LCTL");
}
- dlt_message_header(message, text, DLT_RECEIVE_TEXTBUFSIZE, get_verbosity());
+ dlt_message_header(message, text, DLT_RECEIVE_BUFSIZE, get_verbosity());
/* Extracting payload */
dlt_message_payload(message, text,
- DLT_RECEIVE_TEXTBUFSIZE,
+ DLT_RECEIVE_BUFSIZE,
DLT_OUTPUT_ASCII,
get_verbosity());
diff --git a/src/console/dlt-control.c b/src/console/dlt-control.c
index d5d08fb..f291afa 100644
--- a/src/console/dlt-control.c
+++ b/src/console/dlt-control.c
@@ -703,7 +703,7 @@ int main(int argc, char* argv[])
int dlt_receive_message_callback(DltMessage *message, void *data)
{
- static char resp_text[DLT_RECEIVE_TEXTBUFSIZE];
+ static char resp_text[DLT_RECEIVE_BUFSIZE];
int ret = DLT_RETURN_ERROR;
/* parameter check */
@@ -725,7 +725,7 @@ int dlt_receive_message_callback(DltMessage *message, void *data)
}
/* get response data */
- ret = dlt_message_header(message, resp_text, DLT_RECEIVE_TEXTBUFSIZE, 0);
+ ret = dlt_message_header(message, resp_text, DLT_RECEIVE_BUFSIZE, 0);
if (ret < 0)
{
fprintf(stderr, "GET_LOG_INFO message_header result failed..\n");
@@ -733,7 +733,7 @@ int dlt_receive_message_callback(DltMessage *message, void *data)
return -1;
}
- ret = dlt_message_payload(message, resp_text, DLT_RECEIVE_TEXTBUFSIZE, DLT_OUTPUT_ASCII, 0);
+ ret = dlt_message_payload(message, resp_text, DLT_RECEIVE_BUFSIZE, DLT_OUTPUT_ASCII, 0);
if (ret < 0)
{
fprintf(stderr, "GET_LOG_INFO message_payload result failed..\n");
diff --git a/src/console/dlt-receive.c b/src/console/dlt-receive.c
index fd19f83..200add1 100644
--- a/src/console/dlt-receive.c
+++ b/src/console/dlt-receive.c
@@ -556,7 +556,7 @@ int main(int argc, char* argv[])
int dlt_receive_message_callback(DltMessage *message, void *data)
{
DltReceiveData *dltdata;
- static char text[DLT_RECEIVE_TEXTBUFSIZE];
+ static char text[DLT_RECEIVE_BUFSIZE];
struct iovec iov[2];
int bytes_written;
@@ -584,27 +584,27 @@ int dlt_receive_message_callback(DltMessage *message, void *data)
/* if no filter set or filter is matching display message */
if (dltdata->xflag)
{
- dlt_message_print_hex(message,text,DLT_RECEIVE_TEXTBUFSIZE,dltdata->vflag);
+ dlt_message_print_hex(message,text,DLT_RECEIVE_BUFSIZE,dltdata->vflag);
}
else if (dltdata->aflag)
{
- dlt_message_header(message,text,DLT_RECEIVE_TEXTBUFSIZE,dltdata->vflag);
+ dlt_message_header(message,text,DLT_RECEIVE_BUFSIZE,dltdata->vflag);
printf("%s ",text);
- dlt_message_payload(message,text,DLT_RECEIVE_TEXTBUFSIZE,DLT_OUTPUT_ASCII,dltdata->vflag);
+ dlt_message_payload(message,text,DLT_RECEIVE_BUFSIZE,DLT_OUTPUT_ASCII,dltdata->vflag);
printf("[%s]\n",text);
}
else if (dltdata->mflag)
{
- dlt_message_print_mixed_plain(message,text,DLT_RECEIVE_TEXTBUFSIZE,dltdata->vflag);
+ dlt_message_print_mixed_plain(message,text,DLT_RECEIVE_BUFSIZE,dltdata->vflag);
}
else if (dltdata->sflag)
{
- dlt_message_header(message,text,DLT_RECEIVE_TEXTBUFSIZE,dltdata->vflag);
+ dlt_message_header(message,text,DLT_RECEIVE_BUFSIZE,dltdata->vflag);
printf("%s \n",text);
}
diff --git a/src/daemon/dlt_daemon_offline_logstorage.c b/src/daemon/dlt_daemon_offline_logstorage.c
index 109cc73..1c63164 100644
--- a/src/daemon/dlt_daemon_offline_logstorage.c
+++ b/src/daemon/dlt_daemon_offline_logstorage.c
@@ -388,7 +388,6 @@ STATIC DltReturnValue dlt_daemon_logstorage_update_passive_node_context(
}
return DLT_RETURN_OK;
- return DLT_RETURN_OK;
}
/**
diff --git a/src/gateway/dlt_gateway.c b/src/gateway/dlt_gateway.c
index 411630b..c5203db 100644
--- a/src/gateway/dlt_gateway.c
+++ b/src/gateway/dlt_gateway.c
@@ -22,7 +22,7 @@
* Christoph Lipka <clipka@jp.adit-jv.com>
* Saya Sugiura <ssugiura@jp.adit-jv.com>
*
- * \copyright Copyright © 2015-2017 Advanced Driver Information Technology. \n
+ * \copyright Copyright © 2015-2018 Advanced Driver Information Technology. \n
* License MPL-2.0: Mozilla Public License version 2.0 http://mozilla.org/MPL/2.0/.
*
* \file dlt_gateway.c
@@ -72,7 +72,7 @@ typedef enum {
* @param value string to be tested
* @return 0 on success, -1 otherwise
*/
-STATIC int dlt_gateway_check_ip(DltGatewayConnection *con, char *value)
+STATIC DltReturnValue dlt_gateway_check_ip(DltGatewayConnection *con, char *value)
{
struct sockaddr_in sa;
int ret = DLT_RETURN_ERROR;
@@ -316,7 +316,7 @@ STATIC int dlt_gateway_check_control_messages(DltGatewayConnection *con,
while (token != NULL)
{
- if (dlt_gateway_allocate_control_messages(con) == -1)
+ if (dlt_gateway_allocate_control_messages(con) != DLT_RETURN_OK)
{
dlt_log(LOG_ERR,
"Passive Control Message could not be allocated\n");
@@ -443,7 +443,7 @@ STATIC int dlt_gateway_check_periodic_control_messages(DltGatewayConnection *con
con->p_control_msgs = con->p_control_msgs->next;
}
- if (dlt_gateway_allocate_control_messages(con) == -1)
+ if (dlt_gateway_allocate_control_messages(con) != DLT_RETURN_OK)
{
dlt_log(LOG_ERR,
"Passive Control Message could not be allocated\n");
@@ -1056,7 +1056,7 @@ STATIC int dlt_gateway_parse_get_log_info(DltDaemon *daemon,
int req,
int verbose)
{
- char resp_text[DLT_RECEIVE_TEXTBUFSIZE] = {'\0'};
+ char resp_text[DLT_RECEIVE_BUFSIZE] = {'\0'};
DltServiceGetLogInfoResponse *resp = NULL;
AppIDsType app;
ContextIDsInfoType con;
@@ -1097,7 +1097,7 @@ STATIC int dlt_gateway_parse_get_log_info(DltDaemon *daemon,
/* check response */
if (dlt_message_payload(msg,
resp_text,
- DLT_RECEIVE_TEXTBUFSIZE,
+ DLT_RECEIVE_BUFSIZE,
DLT_OUTPUT_ASCII, 0) != DLT_RETURN_OK)
{
dlt_log(LOG_ERR, "GET_LOG_INFO payload failed\n");
@@ -1272,16 +1272,15 @@ STATIC int dlt_gateway_control_service_logstorage(DltDaemon *daemon,
return DLT_RETURN_OK;
}
-int dlt_gateway_process_passive_node_messages(DltDaemon *daemon,
- DltDaemonLocal *daemon_local,
- DltReceiver *receiver,
- int verbose)
+DltReturnValue dlt_gateway_process_passive_node_messages(DltDaemon *daemon,
+ DltDaemonLocal *daemon_local,
+ DltReceiver *receiver,
+ int verbose)
{
int i = 0;
DltGateway *gateway = NULL;
DltGatewayConnection *con = NULL;
DltMessage msg;
- char local_str[DLT_DAEMON_TEXTBUFSIZE];
if ((daemon == NULL) || (daemon_local == NULL) || (receiver == NULL))
{
@@ -1427,7 +1426,7 @@ int dlt_gateway_process_passive_node_messages(DltDaemon *daemon,
msg.headerextra.ecu) == DLT_RETURN_ERROR)
{
dlt_vlog(LOG_ERR, "%s: Can't set storage header\n", __func__);
- return DLT_DAEMON_ERROR_UNKNOWN;
+ return DLT_RETURN_ERROR;
}
if (dlt_daemon_client_send(DLT_DAEMON_SEND_TO_ALL,
diff --git a/src/lib/dlt_client.c b/src/lib/dlt_client.c
index 9c38827..cdfb002 100644
--- a/src/lib/dlt_client.c
+++ b/src/lib/dlt_client.c
@@ -289,7 +289,7 @@ DltReturnValue dlt_client_connect(DltClient *client, int verbose)
return DLT_RETURN_ERROR;
}
- if (dlt_receiver_init(&(client->receiver),client->sock,DLT_CLIENT_RCVBUFSIZE) != DLT_RETURN_OK)
+ if (dlt_receiver_init(&(client->receiver), client->sock, DLT_RECEIVE_BUFSIZE) != DLT_RETURN_OK)
{
fprintf(stderr, "ERROR initializing receiver\n");
return DLT_RETURN_ERROR;
@@ -1011,7 +1011,7 @@ STATIC void dlt_client_free_calloc_failed_get_log_info(DltServiceGetLogInfoRespo
return;
}
-int dlt_client_parse_get_log_info_resp_text(DltServiceGetLogInfoResponse *resp,
+DltReturnValue dlt_client_parse_get_log_info_resp_text(DltServiceGetLogInfoResponse *resp,
char *resp_text)
{
AppIDsType *app = NULL;
@@ -1023,7 +1023,7 @@ int dlt_client_parse_get_log_info_resp_text(DltServiceGetLogInfoResponse *resp,
if ((resp == NULL) || (resp_text == NULL))
{
- return DLT_RETURN_ERROR;
+ return DLT_RETURN_WRONG_PARAMETER;
}
/* ------------------------------------------------------
diff --git a/src/lib/dlt_client_cfg.h b/src/lib/dlt_client_cfg.h
index 45d1864..bfa4d96 100644
--- a/src/lib/dlt_client_cfg.h
+++ b/src/lib/dlt_client_cfg.h
@@ -82,9 +82,6 @@
/* Size of buffer */
#define DLT_CLIENT_TEXTBUFSIZE 512
-/* Size of receive buffer */
-#define DLT_CLIENT_RCVBUFSIZE 10024
-
/* Initial baudrate */
#if !defined (__WIN32__) && !defined(_MSC_VER)
#define DLT_CLIENT_INITIAL_BAUDRATE B115200
diff --git a/src/shared/dlt_common.c b/src/shared/dlt_common.c
index a77459d..9f8d60e 100644
--- a/src/shared/dlt_common.c
+++ b/src/shared/dlt_common.c
@@ -3948,7 +3948,7 @@ int16_t dlt_getloginfo_conv_ascii_to_uint16_t(char *rp, int *rp_count)
if ((rp == NULL) || (rp_count == NULL))
{
- return DLT_RETURN_ERROR;
+ return -1;
}
/* ------------------------------------------------------
from: [89 13 ] -> to: ['+0x'1389\0] -> to num
@@ -3970,7 +3970,7 @@ int16_t dlt_getloginfo_conv_ascii_to_int16_t(char *rp, int *rp_count)
if ((rp == NULL) || (rp_count == NULL))
{
- return DLT_RETURN_ERROR;
+ return -1;
}
/* ------------------------------------------------------
from: [89 ] -> to: ['0x'89\0] -> to num
diff --git a/tests/dlt_test_receiver.c b/tests/dlt_test_receiver.c
index 9b93728..86147ec 100644
--- a/tests/dlt_test_receiver.c
+++ b/tests/dlt_test_receiver.c
@@ -326,7 +326,7 @@ int main(int argc, char* argv[])
int dlt_receive_filetransfer_callback(DltMessage *message, void *data)
{
DltReceiveData *dltdata;
- static char text[DLT_RECEIVE_TEXTBUFSIZE];
+ static char text[DLT_RECEIVE_BUFSIZE];
char filename[255];
struct iovec iov[2];
int bytes_written;
@@ -340,7 +340,7 @@ int dlt_receive_filetransfer_callback(DltMessage *message, void *data)
if(dltdata->filetransfervalue)
{
- dlt_message_print_ascii(message, text, DLT_RECEIVE_TEXTBUFSIZE, dltdata->vflag);
+ dlt_message_print_ascii(message, text, DLT_RECEIVE_BUFSIZE, dltdata->vflag);
// 1st find starting point of tranfering data packages
if( strncmp(text, "FLST", 4) == 0)
@@ -373,11 +373,11 @@ int dlt_receive_filetransfer_callback(DltMessage *message, void *data)
{
// truncate beginning of data stream ( FLDA, File identifier and package number)
char *position = strchr(text, 32); // search for space
- strncpy(text, position+1, DLT_RECEIVE_TEXTBUFSIZE);
+ strncpy(text, position+1, DLT_RECEIVE_BUFSIZE);
position = strchr(text, 32);
- strncpy(text, position+1, DLT_RECEIVE_TEXTBUFSIZE);
+ strncpy(text, position+1, DLT_RECEIVE_BUFSIZE);
position = strchr(text, 32);
- strncpy(text, position+1, DLT_RECEIVE_TEXTBUFSIZE);
+ strncpy(text, position+1, DLT_RECEIVE_BUFSIZE);
// truncate ending of data stream ( FLDA )
int len = strlen(text);
@@ -398,7 +398,7 @@ int dlt_receive_filetransfer_callback(DltMessage *message, void *data)
if(dltdata->systemjournalvalue)
{
- dlt_message_print_ascii(message, text, DLT_RECEIVE_TEXTBUFSIZE, dltdata->vflag);
+ dlt_message_print_ascii(message, text, DLT_RECEIVE_BUFSIZE, dltdata->vflag);
// 1st find the relevant packages
char * tmp = message->extendedheader->ctid;
tmp[4] = '\0';
@@ -415,7 +415,7 @@ int dlt_receive_filetransfer_callback(DltMessage *message, void *data)
if(dltdata->systemloggervalue)
{
- dlt_message_print_ascii(message, text, DLT_RECEIVE_TEXTBUFSIZE, dltdata->vflag);
+ dlt_message_print_ascii(message, text, DLT_RECEIVE_BUFSIZE, dltdata->vflag);
// 1st find the relevant packages
char * tmp = message->extendedheader->ctid;
tmp[4] = '\0';