previous "354 End data with <CR><LF>.<CR><LF>" response.
File: smtpd/smtpd.c.
+20040302
+
+ Bugfix: SMTPD proxy didn't send QUIT as the result of code
+ duplication. Evidence reported by Mark Martinec. File:
+ smtpd/smtpd.c.
+
+20040311
+
+ Bugfix: bad address syntax caused map lookup with zero-length
+ keys. Problem reported by Andrei Koulik. Files:
+ util/match_ops.c, src/trivial-rewrite/transport.c.
+
Open problems:
Low: log xdelay (esp. for SMTP and delivery to command).
* Patches change the patchlevel and the release date. Snapshots change the
* release date only, unless they include the same bugfix as a patch release.
*/
-#define MAIL_RELEASE_DATE "20040209"
-#define MAIL_VERSION_NUMBER "2.0.18"
+#define MAIL_RELEASE_DATE "20040312"
+#define MAIL_VERSION_NUMBER "2.0.19"
#define VAR_MAIL_VERSION "mail_version"
#ifdef SNAPSHOT
vstring_sprintf(state->proxy_buffer,
"451 Error: queue file write error");
}
- smtpd_proxy_close(state);
}
/*
* Specify that the lookup key is partial, to avoid matching partial keys
* with regular expressions.
*/
- for (name = ratsign + 1; /* void */ ; name = next) {
+ for (name = ratsign + 1; *name != 0; name = next) {
if (find_transport_entry(tp, name, rcpt_domain, PARTIAL, channel, nexthop))
RETURN_FREE(FOUND);
if (dict_errno != 0)
if (strchr(pattern, ':') != 0) {
temp = lowercase(mystrdup(name));
match = 0;
- for (entry = temp; /* void */ ; entry = next) {
+ for (entry = temp; *entry != 0; entry = next) {
if ((match = (dict_lookup(pattern, entry) != 0)) != 0)
break;
if (dict_errno != 0)