20040826
Feature: support for systems with closefrom(), and emulation
- for those without. Victor Duchovni, Morgan Stanley. Files:
- util/sys_defs.h, util/sys_compat.c.
+ for those without. Andrew Brown. Files: util/sys_defs.h,
+ util/sys_compat.c.
20040827
on to the SASL library. Victor Duchovni, Morgan Stanley.
Files: smtp/smtp.c. smtp/smtp_sasl_glue.c, smtp/smtp_sasl_proto.c.
+20040828
+
+ User interface: when no recipients are specified, the
+ Postfix sendmail command now terminates with status EX_USAGE
+ instead of accepting the mail first and bouncing it later.
+ This gives more direct feedback in case of a common client
+ configuration error. File: sendmail/sendmail.c.
+
+20040829
+
+ Portability: Solaris closefrom() support didn't work for
+ non-SUN compilers. Victor Duchovni, Morgan Stanley.
+
Open problems:
+ Low: scache & anvil should log cache peak sizes.
+
Low: update events.c so that 1-second timer requests do
not suffer from rounding errors. This is needed for 1-second
SMTP session caching time limits.
and change the patchlevel and the release date. Patches are never
issued for snapshot releases.
+Incompatible changes with snapshot Postfix-2.2-20040829
+=======================================================
+
+When no recipients are specified on the command line or via the -t
+option, the Postfix sendmail command terminates with status EX_USAGE
+and produces an error message instead of accepting the mail first
+and bouncing it later. This gives direct more feedback in case of
+a common client configuration error.
+
Major changes with snapshot Postfix-2.2-20040827
================================================
5.[0-4]) CCARGS="$CCARGS -DMISSING_USLEEP";;
*) CCARGS="$CCARGS -DHAS_POSIX_REGEXP";;
esac
+ # Solaris 9 added closefrom()
+ case $RELEASE in
+ 5.9*|5.[1-9][0-9]*) CCARGS="$CCARGS -DHAS_CLOSEFROM";;
+ esac
# Work around broken str*casecmp(). Do it all here instead
# of having half the solution in the sys_defs.h file.
CCARGS="$CCARGS -Dstrcasecmp=fix_strcasecmp \
* Patches change the patchlevel and the release date. Snapshots change the
* release date only.
*/
-#define MAIL_RELEASE_DATE "20040828"
+#define MAIL_RELEASE_DATE "20040829"
#define MAIL_VERSION_NUMBER "2.2"
#define VAR_MAIL_VERSION "mail_version"
int skip_from_;
TOK822 *tree;
TOK822 *tp;
+ int rcpt_count = 0;
enum {
STRIP_CR_DUNNO, STRIP_CR_DO, STRIP_CR_DONT
} strip_cr;
msg_fatal_status(EX_TEMPFAIL,
"%s(%ld): error writing queue file: %m",
saved_sender, (long) uid);
+ ++rcpt_count;
}
}
tok822_free_tree(tree);
msg_fatal_status(EX_TEMPFAIL,
"%s(%ld): error writing queue file: %m",
saved_sender, (long) uid);
+ ++rcpt_count;
}
argv_free(state.recipients);
argv_free(state.resent_recip);
vstring_free(state.temp);
}
+ if (rcpt_count == 0)
+ msg_fatal_status(EX_USAGE, (flags & SM_FLAG_XRCPT) ?
+ "No recipient addresses found in message header" :
+ "Recipient addresses must be specified on"
+ " the command line or via the -t option");
+
/*
* Identify the end of the queue file.
*/
#define HAS_VOLATILE_LOCKS
#define BROKEN_READ_SELECT_ON_TCP_SOCKET
-#if SOLARIS >= 20900 || (SOLARIS < 10000 && SOLARIS >= 209)
-#define HAS_CLOSEFROM
-#endif
-
/*
* Allow build environment to override paths.
*/