Merge "afm-user-daemon: Remove it by default"
[src/app-framework-main.git] / src / verbose.c
index a91aeb1..d725881 100644 (file)
@@ -1,5 +1,5 @@
 /*
- Copyright (C) 2016 "IoT.bzh"
+ Copyright (C) 2016-2019 "IoT.bzh"
 
  author: José Bollo <jose.bollo@iot.bzh>
 
@@ -43,14 +43,18 @@ void vverbose(int level, const char *file, int line, const char *fmt, va_list ar
 
 void verbose_set_name(const char *name, int authority)
 {
+       closelog();
        openlog(name, LOG_PERROR, authority ? LOG_AUTH : LOG_USER);
 }
 
 #else
 
+#include <stdlib.h>
+#include <string.h>
 #include <unistd.h>
+#include <errno.h>
 
-static const char *appname;
+static char *appname;
 
 static int appauthority;
 
@@ -67,7 +71,9 @@ static const char *prefixes[] = {
 
 void vverbose(int level, const char *file, int line, const char *fmt, va_list args)
 {
+       int saverr = errno;
        int tty = isatty(fileno(stderr));
+       errno = saverr;
 
        fprintf(stderr, "%s: ", prefixes[LEVEL(level)] + (tty ? 4 : 0));
        vfprintf(stderr, fmt, args);
@@ -79,7 +85,8 @@ void vverbose(int level, const char *file, int line, const char *fmt, va_list ar
 
 void verbose_set_name(const char *name, int authority)
 {
-       appname = name;
+       free(appname);
+       appname = name ? strdup(name) : NULL;
        appauthority = authority;
 }