2
0
mirror of https://github.com/vdukhovni/postfix synced 2025-08-22 09:57:34 +00:00

postfix-2.8-20101210

This commit is contained in:
Wietse Venema 2010-12-10 00:00:00 -05:00 committed by Viktor Dukhovni
parent d87d8c1c0f
commit 3828e1ddd9
18 changed files with 158 additions and 85 deletions

View File

@ -16220,7 +16220,7 @@ Apologies for any names omitted.
ignore the excess recipients and deliver the message. File:
cleanup/cleanup_map1n.c.
20101204
20101205
Cleanup: sache_clnt_create() had an unnecessary data
dependency on the non-library var_scache_service variable,
@ -16236,5 +16236,17 @@ Apologies for any names omitted.
20101206
postscreen hung up due to incorrect output error test. File:
postscreen/postscreen_send.c.
Bugfix (introduced 20101205): postscreen hung up due to
incorrect output error test. File: postscreen/postscreen_send.c.
20101207
Cleanup: the undisclosed_recipients_header default value
is now the empty string. The Internet mail RFCs have supported
messages without recipient header for almost 10 years now.
File: global/mail_params.h.
Cleanup: use strtol() instead of sscanf() for consistent
handling of out-of-range numbers. Files: global/cfg_parser.c,
global/conv_time.c, global/mail_conf_int.c,
global/mail_conf_long.c, global/mail_conf_nint.c.

View File

@ -33,6 +33,21 @@ This is supported only when the default value is stress-dependent
postscreen parameters always evaluate as if the stress value is
equal to the empty string.
Incompatibility with snapshot 20101206
======================================
Postfix by default no longer adds a "To: undisclosed-recipients:;"
header when no recipient specified in the message header. The
Internet mail RFCs have supported messages without recipient header
for almost 10 years now.
For backwards compatibility, specify:
/etc/postfix/main.cf
To: undisclosed-recipients:;
Note: both the ":" and ";" are required.
Incompatibility with snapshot 20101202
======================================

View File

@ -15224,12 +15224,21 @@ The default time unit is s (seconds).
</DD>
<DT><b><a name="undisclosed_recipients_header">undisclosed_recipients_header</a>
(default: To: undisclosed-recipients:;)</b></DT><DD>
(default: see "postconf -d" output)</b></DT><DD>
<p>
Message header that the Postfix <a href="cleanup.8.html">cleanup(8)</a> server inserts when a
message contains no To: or Cc: message header. With Postfix 2.4
and later, specify an empty value to disable this feature. </p>
message contains no To: or Cc: message header. With Postfix 2.8
and later, the default value is empty. With Postfix 2.4-2.7,
specify an empty value to disable this feature. </p>
<p> Example: </p>
<pre>
# Default value before Postfix 2.8.
# Note: the ":" and ";" are both required.
<a href="postconf.5.html#undisclosed_recipients_header">undisclosed_recipients_header</a> = To: undisclosed-recipients:;
</pre>
</DD>

View File

@ -55,12 +55,12 @@ POSTSCREEN(8) POSTSCREEN(8)
Problems and transactions are logged to <b>syslogd</b>(8).
<b>BUGS</b>
The <a href="postscreen.8.html"><b>postscreen</b>(8)</a> built-in SMTP protocol engine does not
announce support for STARTTLS, AUTH, XCLIENT or XFORWARD.
Support for STARTTLS and AUTH may be added in the future.
In the mean time, if you need to make these services
available on port 25, then do not enable the optional
"after 220 server greeting" tests.
The <a href="postscreen.8.html"><b>postscreen</b>(8)</a> built-in SMTP protocol engine currently
does not announce support for STARTTLS, AUTH, XCLIENT or
XFORWARD. Support for STARTTLS and AUTH may be added in
the future. In the mean time, if you need to make these
services available on port 25, then do not enable the
optional "after 220 server greeting" tests.
The optional "after 220 server greeting" tests involve
<a href="postscreen.8.html"><b>postscreen</b>(8)</a>'s built-in SMTP protocol engine. When these

