diff --git a/CHANGES b/CHANGES index 7e94a00..25a50ed 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,14 @@ +Version 1.4.1 + + . klogd will set the console log level only if `-c' is given on the + commandline, not overwriting local settings in `/etc/sysctl.conf'. + . Bugfix: klogd will use SOCK_DGRM as well, re-enables kernel logging + . Bugfix: Don't make syslogd fail with broken `-a' + . Bugfix: klogd will skip zero bytes and not enter a busy loop anymore + . Thomas Roessler + - Patch to prevent LogLine() from being invoked with a negative + counter as an argument. + Version 1.4 . Skip newline when reading in klog messages diff --git a/kernel.patch b/kernel.patch deleted file mode 100644 index 18b10d1..0000000 --- a/kernel.patch +++ /dev/null @@ -1,70 +0,0 @@ -diff -u --recursive --new-file v1.3.42/linux/arch/alpha/kernel/process.c linux/arch/alpha/kernel/process.c ---- v1.3.42/linux/arch/alpha/kernel/process.c Tue Oct 10 18:46:30 1995 -+++ linux/arch/alpha/kernel/process.c Sat Nov 18 12:23:19 1995 -@@ -57,8 +57,8 @@ - - void show_regs(struct pt_regs * regs) - { -- printk("\nps: %04lx pc: %016lx\n", regs->ps, regs->pc); -- printk("rp: %016lx sp: %p\n", regs->r26, regs+1); -+ printk("\nps: %04lx pc: [<%016lx>]\n", regs->ps, regs->pc); -+ printk("rp: [<%016lx>] sp: %p\n", regs->r26, regs+1); - printk(" r0: %016lx r1: %016lx r2: %016lx r3: %016lx\n", - regs->r0, regs->r1, regs->r2, regs->r3); - printk(" r4: %016lx r5: %016lx r6: %016lx r7: %016lx\n", -diff -u --recursive --new-file v1.3.42/linux/arch/alpha/kernel/traps.c linux/arch/alpha/kernel/traps.c ---- v1.3.42/linux/arch/alpha/kernel/traps.c Wed Sep 27 15:59:56 1995 -+++ linux/arch/alpha/kernel/traps.c Sat Nov 18 12:22:52 1995 -@@ -25,8 +25,8 @@ - return; - printk("%s(%d): %s %ld\n", current->comm, current->pid, str, err); - sp = (unsigned long) (regs+1); -- printk("pc = %lx ps = %04lx\n", regs->pc, regs->ps); -- printk("rp = %lx sp = %lx\n", regs->r26, sp); -+ printk("pc = [<%lx>] ps = %04lx\n", regs->pc, regs->ps); -+ printk("rp = [<%lx>] sp = %lx\n", regs->r26, sp); - printk("r0=%lx r1=%lx r2=%lx r3=%lx\n", - regs->r0, regs->r1, regs->r2, regs->r3); - printk("r8=%lx\n", regs->r8); -diff -u --recursive --new-file v1.3.42/linux/arch/i386/kernel/process.c linux/arch/i386/kernel/process.c ---- v1.3.42/linux/arch/i386/kernel/process.c Wed Nov 8 07:11:29 1995 -+++ linux/arch/i386/kernel/process.c Sat Nov 18 12:08:28 1995 -@@ -124,7 +124,7 @@ - void show_regs(struct pt_regs * regs) - { - printk("\n"); -- printk("EIP: %04x:%08lx",0xffff & regs->cs,regs->eip); -+ printk("EIP: %04x:[<%08lx>]",0xffff & regs->cs,regs->eip); - if (regs->cs & 3) - printk(" ESP: %04x:%08lx",0xffff & regs->ss,regs->esp); - printk(" EFLAGS: %08lx\n",regs->eflags); -diff -u --recursive --new-file v1.3.42/linux/arch/i386/kernel/traps.c linux/arch/i386/kernel/traps.c ---- v1.3.42/linux/arch/i386/kernel/traps.c Wed Nov 8 07:11:30 1995 -+++ linux/arch/i386/kernel/traps.c Tue Nov 21 08:34:54 1995 -@@ -27,7 +27,7 @@ - - asmlinkage int system_call(void); - asmlinkage void lcall7(void); --struct desc_struct default_ldt; -+struct desc_struct default_ldt; - - static inline void console_verbose(void) - { -@@ -113,7 +113,7 @@ - console_verbose(); - printk("%s: %04lx\n", str, err & 0xffff); - printk("CPU: %d\n", smp_processor_id()); -- printk("EIP: %04x:%08lx\nEFLAGS: %08lx\n", 0xffff & regs->cs,regs->eip,regs->eflags); -+ printk("EIP: %04x:[<%08lx>]\nEFLAGS: %08lx\n", 0xffff & regs->cs,regs->eip,regs->eflags); - printk("eax: %08lx ebx: %08lx ecx: %08lx edx: %08lx\n", - regs->eax, regs->ebx, regs->ecx, regs->edx); - printk("esi: %08lx edi: %08lx ebp: %08lx esp: %08lx\n", -@@ -153,7 +153,7 @@ - ((addr >= module_start) && (addr <= module_end))) { - if (i && ((i % 8) == 0)) - printk("\n "); -- printk("%08lx ", addr); -+ printk("[<%08lx>] ", addr); - i++; - } - } diff --git a/klogd.8 b/klogd.8 index 0f585a6..02949da 100644 --- a/klogd.8 +++ b/klogd.8 @@ -148,11 +148,16 @@ the syslogd daemon. This prevents 'nuisance' messages such as line printer out of paper or disk change detected from cluttering the console. -By default the +When +.B \-c +is given on the commandline the .B klogd -daemon executes a system call to inhibit all -kernel messages (except for panics) from being displayed on the -console. The \fB\-c\fR switch can be used to alter this behavior. The +daemon will execute a system call to inhibit all kernel messages from +being displayed on the console. Former versions always issued this +system call and defaulted to all kernel messages except for panics. +This is handled differently nowardays so +.B klogd +doesn't need to set this value anymore. The argument given to the \fB\-c\fR switch specifies the priority level of messages which will be directed to the console. Note that messages of a priority value LOWER than the indicated number will be directed to diff --git a/sysklogd.8 b/sysklogd.8 index ce2cf4e..ccf1e65 100644 --- a/sysklogd.8 +++ b/sysklogd.8 @@ -142,7 +142,13 @@ how older versions behave, so you might have to turn this on. .BI "\-s " "domainlist" Specify a domainname that should be stripped off before logging. Multiple domains may be specified using the colon (``:'') -separator. Remember that the first match is used, not the best. +separator. +Please be advised that no sub-domains may be specified but only entire +domains. For example if +.B "\-s north.de" +is specified and the host logging resolves to satu.infodrom.north.de +no domain would be cut, you will have to specify two domains like: +.BR "\-s north.de:infodrom.north.de" . .TP .B "\-v" Print version and exit. diff --git a/syslog.c b/syslog.c index 03eb4c7..0d63c81 100644 --- a/syslog.c +++ b/syslog.c @@ -44,6 +44,9 @@ static char sccsid[] = "@(#)syslog.c 5.28 (Berkeley) 6/27/90"; * patch which was announced in the linux-security mailing lists * and incorporated into the libc version of syslog.c. * + * Sun Mar 11 20:23:44 CET 2001: Martin Schulze + * Use SOCK_DGRAM for loggin, renables it to work. + * */ #include @@ -208,7 +211,7 @@ openlog(ident, logstat, logfac) strncpy(SyslogAddr.sa_data, _PATH_LOGNAME, sizeof(SyslogAddr.sa_data)); if (LogStat & LOG_NDELAY) { - LogFile = socket(AF_UNIX, SOCK_STREAM, 0); + LogFile = socket(AF_UNIX, SOCK_DGRAM, 0); /* fcntl(LogFile, F_SETFD, 1); */ } } diff --git a/syslogd.c b/syslogd.c index 4579843..2286709 100644 --- a/syslogd.c +++ b/syslogd.c @@ -436,6 +436,11 @@ static char sccsid[] = "@(#)syslogd.c 5.27 (Berkeley) 10/10/88"; * Removed unixm/unix domain sockets and switch to Datagram Unix * Sockets. This should remove one possibility to play DoS with * syslogd. Thanks to Olaf Kirch for the patch. + * + * Sun Mar 11 20:23:44 CET 2001: Martin Schulze + * Don't return a closed fd if `-a' is called with a wrong path. + * Thanks to Bill Nottingham for providing + * a patch. */ @@ -1200,6 +1205,7 @@ static int create_unix_socket(const char *path) #ifndef SYSV die(0); #endif + return -1; } return fd; }