specifies the release date of a stable release or snapshot release.
Incompatibility with Postfix 2.3 and earlier
-============================================
+--------------------------------------------
If you upgrade from Postfix 2.3 or earlier, read RELEASE_NOTES-2.4
before proceeding.
default_destination_concurrency_positive_feedback,
default_destination_concurrency_negative_feedback,
default_destination_concurrency_failed_cohort_limit, as well as
-transport-specific versions of the same. See postconf(5) for
-extensive descriptions, and SCHEDULER_README for background information
-on the theory and practice of how these settings work.
+transport-specific versions of the same.
The default parameter settings are backwards compatible with older
Postfix versions. This may change after better defaults are field
tested.
-The SCHEDULER_README document describes the new concurrency scheduler,
-as well as Patrik Rak's preemptive job scheduler.
+The updated SCHEDULER_README document describes the theory behind
+the new concurrency scheduler, as well as Patrik Rak's preemptive
+job scheduler. See postconf(5) for more extensive descriptions of
+the configuration parameters.
Major changes - small/home office
---------------------------------
auth_cache = (SMTP_SASL_AUTH_CACHE *) mymalloc(sizeof(*auth_cache));
auth_cache->dict = dict_open(map, O_CREAT | O_RDWR, CACHE_DICT_OPEN_FLAGS);
auth_cache->ttl = ttl;
- auth_cache->dsn = mymalloc(100);
- auth_cache->text = mymalloc(100);
+ auth_cache->dsn = mystrdup("");
+ auth_cache->text = mystrdup("");
return (auth_cache);
}
* password has changed.
*/
-/* smtp_sasl_make_auth_cache_key - format auth failure cache lookup key */
+/* smtp_sasl_auth_cache_make_key - format auth failure cache lookup key */
-static char *smtp_sasl_make_auth_cache_key(const char *host, const char *user)
+static char *smtp_sasl_auth_cache_make_key(const char *host, const char *user)
{
VSTRING *buf = vstring_alloc(100);
return (vstring_export(buf));
}
-/* smtp_sasl_make_auth_cache_pass - hash the auth failure cache password */
+/* smtp_sasl_auth_cache_make_pass - hash the auth failure cache password */
-static char *smtp_sasl_make_auth_cache_pass(const char *password)
+static char *smtp_sasl_auth_cache_make_pass(const char *password)
{
VSTRING *buf = vstring_alloc(2 * SHA_DIGEST_LENGTH);
return (vstring_export(buf));
}
-/* smtp_sasl_make_auth_cache_value - format auth failure cache value */
+/* smtp_sasl_auth_cache_make_value - format auth failure cache value */
-static char *smtp_sasl_make_auth_cache_value(const char *password,
+static char *smtp_sasl_auth_cache_make_value(const char *password,
const char *dsn,
const char *rep_str)
{
char *pwd_hash;
unsigned long now = (unsigned long) time((time_t *) 0);
- pwd_hash = smtp_sasl_make_auth_cache_pass(password);
+ pwd_hash = smtp_sasl_auth_cache_make_pass(password);
vstring_sprintf(val_buf, "%lu;%s;%s;%s", now, pwd_hash, dsn, rep_str);
myfree(pwd_hash);
return (vstring_export(val_buf));
} else if (time_stamp + auth_cache->ttl < now) {
valid = 0;
} else {
- curr_hash = smtp_sasl_make_auth_cache_pass(password);
+ curr_hash = smtp_sasl_auth_cache_make_pass(password);
valid = (strcmp(cache_hash, curr_hash) == 0);
myfree(curr_hash);
}
const char *entry;
int valid = 0;
- key = smtp_sasl_make_auth_cache_key(session->host, session->sasl_username);
+ key = smtp_sasl_auth_cache_make_key(session->host, session->sasl_username);
if ((entry = dict_get(auth_cache->dict, key)) != 0)
if ((valid = smtp_sasl_auth_cache_valid(auth_cache, entry,
session->sasl_passwd)) == 0)
char *key;
char *value;
- key = smtp_sasl_make_auth_cache_key(session->host, session->sasl_username);
- value = smtp_sasl_make_auth_cache_value(session->sasl_passwd,
+ key = smtp_sasl_auth_cache_make_key(session->host, session->sasl_username);
+ value = smtp_sasl_auth_cache_make_value(session->sasl_passwd,
resp->dsn, resp->str);
dict_put(auth_cache->dict, key, value);