View File

@ -9656,10 +9656,23 @@ load.
.PP
Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
The default time unit is s (seconds).
.SH undisclosed_recipients_header (default: To: undisclosed-recipients:;)
.SH undisclosed_recipients_header (default: see "postconf -d" output)
Message header that the Postfix \fBcleanup\fR(8) server inserts when a
message contains no To: or Cc: message header. With Postfix 2.4
and later, specify an empty value to disable this feature.
message contains no To: or Cc: message header. With Postfix 2.8
and later, the default value is empty. With Postfix 2.4-2.7,
specify an empty value to disable this feature.
.PP
Example:
.PP
.nf
.na
.ft C
# Default value before Postfix 2.8.
# Note: the ":" and ";" are both required.
undisclosed_recipients_header = To: undisclosed-recipients:;
.fi
.ad
.ft R
.SH unknown_address_reject_code (default: 450)
The numerical Postfix SMTP server response code when a sender or
recipient address is rejected by the reject_unknown_sender_domain

View File

@ -60,8 +60,9 @@ Problems and transactions are logged to \fBsyslogd\fR(8).
.SH BUGS
.ad
.fi
The \fBpostscreen\fR(8) built-in SMTP protocol engine does
not announce support for STARTTLS, AUTH, XCLIENT or XFORWARD.
The \fBpostscreen\fR(8) built-in SMTP protocol engine
currently does not announce support for STARTTLS, AUTH,
XCLIENT or XFORWARD.
Support for STARTTLS and AUTH may be added in the future.
In the mean time, if you need to make these services available
on port 25, then do not enable the optional "after 220

View File

@ -8150,12 +8150,21 @@ delivery is requested with "<b>sendmail -v</b>".
This feature is available in Postfix 2.1 and later.
</p>
%PARAM undisclosed_recipients_header To: undisclosed-recipients:;
%PARAM undisclosed_recipients_header see "postconf -d" output
<p>
Message header that the Postfix cleanup(8) server inserts when a
message contains no To: or Cc: message header. With Postfix 2.4
and later, specify an empty value to disable this feature. </p>
message contains no To: or Cc: message header. With Postfix 2.8
and later, the default value is empty. With Postfix 2.4-2.7,
specify an empty value to disable this feature. </p>
<p> Example: </p>
<pre>
# Default value before Postfix 2.8.
# Note: the ":" and ";" are both required.
undisclosed_recipients_header = To: undisclosed-recipients:;
</pre>
%PARAM unknown_relay_recipient_reject_code 550

View File

