X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=blobdiff_plain;f=src%2Fmisc-progs%2Fsyslogdctrl.c;h=993cc938d98357b7a6e3fc72e9db9fec974b9c63;hp=9880ee2ee60d7af4ab0168843d6a87abd944b53a;hb=3834d135ecb9383995f305cfe4fa18e9c7511495;hpb=4c7fa778d4029d359f4401d271d152c65f599a03 diff --git a/src/misc-progs/syslogdctrl.c b/src/misc-progs/syslogdctrl.c index 9880ee2ee6..993cc938d9 100644 --- a/src/misc-progs/syslogdctrl.c +++ b/src/misc-progs/syslogdctrl.c @@ -30,13 +30,15 @@ int main(void) { - char buffer[STRING_SIZE], command[STRING_SIZE], hostname[STRING_SIZE], varmessages[STRING_SIZE]; + char buffer[STRING_SIZE], command[STRING_SIZE], hostname[STRING_SIZE]; + char varmessages[STRING_SIZE], asynclog[STRING_SIZE]; int config_fd,rc,fd,pid; struct stat st; struct keyvalue *kv = NULL; memset(buffer, 0, STRING_SIZE); memset(hostname, 0, STRING_SIZE); memset(varmessages, 0, STRING_SIZE); + memset(asynclog, 0, STRING_SIZE); if (!(initsetuid())) exit(1); @@ -62,6 +64,13 @@ int main(void) fprintf(stderr, "Cannot read REMOTELOG_ADDR\n"); exit(ERR_SETTINGS); } + + if (!findkey(kv, "ENABLE_ASYNCLOG", asynclog)) + { + fprintf(stderr, "Cannot read ENABLE_ASYNCLOG\n"); + exit(ERR_SETTINGS); + } + if (!findkey(kv, "VARMESSAGES", varmessages)) { @@ -123,9 +132,13 @@ int main(void) close(config_fd); /* Replace the logging option*/ - safe_system("grep -v '/var/log/messages' < /etc/syslog.conf.new > /etc/syslog.conf.tmp && mv /etc/syslog.conf.tmp /etc/syslog.conf.new"); - snprintf(command, STRING_SIZE-1, "printf '%s /var/log/messages' >> /etc/syslog.conf.new", varmessages ); + + if (!strcmp(asynclog,"on")) + snprintf(command, STRING_SIZE - 1, "printf '%s -/var/log/messages' >> /etc/syslog.conf.new", varmessages ); + else + snprintf(command, STRING_SIZE - 1, "printf '%s /var/log/messages' >> /etc/syslog.conf.new", varmessages ); + safe_system(command); if (rename("/etc/syslog.conf.new", "/etc/syslog.conf") == -1)