mirror of
https://github.com/sheumann/hush.git
synced 2024-08-20 19:29:02 +00:00
This patch from Vitezslav Batrla, is a cleaner fix for the
problem with syslogd logging the '<' char.
This commit is contained in:
parent
787ff55a69
commit
d4f90ed37e
@ -424,31 +424,21 @@ static int serveConnection(char *tmpbuf, int n_read)
|
||||
while (p < tmpbuf + n_read) {
|
||||
|
||||
int pri = (LOG_USER | LOG_NOTICE);
|
||||
int num_lt = 0;
|
||||
char line[MAXLINE + 1];
|
||||
unsigned char c;
|
||||
char *q = line;
|
||||
char *p1 = 0;
|
||||
int oldpri;
|
||||
|
||||
while ((c = *p) && q < &line[sizeof(line) - 1]) {
|
||||
if (c == '<' && p1 == 0) {
|
||||
if (c == '<' && num_lt == 0) {
|
||||
/* Parse the magic priority number. */
|
||||
p1 = p;
|
||||
oldpri = pri;
|
||||
num_lt++;
|
||||
pri = 0;
|
||||
while (isdigit(*(++p))) {
|
||||
pri = 10 * pri + (*p - '0');
|
||||
}
|
||||
if ( *p != '>') {
|
||||
*q++ = c;
|
||||
p=p1;
|
||||
p1=0;
|
||||
pri=oldpri;
|
||||
} else {
|
||||
if (pri & ~(LOG_FACMASK | LOG_PRIMASK)){
|
||||
pri = (LOG_USER | LOG_NOTICE);
|
||||
}
|
||||
}
|
||||
if (pri & ~(LOG_FACMASK | LOG_PRIMASK)){
|
||||
pri = (LOG_USER | LOG_NOTICE);
|
||||
} else if (c == '\n') {
|
||||
*q++ = ' ';
|
||||
} else if (iscntrl(c) && (c < 0177)) {
|
||||
|
Loading…
Reference in New Issue
Block a user