@ -82,7 +82,8 @@
#include "sys_defs.h"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#ifdef STRCASECMP_IN_STRINGS_H
@ -146,11 +147,14 @@ static int get_dict_int(const struct CFG_PARSER *parser,
const char *name, int defval, int min, int max)
{
const char *strval;
char *end;
int intval;
char junk;
long longval;
if ((strval = (char *) dict_lookup(parser->name, name)) != 0) {
if (sscanf(strval, "%d%c", &intval, &junk) != 1)
errno = 0;
intval = longval = strtol(strval, &end, 10);
if (*strval == 0 || *end != 0 || errno == ERANGE || longval != intval)
msg_fatal("%s: bad numerical configuration: %s = %s",
parser->name, name, strval);
} else

View File

@ -41,7 +41,8 @@
#include <sys_defs.h>
#include <limits.h> /* INT_MAX */
#include <stdio.h> /* sscanf() */
#include <stdlib.h>
#include <errno.h>
/* Utility library. */
@ -60,50 +61,48 @@
int conv_time(const char *strval, int *timval, int def_unit)
{
char unit;
char junk;
char *end;
int intval;
long longval;
switch (sscanf(strval, "%d%c%c", &intval, &unit, &junk)) {
case 1:
unit = def_unit;
/* FALLTHROUGH */
case 2:
if (intval < 0)
return (0);
switch (unit) {
case 'w':
if (intval < INT_MAX / WEEK) {
*timval = intval * WEEK;
return (1);
} else {
return (0);
}
case 'd':
if (intval < INT_MAX / DAY) {
*timval = intval * DAY;
return (1);
} else {
return (0);
}
case 'h':
if (intval < INT_MAX / HOUR) {
*timval = intval * HOUR;
return (1);
} else {
return (0);
}
case 'm':
if (intval < INT_MAX / MINUTE) {
*timval = intval * MINUTE;
return (1);
} else {
return (0);
}
case 's':
*timval = intval;
errno = 0;
intval = longval = strtol(strval, &end, 10);
if (*strval == 0 || errno == ERANGE || longval != intval || intval < 0
|| (*end != 0 && end[1] != 0))
return (0);
switch (*end ? *end : def_unit) {
case 'w':
if (intval < INT_MAX / WEEK) {
*timval = intval * WEEK;
return (1);
} else {
return (0);
}
case 'd':
if (intval < INT_MAX / DAY) {
*timval = intval * DAY;
return (1);
} else {
return (0);
}
case 'h':
if (intval < INT_MAX / HOUR) {
*timval = intval * HOUR;
return (1);
} else {
return (0);
}
case 'm':
if (intval < INT_MAX / MINUTE) {
*timval = intval * MINUTE;
return (1);
} else {
return (0);
}
case 's':
*timval = intval;
return (1);
}
return (0);
}

View File

@ -79,7 +79,8 @@
#include <sys_defs.h>
#include <stdlib.h>
#include <stdio.h> /* sscanf() */
#include <stdio.h> /* BUFSIZ */
#include <errno.h>
/* Utility library. */
@ -97,10 +98,13 @@
static int convert_mail_conf_int(const char *name, int *intval)
{
const char *strval;
char junk;
char *end;
long longval;
if ((strval = mail_conf_lookup_eval(name)) != 0) {
if (sscanf(strval, "%d%c", intval, &junk) != 1)
errno = 0;
*intval = longval = strtol(strval, &end, 10);
if (*strval == 0 || *end != 0 || errno == ERANGE || longval != *intval)
msg_fatal("bad numerical configuration: %s = %s", name, strval);
return (1);
}
@ -132,7 +136,7 @@ int get_mail_conf_int(const char *name, int defval, int min, int max)
/* get_mail_conf_int2 - evaluate integer-valued configuration variable */
int get_mail_conf_int2(const char *name1, const char *name2, int defval,
int min, int max)
int min, int max)
{
int intval;
char *name;
@ -150,7 +154,7 @@ int get_mail_conf_int2(const char *name1, const char *name2, int defval,
typedef int (*stupid_indent_int) (void);
int get_mail_conf_int_fn(const char *name, stupid_indent_int defval,
int min, int max)
int min, int max)
{
int intval;
@ -176,7 +180,7 @@ void get_mail_conf_int_table(const CONFIG_INT_TABLE *table)
{
while (table->name) {
table->target[0] = get_mail_conf_int(table->name, table->defval,
table->min, table->max);
table->min, table->max);
table++;
}
}
@ -187,7 +191,7 @@ void get_mail_conf_int_fn_table(const CONFIG_INT_FN_TABLE *table)
{
while (table->name) {
table->target[0] = get_mail_conf_int_fn(table->name, table->defval,
table->min, table->max);
table->min, table->max);
table++;
}
}

View File

@ -79,7 +79,8 @@
#include <sys_defs.h>
#include <stdlib.h>
#include <stdio.h> /* sscanf() */
#include <stdio.h> /* BUFSIZ */
#include <errno.h>
/* Utility library. */
@ -97,10 +98,12 @@
static int convert_mail_conf_long(const char *name, long *longval)
{
const char *strval;
char junk;
char *end;
if ((strval = mail_conf_lookup_eval(name)) != 0) {
if (sscanf(strval, "%ld%c", longval, &junk) != 1)
errno = 0;
*longval = strtol(strval, &end, 10);
if (*strval == 0 || *end != 0 || errno == ERANGE)
msg_fatal("bad numerical configuration: %s = %s", name, strval);
return (1);
}

View File

@ -84,7 +84,8 @@
#include <sys_defs.h>
#include <stdlib.h>
#include <stdio.h> /* sscanf() */
#include <stdio.h> /* BUFSIZ */
#include <errno.h>
/* Utility library. */
@ -102,10 +103,13 @@
static int convert_mail_conf_nint(const char *name, int *intval)
{
const char *strval;
char junk;
char *end;
long longval;
if ((strval = mail_conf_lookup_eval(name)) != 0) {
if (sscanf(strval, "%d%c", intval, &junk) != 1)
errno = 0;
*intval = longval = strtol(strval, &end, 10);
if (*strval == 0 || *end != 0 || errno == ERANGE || longval != *intval)
msg_fatal("bad numerical configuration: %s = %s", name, strval);
return (1);
}

View File

@ -75,7 +75,7 @@
#include <sys_defs.h>
#include <stdlib.h>
#include <stdio.h> /* sscanf() */
#include <stdio.h> /* BUFSIZ */
#include <ctype.h>
/* Utility library. */

View File

@ -338,7 +338,7 @@ extern char *var_always_bcc;
* MTAs routinely strip Bcc: headers from message headers.
*/
#define VAR_RCPT_WITHELD "undisclosed_recipients_header"
#define DEF_RCPT_WITHELD "To: undisclosed-recipients:;"
#define DEF_RCPT_WITHELD ""
extern char *var_rcpt_witheld;
/*

View File

@ -20,7 +20,7 @@
* Patches change both the patchlevel and the release date. Snapshots have no
* patchlevel; they change the release date only.
*/
#define MAIL_RELEASE_DATE "20101206"
#define MAIL_RELEASE_DATE "20101210"
#define MAIL_VERSION_NUMBER "2.8"
#ifdef SNAPSHOT

View File

@ -46,8 +46,9 @@
/* DIAGNOSTICS
/* Problems and transactions are logged to \fBsyslogd\fR(8).
/* BUGS
/* The \fBpostscreen\fR(8) built-in SMTP protocol engine does
/* not announce support for STARTTLS, AUTH, XCLIENT or XFORWARD.
/* The \fBpostscreen\fR(8) built-in SMTP protocol engine
/* currently does not announce support for STARTTLS, AUTH,
/* XCLIENT or XFORWARD.
/* Support for STARTTLS and AUTH may be added in the future.
/* In the mean time, if you need to make these services available
/* on port 25, then do not enable the optional "after 220

View File

@ -21,8 +21,7 @@
/* ps_send_reply() sends the specified text to the specified
/* remote SMTP client. In case of an immediate error, it logs
/* a warning (except EPIPE) with the client address and port,
/* and returns -1 (including EPIPE). Otherwise, the result
/* value is the number of bytes sent.
/* and returns a non-zero result (all errors including EPIPE).
/*
/* PS_SEND_REPLY() is a convenience wrapper for ps_send_reply().
/* It is an unsafe macro that evaluates its arguments multiple

View File

@ -180,7 +180,7 @@ PS_STATE *ps_new_session_state(VSTREAM *stream,
if ((ht = htable_locate(ps_client_concurrency, addr)) == 0)
ht = htable_enter(ps_client_concurrency, addr, (char *) 0);
ht->value += 1;
state->client_concurrency = (int) ht->value;
state->client_concurrency = CAST_CHAR_PTR_TO_INT(ht->value);
return (state);
}