Santi. Files: deliver_pass.c, deliver_request.c,
qmgr_deliver.c, qmgr_message.c, pipe.c, smtpd.c.
-20041010
+20041009
Feature: per SMTP client message rate limit and recipient
rate limit, by Ragnar Lonn, GHN network technologies.
renamed to smtpd_client_event_limit_exceptions, because it
now also controls message and recipient rate limit control.
+20041013
+
+ Portability: AIX 5.1/GCC.
+
Open problems:
Low: should the Delivered-To: test in local(8) be configurable?
ANVIL(8) ANVIL(8)
<b>NAME</b>
- anvil - Postfix client count and request rate management
+ anvil - Postfix per-client count and rate control
<b>SYNOPSIS</b>
<b>anvil</b> [generic Postfix daemon options]
done
;;
AIX.*) case "`uname -v`" in
- 5) SYSTYPE=AIX4
+ 5) SYSTYPE=AIX5
case "$CC" in
cc|*/cc|xlc|*/xlc) CCARGS="$CCARGS -w -blibpath:/usr/lib:/lib:/usr/local/lib";;
esac
.SH NAME
anvil
\-
-Postfix client count and request rate management
+Postfix per-client count and rate control
.SH "SYNOPSIS"
.na
.nf
/* NAME
/* anvil 8
/* SUMMARY
-/* Postfix client count and request rate management
+/* Postfix per-client count and rate control
/* SYNOPSIS
/* \fBanvil\fR [generic Postfix daemon options]
/* DESCRIPTION
*/
if (len > sizeof(reply->buf)) {
msg_warn("reply length %d > buffer length %d for name=%s type=%s",
- len, sizeof(reply->buf), name, dns_strtype(type));
+ len, (int) sizeof(reply->buf), name, dns_strtype(type));
len = sizeof(reply->buf);
}
&msgs, &rcpts) != ANVIL_STAT_OK)
msg_warn("error!");
else
- vstream_printf("count=%d, rate=%d msgs=%d rcpt=%d\n",
+ vstream_printf("count=%d, rate=%d msgs=%d rcpts=%d\n",
count, rate, msgs, rcpts);
} else {
vstream_printf("bad command: \"%s\"\n", cmd);
* Patches change the patchlevel and the release date. Snapshots change the
* release date only.
*/
-#define MAIL_RELEASE_DATE "20041009"
+#define MAIL_RELEASE_DATE "20041013"
#define MAIL_VERSION_NUMBER "2.2"
#define VAR_MAIL_VERSION "mail_version"
* attributes.
*/
if (SMTPD_STAND_ALONE(state) == 0) {
- rec_fprintf(state->cleanup, REC_TYPE_TIME, "%ld", state->time);
+ rec_fprintf(state->cleanup, REC_TYPE_TIME, "%ld", (long) state->time);
if (*var_filter_xport)
rec_fprintf(state->cleanup, REC_TYPE_FILT, "%s", var_filter_xport);
}
*/
netstring_get(session->stream, buffer, var_line_limit);
if (msg_verbose)
- vstream_printf("<< %.*s\n", LEN(buffer), STR(buffer));
+ vstream_printf("<< %.*s\n", (int) LEN(buffer), STR(buffer));
if (STR(buffer)[0] != QMQP_STAT_OK)
msg_fatal("%s error: %.*s",
STR(buffer)[0] == QMQP_STAT_RETRY ? "recoverable" :
STR(buffer)[0] == QMQP_STAT_HARD ? "unrecoverable" :
- "unknown", LEN(buffer) - 1, STR(buffer) + 1);
+ "unknown", (int) LEN(buffer) - 1, STR(buffer) + 1);
/*
* Update the optional running counter.
if (prescan_context.max_sub > first_exp->re_nsub) {
msg_warn("regexp map %s, line %d: out of range replacement index \"%d\": "
"skipping this rule", mapname, lineno,
- prescan_context.max_sub);
+ (int) prescan_context.max_sub);
FREE_EXPR_AND_RETURN(first_exp, 0);
}
if (second_pat.regexp != 0) {
#define NATIVE_NEWALIAS_PATH "/usr/sbin/newaliases"
#define NATIVE_COMMAND_DIR "/usr/sbin"
#define NATIVE_DAEMON_DIR "/usr/libexec/postfix"
+
+ /*
+ * XXX Need CMSG_SPACE() and CMSG_LEN() but don't want to drag in everything
+ * that comes with _LINUX_SOURCE_COMPAT.
+ */
+#include <sys/socket.h>
+#ifndef CMSG_SPACE
+#define CMSG_SPACE(len) (_CMSG_ALIGN(sizeof(struct cmsghdr)) + _CMSG_ALIGN(len))
+#endif
+#ifndef CMSG_LEN
+#define CMSG_LEN(len) (_CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
+#endif
+
#endif
#ifdef AIX4