summaryrefslogtreecommitdiff
path: root/src/console/dlt-control.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/console/dlt-control.c')
-rw-r--r--src/console/dlt-control.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/src/console/dlt-control.c b/src/console/dlt-control.c
index b4808eb..8a66d0a 100644
--- a/src/console/dlt-control.c
+++ b/src/console/dlt-control.c
@@ -63,6 +63,7 @@
#include "dlt_client.h"
#include "dlt_user.h"
+#include "dlt-control-common.h"
#define DLT_RECEIVE_TEXTBUFSIZE 10024 /* Size of buffer for text output */
@@ -460,7 +461,8 @@ int main(int argc, char* argv[])
else if (dltdata.yflag == DLT_CLIENT_MODE_UNIX)
{
g_dltclient.mode = DLT_CLIENT_MODE_UNIX;
- g_dltclient.socketPath = dlt_parse_config_param("ControlSocketPath");
+ g_dltclient.socketPath = NULL;
+ dlt_parse_config_param("ControlSocketPath", &g_dltclient.socketPath);
}
else
{
@@ -514,9 +516,17 @@ int main(int argc, char* argv[])
}
else
{
- dltdata.evalue = dlt_parse_config_param("ECUId");
- dlt_set_id(dltdata.ecuid,dltdata.evalue);
- dlt_set_id(g_dltclient.ecuid,dltdata.evalue);
+ dltdata.evalue = NULL;
+ if (dlt_parse_config_param("ECUId", &dltdata.evalue) == 0)
+ {
+ dlt_set_id(dltdata.ecuid,dltdata.evalue);
+ dlt_set_id(g_dltclient.ecuid,dltdata.evalue);
+ free (dltdata.evalue);
+ }
+ else
+ {
+ fprintf(stderr, "ERROR: Failed to read ECUId from dlt.conf \n");
+ }
}
/* Connect to TCP socket or open serial device */
@@ -684,6 +694,9 @@ int main(int argc, char* argv[])
dlt_client_cleanup(&g_dltclient,dltdata.vflag);
}
+ if (g_dltclient.socketPath != NULL)
+ free(g_dltclient.socketPath);
+
dlt_file_free(&(dltdata.file),dltdata.vflag);
dlt_filter_free(&(dltdata.filter),dltdata.vflag);