FILE *self;
static char line[64];
char *p = NULL;
+ char *sbuf;
if ((self = fopen("/proc/self/status", "r")) != NULL) {
while (fgets(line, sizeof(line), self)) {
if (!strncmp(line, "Name:", 5)) {
- strtok(line, "\t\n");
- p = strtok(NULL, "\t\n");
+ strtok_r(line, "\t\n", &sbuf);
+ p = strtok_r(NULL, "\t\n", &sbuf);
break;
}
}
{
FILE *kmsg;
- if ((kmsg = fopen("/dev/kmsg", "w")) != NULL) {
+ if ((kmsg = fopen("/dev/kmsg", "r+")) != NULL) {
fprintf(kmsg, "<%u>", priority);
if (_ulog_ident)
{
FILE *out = stderr;
- if (priority == LOG_INFO || priority == LOG_NOTICE)
- out = stdout;
-
if (_ulog_ident)
fprintf(out, "%s: ", _ulog_ident);
void ulog_open(int channels, int facility, const char *ident)
{
+ ulog_close();
+
_ulog_channels = channels;
_ulog_facility = facility;
_ulog_ident = ident;
}
+void ulog_close(void)
+{
+ if (!_ulog_initialized)
+ return;
+
+ if (_ulog_channels & ULOG_SYSLOG)
+ closelog();
+
+ _ulog_initialized = 0;
+}
+
void ulog_threshold(int threshold)
{
_ulog_threshold = threshold;