[ACLC_ADD_HEADER] = { US"add_header", ACD_EXP | ACD_MOD,
PERMITTED(ACL_BIT_MAIL | ACL_BIT_RCPT |
ACL_BIT_PREDATA | ACL_BIT_DATA |
-#ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-#endif
ACL_BIT_MIME | ACL_BIT_NOTSMTP |
ACL_BIT_DKIM |
ACL_BIT_NOTSMTP_START),
FORBIDDEN(ACL_BIT_AUTH |
ACL_BIT_CONNECT | ACL_BIT_HELO |
ACL_BIT_DATA | ACL_BIT_MIME |
-# ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-# endif
ACL_BIT_ETRN | ACL_BIT_EXPN |
ACL_BIT_MAILAUTH |
ACL_BIT_MAIL | ACL_BIT_STARTTLS |
#ifdef EXPERIMENTAL_DCC
[ACLC_DCC] = { US"dcc", ACD_EXP,
PERMITTED(ACL_BIT_DATA |
-# ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-# endif
ACL_BIT_NOTSMTP),
},
#endif
# endif
ACD_EXP,
PERMITTED(ACL_BIT_DKIM | ACL_BIT_DATA | ACL_BIT_MIME
-# ifndef DISABLE_PRDR
| ACL_BIT_PRDR
-# endif
),
},
#endif
[ACLC_DOMAINS] = { US"domains", 0,
PERMITTED(ACL_BIT_RCPT | ACL_BIT_VRFY
-#ifndef DISABLE_PRDR
| ACL_BIT_PRDR
-#endif
),
},
[ACLC_ENCRYPTED] = { US"encrypted", 0,
},
[ACLC_LOCAL_PARTS] = { US"local_parts", 0,
PERMITTED(ACL_BIT_RCPT | ACL_BIT_VRFY
-#ifndef DISABLE_PRDR
| ACL_BIT_PRDR
-#endif
),
},
#ifdef WITH_CONTENT_SCAN
[ACLC_MALWARE] = { US"malware", ACD_EXP,
PERMITTED(ACL_BIT_DATA |
-# ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-# endif
ACL_BIT_NOTSMTP),
},
#endif
[ACLC_QUEUE] = { US"queue", ACD_EXP | ACD_MOD,
FORBIDDEN(ACL_BIT_NOTSMTP |
-#ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-#endif
ACL_BIT_DATA),
},
#ifdef WITH_CONTENT_SCAN
[ACLC_REGEX] = { US"regex", ACD_EXP,
PERMITTED(ACL_BIT_DATA |
-# ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-# endif
ACL_BIT_NOTSMTP |
ACL_BIT_MIME),
},
[ACLC_REMOVE_HEADER] = { US"remove_header", ACD_EXP | ACD_MOD,
PERMITTED(ACL_BIT_MAIL|ACL_BIT_RCPT |
ACL_BIT_PREDATA | ACL_BIT_DATA |
-#ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-#endif
ACL_BIT_MIME | ACL_BIT_NOTSMTP |
ACL_BIT_NOTSMTP_START),
},
#ifdef WITH_CONTENT_SCAN
[ACLC_SPAM] = { US"spam", ACD_EXP,
PERMITTED(ACL_BIT_DATA |
-# ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-# endif
ACL_BIT_NOTSMTP),
},
#endif
[CONTROL_DKIM_VERIFY] =
{ US"dkim_disable_verify", FALSE,
ACL_BIT_DATA | ACL_BIT_NOTSMTP |
-# ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-# endif
ACL_BIT_NOTSMTP_START
},
#endif
(unsigned)
~(ACL_BIT_MAIL | ACL_BIT_RCPT |
ACL_BIT_PREDATA | ACL_BIT_DATA |
-#ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-#endif
ACL_BIT_MIME)
},
[CONTROL_FAKEREJECT] =
(unsigned)
~(ACL_BIT_MAIL | ACL_BIT_RCPT |
ACL_BIT_PREDATA | ACL_BIT_DATA |
-#ifndef DISABLE_PRDR
ACL_BIT_PRDR |
-#endif
ACL_BIT_MIME)
},
[CONTROL_FREEZE] =
BOOL noupdate = FALSE, badacl = FALSE;
int mode = RATE_PER_WHAT;
int old_pool, rc;
-tree_node **anchor, *t;
+tree_node ** anchor = NULL, * t;
open_db dbblock, *dbm;
int dbdb_size;
dbdata_ratelimit *dbd;
anchor = &ratelimiters_cmd;
break;
default:
- anchor = NULL; /* silence an "unused" complaint */
log_write(0, LOG_MAIN|LOG_PANIC_DIE,
"internal ACL error: unknown ratelimit mode %d", mode);
/*NOTREACHED*/
{
acl_condition_block * cond = store_get(sizeof(acl_condition_block), GET_UNTAINTED);
uschar * errstr = NULL, * log_msg = NULL;
-BOOL endpass_seen;
+BOOL endpass_seen = FALSE;
int e;
cond->next = NULL;
/* Apply hitching post algorithm. */
if ((rc = link(hitchname, lockname)) != 0)
- rc2 = fstat(hd, &statbuf);
- (void)close(hd);
- unlink(hitchname);
-
- if (rc != 0 && (rc2 != 0 || statbuf.st_nlink != 2))
{
- printf("exim_lock: failed to link hitching post to lock file\n");
- hd = -1;
- goto RETRY;
+ rc2 = fstat(hd, &statbuf);
+ (void)close(hd);
+ unlink(hitchname);
+ if ((rc2 != 0 || statbuf.st_nlink != 2))
+ {
+ printf("exim_lock: failed to link hitching post to lock file\n");
+ hd = -1;
+ goto RETRY;
+ }
+ }
+ else
+ {
+ (void)close(hd);
+ unlink(hitchname);
}
if (!quiet) printf("exim_lock: lock file successfully created\n");