DLT - Automotive Diagnostic Log and Trace\r
\r
-Version: 2.4.2\r
+Version: 2.4.3 BETA\r
\r
\r
Introduction\r
\r
Changes in this release\r
-----------------------\r
+2.4.3 BETA\r
+\r
+Improvements\r
+ * [GSW-138] API Extension to resend the log messages in the user buffer fixed\r
+ * [GSW-135] Fixed compile warnings \r
+\r
2.4.2\r
\r
Improvements\r
2.4.1 \r
\r
Improvements\r
- * Added internal logging facility to stdout, syslog or local file, configurable in configuration file.\r
+ * Added internal logging facility to stdout, syslog or local file, configurable in configuration file.\r
* Added deamonise and signal handlers to dlt-system.\r
* Added manual pages.\r
* Added new API dlt_check_library_version() function.\r
if(count != 0){
char tmp[256];
- sprintf(&tmp,"Lost log messages in user buffer when exiting: %i\n",count);
+ sprintf(tmp,"Lost log messages in user buffer when exiting: %i\n",count);
dlt_log(LOG_ERR, tmp);
}
DLT_SEM_LOCK();
if (dlt_buffer_push3(&(dlt_user.startup_buffer),
- &(userheader), sizeof(DltUserHeader),
+ (unsigned char *)&(userheader), sizeof(DltUserHeader),
msgdata, size, 0, 0)==-1)
{
dlt_log(LOG_ERR,"Storing message to history buffer failed! Message discarded.\n");
DLT_SEM_LOCK();
if (dlt_buffer_push3(&(dlt_user.startup_buffer),
- &(userheader), sizeof(DltUserHeader),
+ (unsigned char *)&(userheader), sizeof(DltUserHeader),
msg.headerbuffer+sizeof(DltStorageHeader), msg.headersize-sizeof(DltStorageHeader),
log->buffer, log->size)==-1)
{
DltBufferHead *head;
// Init parameters
- buf->shm = ptr;
+ buf->shm = (unsigned char *)ptr;
buf->min_size = size;
buf->max_size = size;
buf->step_size = 0;
head->read = 0;
head->write = 0;
head->count = 0;
- buf->mem = (char*)(buf->shm + sizeof(DltBufferHead));
+ buf->mem = (unsigned char *)(buf->shm + sizeof(DltBufferHead));
buf->size = buf->min_size - sizeof(DltBufferHead);
// clear memory
int dlt_buffer_init_static_client(DltBuffer *buf, const unsigned char *ptr, uint32_t size)
{
char str[256];
- DltBufferHead *head;
// Init parameters
- buf->shm = ptr;
+ buf->shm = (unsigned char *)ptr;
buf->min_size = size;
buf->max_size = size;
buf->step_size = 0;
// Init pointers
- buf->mem = (char*)(buf->shm + sizeof(DltBufferHead));
+ buf->mem = (unsigned char *)(buf->shm + sizeof(DltBufferHead));
buf->size = buf->min_size - sizeof(DltBufferHead);
snprintf(str,sizeof(str),"Buffer: Size %d\n",buf->size);
head->read = 0;
head->write = 0;
head->count = 0;
- buf->mem = (char*)(buf->shm + sizeof(DltBufferHead));
+ buf->mem = (unsigned char *)(buf->shm + sizeof(DltBufferHead));
buf->size = buf->min_size - sizeof(DltBufferHead);
// clear memory
int dlt_shm_init_server(DltShm *buf,int key,int size) {
struct shmid_ds shm_buf;
- char str[256];
unsigned char *ptr;
// Init parameters
}
// Now we attach the segment to our data space.
- if ((ptr = shmat(buf->shmid, NULL, 0)) == (char *) -1) {
+ if ((ptr = shmat(buf->shmid, NULL, 0)) == (unsigned char *) -1) {
dlt_log(LOG_ERR,"SHM: shmat");
return -1; /* ERROR */
}
}
// Now we attach the segment to our data space.
- if ((ptr = shmat(buf->shmid, NULL, 0)) == (char *) -1) {
+ if ((ptr = shmat(buf->shmid, NULL, 0)) == (unsigned char *) -1) {
dlt_log(LOG_ERR,"shmat");
return -1; /* ERROR */
}
void dlt_system_daemonize()
{
- int i,lfp,bytes_written,ret;
+ int i,ret;
+ //int lfp,bytes_written;
/* Daemonize */
i=fork();
int dlt_user_injection_callback(uint32_t service_id, void *data, uint32_t length)
{
char text[1024];
+ int syserr = 0;
strncpy(text,data,length);
/* Execute shell command */
//DLT_LOG(shellContext, DLT_LOG_INFO, DLT_STRING("Execute command:"), DLT_STRING(text));
printf("Execute command: %s\n",text);
- system(text);
+ if((syserr = system(text)) != 0)
+ {
+ printf("Abnormal exit status from %s: %d\n",text,syserr);
+ }
break;
default:
//DLT_LOG(shellContext, DLT_LOG_WARN, DLT_STRING("Unknown command received! Service ID:"), DLT_UINT32(service_id),DLT_STRING("Command:"),DLT_STRING(text));
int main(int argc, char* argv[])
{
- int sock;
+ int sock = -1;
int bytes_read;
socklen_t addr_len;
char recv_data[MAXSTRLEN];
perror("Socket");
exit(1);
}
- server_addr.sin_family = AF_INET;
+ server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(options.SyslogPort);
server_addr.sin_addr.s_addr = INADDR_ANY;
bzero(&(server_addr.sin_zero), 8);