version 1.33, 2013/04/19 14:35:40 |
version 1.34, 2013/11/26 19:25:39 |
|
|
iflag = 1; |
iflag = 1; |
break; |
break; |
case 'r': |
case 'r': |
if (isdigit(*optarg)) { |
if (isdigit((unsigned char)*optarg)) { |
interval = atol(optarg) * SECSPERDAY; |
interval = atol(optarg) * SECSPERDAY; |
if (interval < 0) |
if (interval < 0) |
usage(); |
usage(); |
|
|
cont = 0; |
cont = 0; |
if (strncasecmp(buf, "Auto-Submitted:", 15)) |
if (strncasecmp(buf, "Auto-Submitted:", 15)) |
break; |
break; |
for (p = buf + 15; isspace(*p); ++p) |
for (p = buf + 15; isspace((unsigned char)*p); ++p) |
; |
; |
/* |
/* |
* RFC 3834 section 2: |
* RFC 3834 section 2: |
|
|
*/ |
*/ |
if ((p[0] == 'n' || p[0] == 'N') && |
if ((p[0] == 'n' || p[0] == 'N') && |
(p[1] == 'o' || p[1] == 'O')) { |
(p[1] == 'o' || p[1] == 'O')) { |
for (p += 2; isspace(*p); ++p) |
for (p += 2; isspace((unsigned char)*p); ++p) |
; |
; |
if (*p == '\0') |
if (*p == '\0') |
break; /* Auto-Submitted: no */ |
break; /* Auto-Submitted: no */ |
|
|
sizeof("Return-Path:")-1) || |
sizeof("Return-Path:")-1) || |
(buf[12] != ' ' && buf[12] != '\t')) |
(buf[12] != ' ' && buf[12] != '\t')) |
break; |
break; |
for (p = buf + 12; isspace(*p); ++p) |
for (p = buf + 12; isspace((unsigned char)*p); ++p) |
; |
; |
if (strlcpy(from, p, sizeof(from)) >= sizeof(from)) { |
if (strlcpy(from, p, sizeof(from)) >= sizeof(from)) { |
syslog(LOG_NOTICE, |
syslog(LOG_NOTICE, |
|
|
cont = 0; |
cont = 0; |
if (strncasecmp(buf, "Precedence:", 11)) |
if (strncasecmp(buf, "Precedence:", 11)) |
break; |
break; |
for (p = buf + 11; isspace(*p); ++p) |
for (p = buf + 11; isspace((unsigned char)*p); ++p) |
; |
; |
if (!strncasecmp(p, "junk", 4) || |
if (!strncasecmp(p, "junk", 4) || |
!strncasecmp(p, "bulk", 4) || |
!strncasecmp(p, "bulk", 4) || |
|
|
sizeof("Subject:")-1) || |
sizeof("Subject:")-1) || |
(buf[8] != ' ' && buf[8] != '\t')) |
(buf[8] != ' ' && buf[8] != '\t')) |
break; |
break; |
for (p = buf + 8; isspace(*p); ++p) |
for (p = buf + 8; isspace((unsigned char)*p); ++p) |
; |
; |
if (strlcpy(subj, p, sizeof(subj)) >= sizeof(subj)) { |
if (strlcpy(subj, p, sizeof(subj)) >= sizeof(subj)) { |
syslog(LOG_NOTICE, |
syslog(LOG_NOTICE, |
|
|
cont = 1; |
cont = 1; |
goto findme; |
goto findme; |
default: |
default: |
if (!isspace(*buf) || !cont || tome) { |
if (!isspace((unsigned char)*buf) || !cont || tome) { |
cont = 0; |
cont = 0; |
break; |
break; |
} |
} |