mirror of
https://github.com/vdukhovni/postfix
synced 2025-08-22 18:07:41 +00:00
postfix-2.8-20101210
This commit is contained in:
parent
d87d8c1c0f
commit
3828e1ddd9
@ -16220,7 +16220,7 @@ Apologies for any names omitted.
|
|||||||
ignore the excess recipients and deliver the message. File:
|
ignore the excess recipients and deliver the message. File:
|
||||||
cleanup/cleanup_map1n.c.
|
cleanup/cleanup_map1n.c.
|
||||||
|
|
||||||
20101204
|
20101205
|
||||||
|
|
||||||
Cleanup: sache_clnt_create() had an unnecessary data
|
Cleanup: sache_clnt_create() had an unnecessary data
|
||||||
dependency on the non-library var_scache_service variable,
|
dependency on the non-library var_scache_service variable,
|
||||||
@ -16236,5 +16236,17 @@ Apologies for any names omitted.
|
|||||||
|
|
||||||
20101206
|
20101206
|
||||||
|
|
||||||
postscreen hung up due to incorrect output error test. File:
|
Bugfix (introduced 20101205): postscreen hung up due to
|
||||||
postscreen/postscreen_send.c.
|
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.
|
||||||
|
@ -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
|
postscreen parameters always evaluate as if the stress value is
|
||||||
equal to the empty string.
|
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
|
Incompatibility with snapshot 20101202
|
||||||
======================================
|
======================================
|
||||||
|
|
||||||
|
@ -15224,12 +15224,21 @@ The default time unit is s (seconds).
|
|||||||
</DD>
|
</DD>
|
||||||
|
|
||||||
<DT><b><a name="undisclosed_recipients_header">undisclosed_recipients_header</a>
|
<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>
|
<p>
|
||||||
Message header that the Postfix <a href="cleanup.8.html">cleanup(8)</a> server inserts when a
|
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
|
message contains no To: or Cc: message header. With Postfix 2.8
|
||||||
and later, specify an empty value to disable this feature. </p>
|
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>
|
</DD>
|
||||||
|
@ -55,12 +55,12 @@ POSTSCREEN(8) POSTSCREEN(8)
|
|||||||
Problems and transactions are logged to <b>syslogd</b>(8).
|
Problems and transactions are logged to <b>syslogd</b>(8).
|
||||||
|
|
||||||
<b>BUGS</b>
|
<b>BUGS</b>
|
||||||
The <a href="postscreen.8.html"><b>postscreen</b>(8)</a> built-in SMTP protocol engine does not
|
The <a href="postscreen.8.html"><b>postscreen</b>(8)</a> built-in SMTP protocol engine currently
|
||||||
announce support for STARTTLS, AUTH, XCLIENT or XFORWARD.
|
does not announce support for STARTTLS, AUTH, XCLIENT or
|
||||||
Support for STARTTLS and AUTH may be added in the future.
|
XFORWARD. Support for STARTTLS and AUTH may be added in
|
||||||
In the mean time, if you need to make these services
|
the future. In the mean time, if you need to make these
|
||||||
available on port 25, then do not enable the optional
|
services available on port 25, then do not enable the
|
||||||
"after 220 server greeting" tests.
|
optional "after 220 server greeting" tests.
|
||||||
|
|
||||||
The optional "after 220 server greeting" tests involve
|
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
|
<a href="postscreen.8.html"><b>postscreen</b>(8)</a>'s built-in SMTP protocol engine. When these
|
||||||
|
@ -9656,10 +9656,23 @@ load.
|
|||||||
.PP
|
.PP
|
||||||
Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
|
Time units: s (seconds), m (minutes), h (hours), d (days), w (weeks).
|
||||||
The default time unit is s (seconds).
|
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 header that the Postfix \fBcleanup\fR(8) server inserts when a
|
||||||
message contains no To: or Cc: message header. With Postfix 2.4
|
message contains no To: or Cc: message header. With Postfix 2.8
|
||||||
and later, specify an empty value to disable this feature.
|
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)
|
.SH unknown_address_reject_code (default: 450)
|
||||||
The numerical Postfix SMTP server response code when a sender or
|
The numerical Postfix SMTP server response code when a sender or
|
||||||
recipient address is rejected by the reject_unknown_sender_domain
|
recipient address is rejected by the reject_unknown_sender_domain
|
||||||
|
@ -60,8 +60,9 @@ Problems and transactions are logged to \fBsyslogd\fR(8).
|
|||||||
.SH BUGS
|
.SH BUGS
|
||||||
.ad
|
.ad
|
||||||
.fi
|
.fi
|
||||||
The \fBpostscreen\fR(8) built-in SMTP protocol engine does
|
The \fBpostscreen\fR(8) built-in SMTP protocol engine
|
||||||
not announce support for STARTTLS, AUTH, XCLIENT or XFORWARD.
|
currently does not announce support for STARTTLS, AUTH,
|
||||||
|
XCLIENT or XFORWARD.
|
||||||
Support for STARTTLS and AUTH may be added in the future.
|
Support for STARTTLS and AUTH may be added in the future.
|
||||||
In the mean time, if you need to make these services available
|
In the mean time, if you need to make these services available
|
||||||
on port 25, then do not enable the optional "after 220
|
on port 25, then do not enable the optional "after 220
|
||||||
|
@ -8150,12 +8150,21 @@ delivery is requested with "<b>sendmail -v</b>".
|
|||||||
This feature is available in Postfix 2.1 and later.
|
This feature is available in Postfix 2.1 and later.
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
%PARAM undisclosed_recipients_header To: undisclosed-recipients:;
|
%PARAM undisclosed_recipients_header see "postconf -d" output
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
Message header that the Postfix cleanup(8) server inserts when a
|
Message header that the Postfix cleanup(8) server inserts when a
|
||||||
message contains no To: or Cc: message header. With Postfix 2.4
|
message contains no To: or Cc: message header. With Postfix 2.8
|
||||||
and later, specify an empty value to disable this feature. </p>
|
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
|
%PARAM unknown_relay_recipient_reject_code 550
|
||||||
|
|
||||||
|
@ -82,7 +82,8 @@
|
|||||||
|
|
||||||
#include "sys_defs.h"
|
#include "sys_defs.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdlib.h>
|
||||||
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#ifdef STRCASECMP_IN_STRINGS_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 *name, int defval, int min, int max)
|
||||||
{
|
{
|
||||||
const char *strval;
|
const char *strval;
|
||||||
|
char *end;
|
||||||
int intval;
|
int intval;
|
||||||
char junk;
|
long longval;
|
||||||
|
|
||||||
if ((strval = (char *) dict_lookup(parser->name, name)) != 0) {
|
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",
|
msg_fatal("%s: bad numerical configuration: %s = %s",
|
||||||
parser->name, name, strval);
|
parser->name, name, strval);
|
||||||
} else
|
} else
|
||||||
|
@ -41,7 +41,8 @@
|
|||||||
|
|
||||||
#include <sys_defs.h>
|
#include <sys_defs.h>
|
||||||
#include <limits.h> /* INT_MAX */
|
#include <limits.h> /* INT_MAX */
|
||||||
#include <stdio.h> /* sscanf() */
|
#include <stdlib.h>
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
|
|
||||||
@ -60,18 +61,17 @@
|
|||||||
|
|
||||||
int conv_time(const char *strval, int *timval, int def_unit)
|
int conv_time(const char *strval, int *timval, int def_unit)
|
||||||
{
|
{
|
||||||
char unit;
|
char *end;
|
||||||
char junk;
|
|
||||||
int intval;
|
int intval;
|
||||||
|
long longval;
|
||||||
|
|
||||||
switch (sscanf(strval, "%d%c%c", &intval, &unit, &junk)) {
|
errno = 0;
|
||||||
case 1:
|
intval = longval = strtol(strval, &end, 10);
|
||||||
unit = def_unit;
|
if (*strval == 0 || errno == ERANGE || longval != intval || intval < 0
|
||||||
/* FALLTHROUGH */
|
|| (*end != 0 && end[1] != 0))
|
||||||
case 2:
|
|
||||||
if (intval < 0)
|
|
||||||
return (0);
|
return (0);
|
||||||
switch (unit) {
|
|
||||||
|
switch (*end ? *end : def_unit) {
|
||||||
case 'w':
|
case 'w':
|
||||||
if (intval < INT_MAX / WEEK) {
|
if (intval < INT_MAX / WEEK) {
|
||||||
*timval = intval * WEEK;
|
*timval = intval * WEEK;
|
||||||
@ -104,6 +104,5 @@ int conv_time(const char *strval, int *timval, int def_unit)
|
|||||||
*timval = intval;
|
*timval = intval;
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,8 @@
|
|||||||
|
|
||||||
#include <sys_defs.h>
|
#include <sys_defs.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h> /* sscanf() */
|
#include <stdio.h> /* BUFSIZ */
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
|
|
||||||
@ -97,10 +98,13 @@
|
|||||||
static int convert_mail_conf_int(const char *name, int *intval)
|
static int convert_mail_conf_int(const char *name, int *intval)
|
||||||
{
|
{
|
||||||
const char *strval;
|
const char *strval;
|
||||||
char junk;
|
char *end;
|
||||||
|
long longval;
|
||||||
|
|
||||||
if ((strval = mail_conf_lookup_eval(name)) != 0) {
|
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);
|
msg_fatal("bad numerical configuration: %s = %s", name, strval);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
@ -79,7 +79,8 @@
|
|||||||
|
|
||||||
#include <sys_defs.h>
|
#include <sys_defs.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h> /* sscanf() */
|
#include <stdio.h> /* BUFSIZ */
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
|
|
||||||
@ -97,10 +98,12 @@
|
|||||||
static int convert_mail_conf_long(const char *name, long *longval)
|
static int convert_mail_conf_long(const char *name, long *longval)
|
||||||
{
|
{
|
||||||
const char *strval;
|
const char *strval;
|
||||||
char junk;
|
char *end;
|
||||||
|
|
||||||
if ((strval = mail_conf_lookup_eval(name)) != 0) {
|
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);
|
msg_fatal("bad numerical configuration: %s = %s", name, strval);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
@ -84,7 +84,8 @@
|
|||||||
|
|
||||||
#include <sys_defs.h>
|
#include <sys_defs.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h> /* sscanf() */
|
#include <stdio.h> /* BUFSIZ */
|
||||||
|
#include <errno.h>
|
||||||
|
|
||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
|
|
||||||
@ -102,10 +103,13 @@
|
|||||||
static int convert_mail_conf_nint(const char *name, int *intval)
|
static int convert_mail_conf_nint(const char *name, int *intval)
|
||||||
{
|
{
|
||||||
const char *strval;
|
const char *strval;
|
||||||
char junk;
|
char *end;
|
||||||
|
long longval;
|
||||||
|
|
||||||
if ((strval = mail_conf_lookup_eval(name)) != 0) {
|
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);
|
msg_fatal("bad numerical configuration: %s = %s", name, strval);
|
||||||
return (1);
|
return (1);
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@
|
|||||||
|
|
||||||
#include <sys_defs.h>
|
#include <sys_defs.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h> /* sscanf() */
|
#include <stdio.h> /* BUFSIZ */
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
/* Utility library. */
|
/* Utility library. */
|
||||||
|
@ -338,7 +338,7 @@ extern char *var_always_bcc;
|
|||||||
* MTAs routinely strip Bcc: headers from message headers.
|
* MTAs routinely strip Bcc: headers from message headers.
|
||||||
*/
|
*/
|
||||||
#define VAR_RCPT_WITHELD "undisclosed_recipients_header"
|
#define VAR_RCPT_WITHELD "undisclosed_recipients_header"
|
||||||
#define DEF_RCPT_WITHELD "To: undisclosed-recipients:;"
|
#define DEF_RCPT_WITHELD ""
|
||||||
extern char *var_rcpt_witheld;
|
extern char *var_rcpt_witheld;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
* Patches change both the patchlevel and the release date. Snapshots have no
|
* Patches change both the patchlevel and the release date. Snapshots have no
|
||||||
* patchlevel; they change the release date only.
|
* patchlevel; they change the release date only.
|
||||||
*/
|
*/
|
||||||
#define MAIL_RELEASE_DATE "20101206"
|
#define MAIL_RELEASE_DATE "20101210"
|
||||||
#define MAIL_VERSION_NUMBER "2.8"
|
#define MAIL_VERSION_NUMBER "2.8"
|
||||||
|
|
||||||
#ifdef SNAPSHOT
|
#ifdef SNAPSHOT
|
||||||
|
@ -46,8 +46,9 @@
|
|||||||
/* DIAGNOSTICS
|
/* DIAGNOSTICS
|
||||||
/* Problems and transactions are logged to \fBsyslogd\fR(8).
|
/* Problems and transactions are logged to \fBsyslogd\fR(8).
|
||||||
/* BUGS
|
/* BUGS
|
||||||
/* The \fBpostscreen\fR(8) built-in SMTP protocol engine does
|
/* The \fBpostscreen\fR(8) built-in SMTP protocol engine
|
||||||
/* not announce support for STARTTLS, AUTH, XCLIENT or XFORWARD.
|
/* currently does not announce support for STARTTLS, AUTH,
|
||||||
|
/* XCLIENT or XFORWARD.
|
||||||
/* Support for STARTTLS and AUTH may be added in the future.
|
/* Support for STARTTLS and AUTH may be added in the future.
|
||||||
/* In the mean time, if you need to make these services available
|
/* In the mean time, if you need to make these services available
|
||||||
/* on port 25, then do not enable the optional "after 220
|
/* on port 25, then do not enable the optional "after 220
|
||||||
|
@ -21,8 +21,7 @@
|
|||||||
/* ps_send_reply() sends the specified text to the specified
|
/* ps_send_reply() sends the specified text to the specified
|
||||||
/* remote SMTP client. In case of an immediate error, it logs
|
/* remote SMTP client. In case of an immediate error, it logs
|
||||||
/* a warning (except EPIPE) with the client address and port,
|
/* a warning (except EPIPE) with the client address and port,
|
||||||
/* and returns -1 (including EPIPE). Otherwise, the result
|
/* and returns a non-zero result (all errors including EPIPE).
|
||||||
/* value is the number of bytes sent.
|
|
||||||
/*
|
/*
|
||||||
/* PS_SEND_REPLY() is a convenience wrapper for ps_send_reply().
|
/* PS_SEND_REPLY() is a convenience wrapper for ps_send_reply().
|
||||||
/* It is an unsafe macro that evaluates its arguments multiple
|
/* It is an unsafe macro that evaluates its arguments multiple
|
||||||
|
@ -180,7 +180,7 @@ PS_STATE *ps_new_session_state(VSTREAM *stream,
|
|||||||
if ((ht = htable_locate(ps_client_concurrency, addr)) == 0)
|
if ((ht = htable_locate(ps_client_concurrency, addr)) == 0)
|
||||||
ht = htable_enter(ps_client_concurrency, addr, (char *) 0);
|
ht = htable_enter(ps_client_concurrency, addr, (char *) 0);
|
||||||
ht->value += 1;
|
ht->value += 1;
|
||||||
state->client_concurrency = (int) ht->value;
|
state->client_concurrency = CAST_CHAR_PTR_TO_INT(ht->value);
|
||||||
|
|
||||||
return (state);
|
return (state);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user