From 7b4c8c1fb37f58921e29b6c0753e621c5c854626 Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Wed, 17 Aug 2016 19:42:49 +0100 Subject: [PATCH] tidying --- src/src/dbfn.c | 23 +++-- src/src/retry.c | 86 +++++++++--------- src/src/transport.c | 11 +-- src/src/transports/smtp.c | 187 +++++++++++++++++++------------------- test/stderr/0143 | 2 + test/stderr/0275 | 6 +- test/stderr/0278 | 6 +- test/stderr/0357 | 8 +- test/stderr/0358 | 8 +- test/stderr/0361 | 8 +- test/stderr/0386 | 12 +-- test/stderr/0388 | 16 ++-- test/stderr/0398 | 9 +- test/stderr/0402 | 32 +++---- test/stderr/0403 | 6 +- test/stderr/0404 | 18 ++-- test/stderr/0408 | 6 +- test/stderr/0432 | 9 +- test/stderr/0476 | 6 ++ test/stderr/0487 | 6 +- test/stderr/0529 | 12 +-- test/stderr/0554 | 4 +- test/stderr/2600 | 6 +- test/stderr/5004 | 12 +-- test/stderr/5005 | 32 ++++--- test/stderr/5006 | 6 +- 26 files changed, 277 insertions(+), 260 deletions(-) diff --git a/src/src/dbfn.c b/src/src/dbfn.c index f521f2c20..c9c6fb707 100644 --- a/src/src/dbfn.c +++ b/src/src/dbfn.c @@ -141,14 +141,14 @@ if (sigalrm_seen) errno = ETIMEDOUT; if (rc < 0) { log_write(0, LOG_MAIN|LOG_PANIC, "Failed to get %s lock for %s: %s", - read_only? "read" : "write", buffer, - (errno == ETIMEDOUT)? "timed out" : strerror(errno)); + read_only ? "read" : "write", buffer, + errno == ETIMEDOUT ? "timed out" : strerror(errno)); (void)close(dbblock->lockfd); errno = 0; /* Indicates locking failure */ return NULL; } -DEBUG(D_hints_lookup) debug_printf("locked %s\n", buffer); +DEBUG(D_hints_lookup) debug_printf("locked %s\n", buffer); /* At this point we have an opened and locked separate lock file, that is, exclusive access to the database, so we can go ahead and open it. If we are @@ -164,7 +164,7 @@ DEBUG(D_hints_lookup) debug_printf("EXIM_DBOPEN(%s)\n", buffer); EXIM_DBOPEN(buffer, flags, EXIMDB_MODE, &(dbblock->dbptr)); DEBUG(D_hints_lookup) debug_printf("returned from EXIM_DBOPEN\n"); -if (dbblock->dbptr == NULL && errno == ENOENT && flags == O_RDWR) +if (!dbblock->dbptr && errno == ENOENT && flags == O_RDWR) { DEBUG(D_hints_lookup) debug_printf("%s appears not to exist: trying to create\n", buffer); @@ -199,8 +199,7 @@ if (created && geteuid() == root_uid) *lastname = 0; dd = opendir(CS buffer); - while ((ent = readdir(dd)) != NULL) - { + while ((ent = readdir(dd))) if (Ustrncmp(ent->d_name, name, namelen) == 0) { struct stat statbuf; @@ -212,7 +211,6 @@ if (created && geteuid() == root_uid) DEBUG(D_hints_lookup) debug_printf("failed setting %s to owned by exim\n", buffer); } } - } closedir(dd); } @@ -220,10 +218,9 @@ if (created && geteuid() == root_uid) /* If the open has failed, return NULL, leaving errno set. If lof is TRUE, log the event - also for debugging - but not if the file just doesn't exist. */ -if (dbblock->dbptr == NULL) +if (!dbblock->dbptr) { if (save_errno != ENOENT) - { if (lof) log_write(0, LOG_MAIN, "%s", string_open_failed(save_errno, "DB file %s", buffer)); @@ -231,7 +228,6 @@ if (dbblock->dbptr == NULL) DEBUG(D_hints_lookup) debug_printf("%s", CS string_open_failed(save_errno, "DB file %s\n", buffer)); - } (void)close(dbblock->lockfd); errno = save_errno; return NULL; @@ -239,8 +235,10 @@ if (dbblock->dbptr == NULL) DEBUG(D_hints_lookup) debug_printf("opened hints database %s: flags=%s\n", buffer, - (flags == O_RDONLY)? "O_RDONLY" : (flags == O_RDWR)? "O_RDWR" : - (flags == (O_RDWR|O_CREAT))? "O_RDWR|O_CREAT" : "??"); + flags == O_RDONLY ? "O_RDONLY" + : flags == O_RDWR ? "O_RDWR" + : flags == (O_RDWR|O_CREAT) ? "O_RDWR|O_CREAT" + : "??"); /* Pass back the block containing the opened database handle and the open fd for the lock. */ @@ -267,6 +265,7 @@ dbfn_close(open_db *dbblock) { EXIM_DBCLOSE(dbblock->dbptr); (void)close(dbblock->lockfd); +DEBUG(D_hints_lookup) debug_printf("closed hints database and lockfile\n"); } diff --git a/src/src/retry.c b/src/src/retry.c index 0099b6e6a..364591bd0 100644 --- a/src/src/retry.c +++ b/src/src/retry.c @@ -536,12 +536,12 @@ for (i = 0; i < 3; i++) { address_item *endaddr, *addr; address_item *last_first = NULL; - address_item **paddr = (i==0)? addr_succeed : - (i==1)? addr_failed : addr_defer; + address_item **paddr = i==0 ? addr_succeed : + i==1 ? addr_failed : addr_defer; address_item **saved_paddr = NULL; - DEBUG(D_retry) debug_printf("%s addresses:\n", (i == 0)? "Succeeded" : - (i == 1)? "Failed" : "Deferred"); + DEBUG(D_retry) debug_printf("%s addresses:\n", + i == 0 ? "Succeeded" : i == 1 ? "Failed" : "Deferred"); /* Loop for each address on the chain. For deferred addresses, the whole address times out unless one of its retry addresses has a retry rule that @@ -553,22 +553,22 @@ for (i = 0; i < 3; i++) retry items for any parent addresses - these are typically "delete" items, because the parent must have succeeded in order to generate the child. */ - while ((endaddr = *paddr) != NULL) + while ((endaddr = *paddr)) { BOOL timed_out = FALSE; retry_item *rti; - for (addr = endaddr; addr != NULL; addr = addr->parent) + for (addr = endaddr; addr; addr = addr->parent) { int update_count = 0; int timedout_count = 0; - DEBUG(D_retry) debug_printf("%s%s\n", addr->address, (addr->retries == NULL)? - ": no retry items" : ""); + DEBUG(D_retry) debug_printf(" %s%s\n", addr->address, + addr->retries ? "" : ": no retry items"); /* Loop for each retry item. */ - for (rti = addr->retries; rti != NULL; rti = rti->next) + for (rti = addr->retries; rti; rti = rti->next) { uschar *message; int message_length, message_space, failing_interval, next_try; @@ -582,10 +582,10 @@ for (i = 0; i < 3; i++) opening if no addresses have retry items - common when none have yet reached their retry next try time. */ - if (dbm_file == NULL) + if (!dbm_file) dbm_file = dbfn_open(US"retry", O_RDWR, &dbblock, TRUE); - if (dbm_file == NULL) + if (!dbm_file) { DEBUG(D_deliver|D_retry|D_hints_lookup) debug_printf("retry database not available for updating\n"); @@ -600,13 +600,13 @@ for (i = 0; i < 3; i++) but the address gets delivered to the second one. This optimization doesn't succeed in cleaning out all the dead entries, but it helps. */ - if (*addr_defer == NULL && (rti->flags & rf_message) != 0) + if (!*addr_defer && rti->flags & rf_message) rti->flags |= rf_delete; /* Handle the case of a request to delete the retry info for this destination. */ - if ((rti->flags & rf_delete) != 0) + if (rti->flags & rf_delete) { (void)dbfn_delete(dbm_file, rti->key); DEBUG(D_retry) @@ -626,21 +626,21 @@ for (i = 0; i < 3; i++) information is found, we can't generate a retry time, so there is no point updating the database. This retry item is timed out. */ - if ((retry = retry_find_config(rti->key + 2, - ((rti->flags & rf_host) != 0)? addr->domain : NULL, - rti->basic_errno, rti->more_errno)) == NULL) + if (!(retry = retry_find_config(rti->key + 2, + rti->flags & rf_host ? addr->domain : NULL, + rti->basic_errno, rti->more_errno))) { DEBUG(D_retry) debug_printf("No configured retry item for %s%s%s\n", rti->key, - ((rti->flags & rf_host) != 0)? US" or " : US"", - ((rti->flags & rf_host) != 0)? addr->domain : US""); + rti->flags & rf_host ? US" or " : US"", + rti->flags & rf_host ? addr->domain : US""); if (addr == endaddr) timedout_count++; continue; } DEBUG(D_retry) { - if ((rti->flags & rf_host) != 0) + if (rti->flags & rf_host) debug_printf("retry for %s (%s) = %s %d %d\n", rti->key, addr->domain, retry->pattern, retry->basic_errno, retry->more_errno); @@ -653,9 +653,11 @@ for (i = 0; i < 3; i++) records have a maximum data length, we enforce a limit. There isn't much point in keeping a huge message here, anyway. */ - message = (rti->basic_errno > 0)? US strerror(rti->basic_errno) : - (rti->message == NULL)? - US"unknown error" : US string_printing(rti->message); + message = rti->basic_errno > 0 + ? US strerror(rti->basic_errno) + : rti->message + ? US string_printing(rti->message) + : US"unknown error"; message_length = Ustrlen(message); if (message_length > 150) message_length = 150; @@ -663,11 +665,11 @@ for (i = 0; i < 3; i++) Ignore an old one if it is too old since it was last updated. */ retry_record = dbfn_read(dbm_file, rti->key); - if (retry_record != NULL && - now - retry_record->time_stamp > retry_data_expire) + if ( retry_record + && now - retry_record->time_stamp > retry_data_expire) retry_record = NULL; - if (retry_record == NULL) + if (!retry_record) { retry_record = store_get(sizeof(dbdata_retry) + message_length); message_space = message_length; @@ -691,7 +693,7 @@ for (i = 0; i < 3; i++) successful delivery will reset the first_failed time, and this can lead to a failing message being retried too often. */ - if ((rti->flags & rf_host) == 0 && message_age > failing_interval) + if (!(rti->flags & rf_host) && message_age > failing_interval) failing_interval = message_age; /* Search for the current retry rule. The cutoff time of the @@ -702,7 +704,7 @@ for (i = 0; i < 3; i++) always times out, but we can't compute a retry time. */ final_rule = NULL; - for (rule = retry->rules; rule != NULL; rule = rule->next) + for (rule = retry->rules; rule; rule = rule->next) { if (failing_interval <= rule->timeout) break; final_rule = rule; @@ -714,10 +716,8 @@ for (i = 0; i < 3; i++) flag is false (can be forced via fixdb from outside, but ensure it is consistent with the rules whenever we go through here). */ - if (rule != NULL) - { + if (rule) retry_record->expired = FALSE; - } /* Otherwise, set the retry timeout expired, and set the final rule as the one from which to compute the next retry time. Subsequent @@ -756,13 +756,14 @@ for (i = 0; i < 3; i++) this is a small bit of code, and it does no harm to leave it in place, just in case. */ - if (received_time <= retry_record->first_failed && - addr == endaddr && !retry_record->expired && rule != NULL) + if ( received_time <= retry_record->first_failed + && addr == endaddr + && !retry_record->expired + && rule) { retry_rule *last_rule; - for (last_rule = rule; - last_rule->next != NULL; - last_rule = last_rule->next); + for (last_rule = rule; last_rule->next; last_rule = last_rule->next) + ; if (now - received_time > last_rule->timeout) { DEBUG(D_retry) debug_printf("on queue longer than maximum retry\n"); @@ -778,9 +779,12 @@ for (i = 0; i < 3; i++) case set the next retry time to now, so that one delivery attempt happens for subsequent messages. */ - if (rule == NULL) next_try = now; else + if (!rule) + next_try = now; + else { - if (rule->rule == 'F') next_try = now + rule->p1; + if (rule->rule == 'F') + next_try = now + rule->p1; else /* rule = 'G' or 'H' */ { int last_predicted_gap = @@ -790,9 +794,7 @@ for (i = 0; i < 3; i++) last_predicted_gap : last_actual_gap; int next_gap = (lastgap * rule->p2)/1000; if (rule->rule == 'G') - { next_try = now + ((lastgap < rule->p1)? rule->p1 : next_gap); - } else /* The 'H' rule */ { next_try = now + rule->p1; @@ -853,7 +855,6 @@ for (i = 0; i < 3; i++) time was not reached (or because of hosts_max_try). */ if (update_count > 0 && update_count == timedout_count) - { if (!testflag(endaddr, af_retry_skipped)) { DEBUG(D_retry) debug_printf("timed out: all retries expired\n"); @@ -864,7 +865,6 @@ for (i = 0; i < 3; i++) DEBUG(D_retry) debug_printf("timed out but some hosts were skipped\n"); } - } } /* Loop for an address and its parents */ /* If this is a deferred address, and retry processing was requested by @@ -880,7 +880,7 @@ for (i = 0; i < 3; i++) if (i == 2) /* Handling defers */ { - if (endaddr->retries != NULL && timed_out) + if (endaddr->retries && timed_out) { if (last_first == endaddr) paddr = saved_paddr; addr = *paddr; @@ -928,7 +928,7 @@ for (i = 0; i < 3; i++) /* Close and unlock the database */ -if (dbm_file != NULL) dbfn_close(dbm_file); +if (dbm_file) dbfn_close(dbm_file); DEBUG(D_retry) debug_printf("end of retry processing\n"); } diff --git a/src/src/transport.c b/src/src/transport.c index 8e69fb686..c998404b2 100644 --- a/src/src/transport.c +++ b/src/src/transport.c @@ -139,14 +139,11 @@ readconf_driver_init(US"transport", /* Now scan the configured transports and check inconsistencies. A shadow transport is permitted only for local transports. */ -for (t = transports; t != NULL; t = t->next) +for (t = transports; t; t = t->next) { - if (!t->info->local) - { - if (t->shadow != NULL) - log_write(0, LOG_PANIC_DIE|LOG_CONFIG, - "shadow transport not allowed on non-local transport %s", t->name); - } + if (!t->info->local && t->shadow) + log_write(0, LOG_PANIC_DIE|LOG_CONFIG, + "shadow transport not allowed on non-local transport %s", t->name); if (t->body_only && t->headers_only) log_write(0, LOG_PANIC_DIE|LOG_CONFIG, diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index 6b0781096..4403fe113 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -2322,6 +2322,7 @@ that max_rcpt will be large, so all addresses will be done at once. */ for (addr = first_addr; addr && address_count < max_rcpt; addr = addr->next) + if (addr->transport_return == PENDING_DEFER) { int count; BOOL no_flush; @@ -2330,8 +2331,6 @@ for (addr = first_addr; addr->dsn_aware = peer_offered & PEER_OFFERED_DSN ? dsn_support_yes : dsn_support_no; - if (addr->transport_return != PENDING_DEFER) continue; - address_count++; no_flush = pipelining_active && (!mua_wrapper || addr->next); @@ -3066,9 +3065,7 @@ propagate it from the initial */ if (ok && transport_pass_socket(tblock->name, host->name, host->address, new_message_id, inblock.sock)) - { send_quit = FALSE; - } } /* If RSET failed and there are addresses left, they get deferred. */ @@ -3205,10 +3202,10 @@ prepare_addresses(address_item *addrlist, host_item *host) { address_item *first_addr = NULL; address_item *addr; -for (addr = addrlist; addr != NULL; addr = addr->next) +for (addr = addrlist; addr; addr = addr->next) if (addr->transport_return == DEFER) { - if (first_addr == NULL) first_addr = addr; + if (!first_addr) first_addr = addr; addr->transport_return = PENDING_DEFER; addr->basic_errno = 0; addr->more_errno = (host->mx >= 0)? 'M' : 'A'; @@ -3256,7 +3253,6 @@ int hosts_total = 0; int total_hosts_tried = 0; address_item *addr; BOOL expired = TRUE; -BOOL continuing = continue_hostname != NULL; uschar *expanded_hosts = NULL; uschar *pistring; uschar *tid = string_sprintf("%s transport", tblock->name); @@ -3268,9 +3264,15 @@ host_item *host = NULL; DEBUG(D_transport) { debug_printf("%s transport entered\n", tblock->name); - for (addr = addrlist; addr != NULL; addr = addr->next) + for (addr = addrlist; addr; addr = addr->next) debug_printf(" %s\n", addr->address); - if (continuing) debug_printf("already connected to %s [%s]\n", + if (hostlist) + { + debug_printf("hostlist:\n"); + for (host = hostlist; host; host = host->next) + debug_printf(" %s:%d\n", host->name, host->port); + } + if (continue_hostname) debug_printf("already connected to %s [%s]\n", continue_hostname, continue_host_address); } @@ -3286,9 +3288,9 @@ same one in order to be passed to a single transport - or if the transport has a host list with hosts_override set, use the host list supplied with the transport. It is an error for this not to exist. */ -if (hostlist == NULL || (ob->hosts_override && ob->hosts != NULL)) +if (!hostlist || (ob->hosts_override && ob->hosts)) { - if (ob->hosts == NULL) + if (!ob->hosts) { addrlist->message = string_sprintf("%s transport called with no hosts set", tblock->name); @@ -3307,7 +3309,7 @@ if (hostlist == NULL || (ob->hosts_override && ob->hosts != NULL)) as the hosts string will never be used again, it doesn't matter that we replace all the : characters with zeros. */ - if (ob->hostlist == NULL) + if (!ob->hostlist) { uschar *s = ob->hosts; @@ -3317,7 +3319,7 @@ if (hostlist == NULL || (ob->hosts_override && ob->hosts != NULL)) { addrlist->message = string_sprintf("failed to expand list of hosts " "\"%s\" in %s transport: %s", s, tblock->name, expand_string_message); - addrlist->transport_return = search_find_defer? DEFER : PANIC; + addrlist->transport_return = search_find_defer ? DEFER : PANIC; return FALSE; /* Only top address has status */ } DEBUG(D_transport) debug_printf("expanded list of hosts \"%s\" to " @@ -3330,7 +3332,7 @@ if (hostlist == NULL || (ob->hosts_override && ob->hosts != NULL)) host_build_hostlist(&hostlist, s, ob->hosts_randomize); /* Check that the expansion yielded something useful. */ - if (hostlist == NULL) + if (!hostlist) { addrlist->message = string_sprintf("%s transport has empty hosts setting", tblock->name); @@ -3356,17 +3358,17 @@ must sort it into a random order if it did not come from MX records and has not already been randomized (but don't bother if continuing down an existing connection). */ -else if (ob->hosts_randomize && hostlist->mx == MX_NONE && !continuing) +else if (ob->hosts_randomize && hostlist->mx == MX_NONE && !continue_hostname) { host_item *newlist = NULL; - while (hostlist != NULL) + while (hostlist) { host_item *h = hostlist; hostlist = hostlist->next; h->sort_key = random_number(100); - if (newlist == NULL) + if (!newlist) { h->next = NULL; newlist = h; @@ -3379,7 +3381,7 @@ else if (ob->hosts_randomize && hostlist->mx == MX_NONE && !continuing) else { host_item *hh = newlist; - while (hh->next != NULL) + while (hh->next) { if (h->sort_key < hh->next->sort_key) break; hh = hh->next; @@ -3441,23 +3443,22 @@ the current message. To cope with this, we have to go round the loop a second time. After that, set the status and error data for any addresses that haven't had it set already. */ -for (cutoff_retry = 0; expired && - cutoff_retry < ((ob->delay_after_cutoff)? 1 : 2); +for (cutoff_retry = 0; + expired && cutoff_retry < (ob->delay_after_cutoff ? 1 : 2); cutoff_retry++) { host_item *nexthost = NULL; int unexpired_hosts_tried = 0; for (host = hostlist; - host != NULL && - unexpired_hosts_tried < ob->hosts_max_try && - total_hosts_tried < ob->hosts_max_try_hardlimit; + host + && unexpired_hosts_tried < ob->hosts_max_try + && total_hosts_tried < ob->hosts_max_try_hardlimit; host = nexthost) { int rc; int host_af; uschar *rs; - BOOL serialized = FALSE; BOOL host_is_expired = FALSE; BOOL message_defer = FALSE; BOOL some_deferred = FALSE; @@ -3487,7 +3488,7 @@ for (cutoff_retry = 0; expired && Note that we mustn't skip unusable hosts if the address is not unset; they may be needed as expired hosts on the 2nd time round the cutoff loop. */ - if (host->address == NULL) + if (!host->address) { int new_port, flags; host_item *hh; @@ -3546,7 +3547,7 @@ for (cutoff_retry = 0; expired && "HOST_FIND_AGAIN" : "HOST_FIND_FAILED", host->name); host->status = hstatus_unusable; - for (addr = addrlist; addr != NULL; addr = addr->next) + for (addr = addrlist; addr; addr = addr->next) { if (addr->transport_return != DEFER) continue; addr->basic_errno = ERRNO_UNKNOWNHOST; @@ -3562,7 +3563,7 @@ for (cutoff_retry = 0; expired && if (rc == HOST_FOUND_LOCAL && !ob->allow_localhost) { - for (addr = addrlist; addr != NULL; addr = addr->next) + for (addr = addrlist; addr; addr = addr->next) { addr->basic_errno = 0; addr->message = string_sprintf("%s transport found host %s to be " @@ -3578,8 +3579,10 @@ for (cutoff_retry = 0; expired && result of the lookup. Set expired FALSE, to save the outer loop executing twice. */ - if (continuing && (Ustrcmp(continue_hostname, host->name) != 0 || - Ustrcmp(continue_host_address, host->address) != 0)) + if ( continue_hostname + && ( Ustrcmp(continue_hostname, host->name) != 0 + || Ustrcmp(continue_host_address, host->address) != 0 + ) ) { expired = FALSE; continue; /* With next host */ @@ -3603,11 +3606,9 @@ for (cutoff_retry = 0; expired && &domainlist_anchor, NULL, MCL_DOMAIN, TRUE, NULL) == OK)) { expired = FALSE; - for (addr = addrlist; addr != NULL; addr = addr->next) - { - if (addr->transport_return != DEFER) continue; - addr->message = US"domain matches queue_smtp_domains, or -odqs set"; - } + for (addr = addrlist; addr; addr = addr->next) + if (addr->transport_return == DEFER) + addr->message = US"domain matches queue_smtp_domains, or -odqs set"; continue; /* With next host */ } @@ -3630,8 +3631,8 @@ for (cutoff_retry = 0; expired && the standard SMTP port. A host may have its own port setting that overrides the default. */ - pistring = string_sprintf(":%d", (host->port == PORT_NONE)? - port : host->port); + pistring = string_sprintf(":%d", host->port == PORT_NONE + ? port : host->port); if (Ustrcmp(pistring, ":25") == 0) pistring = US""; /* Select IPv4 or IPv6, and choose an outgoing interface. If the interface @@ -3640,7 +3641,7 @@ for (cutoff_retry = 0; expired && because connections to the same host from a different interface should be treated separately. */ - host_af = (Ustrchr(host->address, ':') == NULL)? AF_INET : AF_INET6; + host_af = Ustrchr(host->address, ':') == NULL ? AF_INET : AF_INET6; if ((rs = ob->interface) && *rs) { if (!smtp_get_interface(rs, host_af, addrlist, &interface, tid)) @@ -3681,24 +3682,24 @@ for (cutoff_retry = 0; expired && switch (host->status) { case hstatus_unusable: - expired = FALSE; - setflag(addrlist, af_retry_skipped); - /* Fall through */ + expired = FALSE; + setflag(addrlist, af_retry_skipped); + /* Fall through */ case hstatus_unusable_expired: - switch (host->why) - { - case hwhy_retry: hosts_retry++; break; - case hwhy_failed: hosts_fail++; break; - case hwhy_deferred: hosts_defer++; break; - } - - /* If there was a retry message key, implying that previously there - was a message-specific defer, we don't want to update the list of - messages waiting for these hosts. */ - - if (retry_message_key != NULL) update_waiting = FALSE; - continue; /* With the next host or IP address */ + switch (host->why) + { + case hwhy_retry: hosts_retry++; break; + case hwhy_failed: hosts_fail++; break; + case hwhy_deferred: hosts_defer++; break; + } + + /* If there was a retry message key, implying that previously there + was a message-specific defer, we don't want to update the list of + messages waiting for these hosts. */ + + if (retry_message_key) update_waiting = FALSE; + continue; /* With the next host or IP address */ } } @@ -3707,12 +3708,11 @@ for (cutoff_retry = 0; expired && else { - if (host->address == NULL || - host->status != hstatus_unusable_expired || - host->last_try > received_time) + if ( !host->address + || host->status != hstatus_unusable_expired + || host->last_try > received_time) continue; - DEBUG(D_transport) - debug_printf("trying expired host %s [%s]%s\n", + DEBUG(D_transport) debug_printf("trying expired host %s [%s]%s\n", host->name, host->address, pistring); host_is_expired = TRUE; } @@ -3729,8 +3729,8 @@ for (cutoff_retry = 0; expired && and remember this for later deletion. Do not do any of this if we are sending the message down a pre-existing connection. */ - if (!continuing && - verify_check_given_host(&ob->serialize_hosts, host) == OK) + if ( !continue_hostname + && verify_check_given_host(&ob->serialize_hosts, host) == OK) { serialize_key = string_sprintf("host-serialize-%s", host->name); if (!enq_start(serialize_key, 1)) @@ -3741,7 +3741,6 @@ for (cutoff_retry = 0; expired && hosts_serial++; continue; } - serialized = TRUE; } /* OK, we have an IP address that is not waiting for its retry time to @@ -3755,11 +3754,11 @@ for (cutoff_retry = 0; expired && DEBUG(D_transport) debug_printf("delivering %s to %s [%s] (%s%s)\n", message_id, host->name, host->address, addrlist->address, - (addrlist->next == NULL)? "" : ", ..."); + addrlist->next ? ", ..." : ""); set_process_info("delivering %s to %s [%s] (%s%s)", message_id, host->name, host->address, addrlist->address, - (addrlist->next == NULL)? "" : ", ..."); + addrlist->next ? ", ..." : ""); /* This is not for real; don't do the delivery. If there are any remaining hosts, list them. */ @@ -3768,7 +3767,7 @@ for (cutoff_retry = 0; expired && { host_item *host2; set_errno_nohost(addrlist, 0, NULL, OK, FALSE); - for (addr = addrlist; addr != NULL; addr = addr->next) + for (addr = addrlist; addr; addr = addr->next) { addr->host_used = host; addr->special_action = '*'; @@ -3778,9 +3777,9 @@ for (cutoff_retry = 0; expired && { debug_printf("*** delivery by %s transport bypassed by -N option\n" "*** host and remaining hosts:\n", tblock->name); - for (host2 = host; host2 != NULL; host2 = host2->next) + for (host2 = host; host2; host2 = host2->next) debug_printf(" %s [%s]\n", host2->name, - (host2->address == NULL)? US"unset" : host2->address); + host2->address ? host2->address : US"unset"); } rc = OK; } @@ -3850,8 +3849,8 @@ for (cutoff_retry = 0; expired && failures, where the log has already been written. If all hosts defer a general message is written at the end. */ - if (rc == DEFER && first_addr->basic_errno != ERRNO_AUTHFAIL && - first_addr->basic_errno != ERRNO_TLSFAILURE) + if (rc == DEFER && first_addr->basic_errno != ERRNO_AUTHFAIL + && first_addr->basic_errno != ERRNO_TLSFAILURE) write_logs(first_addr, host); #ifndef DISABLE_EVENT @@ -3892,16 +3891,18 @@ for (cutoff_retry = 0; expired && /* Delivery attempt finished */ - rs = (rc == OK)? US"OK" : (rc == DEFER)? US"DEFER" : (rc == ERROR)? - US"ERROR" : US"?"; + rs = rc == OK ? US"OK" + : rc == DEFER ? US"DEFER" + : rc == ERROR ? US"ERROR" + : US"?"; set_process_info("delivering %s: just tried %s [%s] for %s%s: result %s", message_id, host->name, host->address, addrlist->address, - (addrlist->next == NULL)? "" : " (& others)", rs); + addrlist->next ? " (& others)" : "", rs); /* Release serialization if set up */ - if (serialized) enq_end(serialize_key); + if (serialize_key) enq_end(serialize_key); /* If the result is DEFER, or if a host retry record is known to exist, we need to add an item to the retry chain for updating the retry database @@ -3911,10 +3912,10 @@ for (cutoff_retry = 0; expired && the unusable tree at the outer level, so even if different address blocks contain the same address, it still won't get tried again.) */ - if (rc == DEFER || retry_host_key != NULL) + if (rc == DEFER || retry_host_key) { - int delete_flag = (rc != DEFER)? rf_delete : 0; - if (retry_host_key == NULL) + int delete_flag = rc != DEFER ? rf_delete : 0; + if (!retry_host_key) { BOOL incl_ip; if (exp_bool(addrlist, US"transport", tblock->name, D_transport, @@ -3922,9 +3923,9 @@ for (cutoff_retry = 0; expired && ob->expand_retry_include_ip_address, &incl_ip) != OK) incl_ip = TRUE; /* error; use most-specific retry record */ - retry_host_key = incl_ip ? - string_sprintf("T:%S:%s%s", host->name, host->address, pistring) : - string_sprintf("T:%S%s", host->name, pistring); + retry_host_key = incl_ip + ? string_sprintf("T:%S:%s%s", host->name, host->address, pistring) + : string_sprintf("T:%S%s", host->name, pistring); } /* If a delivery of another message over an existing SMTP connection @@ -3937,7 +3938,7 @@ for (cutoff_retry = 0; expired && host is genuinely down, another non-continued message delivery will notice it soon enough. */ - if (delete_flag != 0 || !continuing) + if (delete_flag != 0 || !continue_hostname) retry_add_item(first_addr, retry_host_key, rf_host | delete_flag); /* We may have tried an expired host, if its retry time has come; ensure @@ -3945,8 +3946,8 @@ for (cutoff_retry = 0; expired && if (rc == DEFER) { - host->status = (host_is_expired)? - hstatus_unusable_expired : hstatus_unusable; + host->status = host_is_expired + ? hstatus_unusable_expired : hstatus_unusable; host->why = hwhy_deferred; } } @@ -3959,10 +3960,10 @@ for (cutoff_retry = 0; expired && reasonable. Also, stop the message from being remembered as waiting for specific hosts. */ - if (message_defer || retry_message_key != NULL) + if (message_defer || retry_message_key) { - int delete_flag = message_defer? 0 : rf_delete; - if (retry_message_key == NULL) + int delete_flag = message_defer ? 0 : rf_delete; + if (!retry_message_key) { BOOL incl_ip; if (exp_bool(addrlist, US"transport", tblock->name, D_transport, @@ -3970,10 +3971,10 @@ for (cutoff_retry = 0; expired && ob->expand_retry_include_ip_address, &incl_ip) != OK) incl_ip = TRUE; /* error; use most-specific retry record */ - retry_message_key = incl_ip ? - string_sprintf("T:%S:%s%s:%s", host->name, host->address, pistring, - message_id) : - string_sprintf("T:%S%s:%s", host->name, pistring, message_id); + retry_message_key = incl_ip + ? string_sprintf("T:%S:%s%s:%s", host->name, host->address, pistring, + message_id) + : string_sprintf("T:%S%s:%s", host->name, pistring, message_id); } retry_add_item(addrlist, retry_message_key, rf_message | rf_host | delete_flag); @@ -4007,7 +4008,7 @@ for (cutoff_retry = 0; expired && case when we were trying to deliver down an existing channel and failed. Don't try any other hosts in this case. */ - if (continuing) break; + if (continue_hostname) break; /* If the whole delivery, or some individual addresses, were deferred and there are more hosts that could be tried, do not count this host towards @@ -4017,16 +4018,16 @@ for (cutoff_retry = 0; expired && important because if we don't try all hosts, the address will never time out. NOTE: this does not apply to hosts_max_try_hardlimit. */ - if ((rc == DEFER || some_deferred) && nexthost != NULL) + if ((rc == DEFER || some_deferred) && nexthost) { BOOL timedout; retry_config *retry = retry_find_config(host->name, NULL, 0, 0); - if (retry != NULL && retry->rules != NULL) + if (retry && retry->rules) { retry_rule *last_rule; for (last_rule = retry->rules; - last_rule->next != NULL; + last_rule->next; last_rule = last_rule->next); timedout = time(NULL) - received_time > last_rule->timeout; } @@ -4060,7 +4061,7 @@ specific failures. Force the delivery status for all addresses to FAIL. */ if (mua_wrapper) { - for (addr = addrlist; addr != NULL; addr = addr->next) + for (addr = addrlist; addr; addr = addr->next) addr->transport_return = FAIL; goto END_TRANSPORT; } diff --git a/test/stderr/0143 b/test/stderr/0143 index 9b9143c72..3092135fd 100644 --- a/test/stderr/0143 +++ b/test/stderr/0143 @@ -14,6 +14,8 @@ router_name transport_name my_smtp transport entered userx@domain.com +hostlist: + 127.0.0.1:-1 checking status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111/ip4.ip4.ip4.ip4 status = usable delivering 10HmaX-0005vi-00 to 127.0.0.1 [127.0.0.1] (userx@domain.com) diff --git a/test/stderr/0275 b/test/stderr/0275 index 0806065d4..1878d3618 100644 --- a/test/stderr/0275 +++ b/test/stderr/0275 @@ -195,7 +195,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -304,7 +304,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -333,7 +333,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -userx@test.ex: no retry items + userx@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0278 b/test/stderr/0278 index 2a1afdd06..702d35acc 100644 --- a/test/stderr/0278 +++ b/test/stderr/0278 @@ -142,7 +142,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: CALLER@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -206,7 +206,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> CALLER@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -235,7 +235,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -CALLER@test.ex: no retry items + CALLER@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0357 b/test/stderr/0357 index 6073e8c62..9cc0a6bb5 100644 --- a/test/stderr/0357 +++ b/test/stderr/0357 @@ -33,7 +33,7 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -userx@test.ex + userx@test.ex locking TESTSUITE/spool/db/retry.lockfile retry for R:userx@test.ex: = * 0 0 failing_interval=ttt message_age=ttt @@ -84,7 +84,7 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -userx@test.ex + userx@test.ex locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:userx@test.ex deleted retry information for R:test.ex @@ -138,7 +138,7 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -userx@test.ex + userx@test.ex locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:userx@test.ex deleted retry information for R:test.ex @@ -176,7 +176,7 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -userx@test.ex: no retry items + userx@test.ex: no retry items end of retry processing LOG: queue_run MAIN End queue run: pid=pppp diff --git a/test/stderr/0358 b/test/stderr/0358 index 7eec3d43f..6f75cf630 100644 --- a/test/stderr/0358 +++ b/test/stderr/0358 @@ -43,14 +43,14 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -usery@test.ex + usery@test.ex locking TESTSUITE/spool/db/retry.lockfile retry for R:usery@test.ex: = * 0 0 failing_interval=ttt message_age=ttt Writing retry data for R:usery@test.ex: first failed=dddd last try=dddd next try=+1 expired=0 errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 451 Temporary error -userx@test.ex + userx@test.ex retry for R:userx@test.ex: = * 0 0 failing_interval=ttt message_age=ttt Writing retry data for R:userx@test.ex: @@ -121,7 +121,7 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -usery@test.ex + usery@test.ex locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:usery@test.ex deleted retry information for R:test.ex @@ -130,7 +130,7 @@ failing_interval=ttt message_age=ttt Writing retry data for R:usery@test.ex: first failed=dddd last try=dddd next try=+2 expired=0 errno=-44 more_errno=dd,A H=127.0.0.1 [127.0.0.1]: SMTP error from remote mail server after RCPT TO:: 451 Temporary error -userx@test.ex + userx@test.ex deleted retry information for R:userx@test.ex deleted retry information for R:test.ex retry for R:userx@test.ex: = * 0 0 diff --git a/test/stderr/0361 b/test/stderr/0361 index 1c8029894..bcceadc7e 100644 --- a/test/stderr/0361 +++ b/test/stderr/0361 @@ -83,7 +83,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: kilos@recurse.test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -119,7 +119,7 @@ rewrite_one_header: type=F: From: CALLER_NAME re-routed to kilos@recurse.test.ex.test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -158,7 +158,7 @@ routed by r3 router envelope to: kilos@recurse.test.ex.test.ex transport: locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -206,7 +206,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> kilos@recurse.test.ex.test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available diff --git a/test/stderr/0386 b/test/stderr/0386 index 422f74d21..aaea76063 100644 --- a/test/stderr/0386 +++ b/test/stderr/0386 @@ -246,7 +246,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: 2@b locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -283,7 +283,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> 2@b <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -321,7 +321,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -2@b: no retry items + 2@b: no retry items Failed addresses: Deferred addresses: end of retry processing @@ -426,7 +426,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: 2@b locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -462,7 +462,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> 2@b <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -500,7 +500,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaY-0005vi-00 Processing retry items Succeeded addresses: -2@b: no retry items + 2@b: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0388 b/test/stderr/0388 index accc257e1..b4d405fc2 100644 --- a/test/stderr/0388 +++ b/test/stderr/0388 @@ -8,7 +8,7 @@ DSN: r1 propagating DSN set_process_info: pppp delivering specified messages set_process_info: pppp delivering 10HmaX-0005vi-00 locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -75,7 +75,7 @@ changed uid/gid: remote delivery to x@y with transport=smtp set_process_info: pppp delivering 10HmaX-0005vi-00 using smtp checking status of 127.0.0.1 locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -106,7 +106,7 @@ address match test: subject=*@127.0.0.1 pattern=* *@127.0.0.1 in "*"? yes (matched "*") checking status of V4NET.0.0.0 locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -134,9 +134,9 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -x@y + x@y locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR @@ -164,6 +164,7 @@ dbfn_write: key=T:V4NET.0.0.0:V4NET.0.0.0:1224 timed out: all retries expired LOG: MAIN ** x@y: retry timeout exceeded +closed hints database and lockfile end of retry processing exec TESTSUITE/eximdir/exim -DEXIM_PATH=TESTSUITE/eximdir/exim -C TESTSUITE/test-config -d=0xebb95ced -odi -odi -t -oem -oi -f <> -E10HmaX-0005vi-00 Exim version x.yz .... @@ -232,7 +233,7 @@ DSN: r1 propagating DSN set_process_info: pppp delivering specified messages set_process_info: pppp delivering 10HmaY-0005vi-00 locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY @@ -245,6 +246,7 @@ dbfn_read: key=R:CALLER@myhost.test.ex:<> no domain retry record no address retry record CALLER@myhost.test.ex: queued for routing +closed hints database and lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> routing CALLER@myhost.test.ex --------> r0 router <-------- @@ -275,7 +277,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaY-0005vi-00 Processing retry items Succeeded addresses: -CALLER@myhost.test.ex: no retry items + CALLER@myhost.test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0398 b/test/stderr/0398 index ca824b0d5..f7d82042f 100644 --- a/test/stderr/0398 +++ b/test/stderr/0398 @@ -117,7 +117,7 @@ routed by r2 router host 127.0.0.1 [127.0.0.1] Attempting full verification using callout locking TESTSUITE/spool/db/callout.lockfile -locked TESTSUITE/spool/db/callout.lockfile +locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/callout) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR @@ -125,6 +125,7 @@ dbfn_read: key=remote callout cache: found domain record for remote dbfn_read: key=qq@remote callout cache: no address record found for qq@remote +closed hints database and lockfile interface=NULL port=1224 Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected SMTP<< 220 Server ready @@ -142,7 +143,7 @@ cmd buf flush ddd bytes SMTP>> QUIT cmd buf flush ddd bytes locking TESTSUITE/spool/db/callout.lockfile -locked TESTSUITE/spool/db/callout.lockfile +locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/callout) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT @@ -151,6 +152,7 @@ wrote callout cache domain record for remote: result=1 postmaster=0 random=0 dbfn_write: key=qq@remote wrote negative callout cache address record for qq@remote +closed hints database and lockfile ----------- end verify ------------ l_message: $acl_verify_message warn: condition test succeeded in ACL "rcpt" @@ -222,7 +224,7 @@ routed by r2 router host 127.0.0.1 [127.0.0.1] Attempting full verification using callout locking TESTSUITE/spool/db/callout.lockfile -locked TESTSUITE/spool/db/callout.lockfile +locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/callout) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR @@ -231,6 +233,7 @@ callout cache: found domain record for remote dbfn_read: key=qq@remote callout cache: found address record for qq@remote callout cache: address record is negative +closed hints database and lockfile ----------- end verify ------------ l_message: $acl_verify_message warn: condition test succeeded in ACL "rcpt" diff --git a/test/stderr/0402 b/test/stderr/0402 index 24a4fcd4d..ed2835589 100644 --- a/test/stderr/0402 +++ b/test/stderr/0402 @@ -226,7 +226,7 @@ Delivery address list: rd+CALLER@test.ex rd+usery@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -421,7 +421,7 @@ routed by r1 router envelope to: CALLER@test.ex transport: t1 locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -448,7 +448,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> TESTSUITE/test-mail/junk <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -506,7 +506,7 @@ LOG: MAIN => TESTSUITE/test-mail/junk R=r5 T=ft1 --------> TESTSUITE/test-mail/junk <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -561,7 +561,7 @@ LOG: MAIN => TESTSUITE/test-mail/junk R=r4 T=ft1 --------> CALLER@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -586,7 +586,7 @@ LOG: MAIN => CALLER R=r1 T=t1 --------> usery@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -614,7 +614,7 @@ LOG: MAIN => usery R=r2 T=t1 --------> userz@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -646,15 +646,15 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -userz@test.ex: no retry items -usery@test.ex: no retry items -CALLER@test.ex: no retry items -TESTSUITE/test-mail/junk: no retry items -rd+CALLER@test.ex: no retry items -TESTSUITE/test-mail/junk: no retry items -rd+usery@test.ex: no retry items -rd+CALLER@test.ex: no retry items -rd+usery@test.ex: no retry items + userz@test.ex: no retry items + usery@test.ex: no retry items + CALLER@test.ex: no retry items + TESTSUITE/test-mail/junk: no retry items + rd+CALLER@test.ex: no retry items + TESTSUITE/test-mail/junk: no retry items + rd+usery@test.ex: no retry items + rd+CALLER@test.ex: no retry items + rd+usery@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0403 b/test/stderr/0403 index 0f5338b38..d75d61b01 100644 --- a/test/stderr/0403 +++ b/test/stderr/0403 @@ -71,7 +71,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -134,7 +134,7 @@ routed by r1 router envelope to: userx@test.ex transport: locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -153,7 +153,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> TESTSUITE/test-mail/junk <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available diff --git a/test/stderr/0404 b/test/stderr/0404 index e8746d9c5..a1945a2a7 100644 --- a/test/stderr/0404 +++ b/test/stderr/0404 @@ -174,7 +174,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -217,7 +217,7 @@ routed by r2 router envelope to: userx@test.ex transport: locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -236,7 +236,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ... <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -3370,7 +3370,7 @@ Delivery address list: sender@test.ex sender@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -17976,7 +17976,7 @@ sender@test.ex is a duplicate address: discarded >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> sender@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -18016,7 +18016,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaY-0005vi-00 Processing retry items Succeeded addresses: -sender@test.ex: no retry items + sender@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing @@ -18051,9 +18051,9 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: ->sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ...: no retry items -userx@test.ex: no retry items -userx@test.ex: no retry items + >sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex,sender@test.ex, ...: no retry items + userx@test.ex: no retry items + userx@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0408 b/test/stderr/0408 index 96b57117d..cd782a8cc 100644 --- a/test/stderr/0408 +++ b/test/stderr/0408 @@ -71,7 +71,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -135,7 +135,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -173,7 +173,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -userx@test.ex: no retry items + userx@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0432 b/test/stderr/0432 index a27a2fe83..722408372 100644 --- a/test/stderr/0432 +++ b/test/stderr/0432 @@ -78,7 +78,7 @@ get[host|ipnode]byname[2] looked up these IP addresses: name=127.0.0.1 address=127.0.0.1 Attempting full verification using callout locking TESTSUITE/spool/db/callout.lockfile -locked TESTSUITE/spool/db/callout.lockfile +locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/callout) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR @@ -86,6 +86,7 @@ dbfn_read: key=y callout cache: no domain record found for y dbfn_read: key=x@y callout cache: no address record found for x@y +closed hints database and lockfile interface=NULL port=1224 Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected SMTP<< 220 server ready @@ -103,7 +104,7 @@ cmd buf flush ddd bytes SMTP>> QUIT cmd buf flush ddd bytes locking TESTSUITE/spool/db/callout.lockfile -locked TESTSUITE/spool/db/callout.lockfile +locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/callout) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT @@ -112,6 +113,7 @@ wrote callout cache domain record for y: result=1 postmaster=0 random=0 dbfn_write: key=x@y wrote positive callout cache address record for x@y +closed hints database and lockfile ----------- end verify ------------ sender x@y verified ok accept: condition test succeeded in ACL "mail" @@ -178,7 +180,7 @@ get[host|ipnode]byname[2] looked up these IP addresses: name=127.0.0.1 address=127.0.0.1 Attempting full verification using callout locking TESTSUITE/spool/db/callout.lockfile -locked TESTSUITE/spool/db/callout.lockfile +locked TESTSUITE/spool/db/callout.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/callout) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR @@ -187,6 +189,7 @@ callout cache: found domain record for y dbfn_read: key=x@y callout cache: found address record for x@y callout cache: address record is positive +closed hints database and lockfile ----------- end verify ------------ sender x@y verified ok accept: condition test succeeded in ACL "mail" diff --git a/test/stderr/0476 b/test/stderr/0476 index b4f54c4f1..6868a902c 100644 --- a/test/stderr/0476 +++ b/test/stderr/0476 @@ -12,6 +12,8 @@ set_process_info: pppp delivering 10HmaX-0005vi-00 (queue run pid ppppp) set_process_info: pppp delivering 10HmaX-0005vi-00 using t1 t1 transport entered userx@test.ex +hostlist: + 127.0.0.1:-1 checking status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 status = usable delivering 10HmaX-0005vi-00 to 127.0.0.1 [127.0.0.1] (userx@test.ex) @@ -67,6 +69,8 @@ set_process_info: pppp delivering 10HmaZ-0005vi-00 set_process_info: pppp delivering 10HmaZ-0005vi-00 using t1 t1 transport entered CALLER@the.local.host.name +hostlist: + 127.0.0.1:-1 checking status of 127.0.0.1 127.0.0.1 [127.0.0.1]:1111 status = usable delivering 10HmaZ-0005vi-00 to 127.0.0.1 [127.0.0.1] (CALLER@the.local.host.name) @@ -100,6 +104,8 @@ set_process_info: pppp delivering 10HmaY-0005vi-00 (queue run pid ppppp) set_process_info: pppp delivering 10HmaY-0005vi-00 using t1 t1 transport entered usery@test.ex +hostlist: + 127.0.0.1:-1 checking status of 127.0.0.1 no message retry record 127.0.0.1 [127.0.0.1]:1111 status = unusable diff --git a/test/stderr/0487 b/test/stderr/0487 index 7f2ad5063..7b7aca3fe 100644 --- a/test/stderr/0487 +++ b/test/stderr/0487 @@ -101,7 +101,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -138,7 +138,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -178,7 +178,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -userx@test.ex: no retry items + userx@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/0529 b/test/stderr/0529 index 49ca6dcaf..a308cc147 100644 --- a/test/stderr/0529 +++ b/test/stderr/0529 @@ -32,17 +32,17 @@ LOG: MAIN == TESTSUITE/test-mail/rmbox R=r1 T=t1 defer (-22): mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/rmbox) Processing retry items Succeeded addresses: -x@test.ex: no retry items + x@test.ex: no retry items Failed addresses: Deferred addresses: -TESTSUITE/test-mail/rmbox + TESTSUITE/test-mail/rmbox locking TESTSUITE/spool/db/retry.lockfile retry for T:TESTSUITE/test-mail/rmbox:x@test.ex = *@test.ex -22 0 failing_interval=ttt message_age=ttt Writing retry data for T:TESTSUITE/test-mail/rmbox:x@test.ex first failed=dddd last try=dddd next try=+900 expired=0 errno=-22 more_errno=dd mailbox is full (MTA-imposed quota exceeded while writing to TESTSUITE/test-mail/rmbox) -x@test.ex: no retry items + x@test.ex: no retry items end of retry processing >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> @@ -76,11 +76,11 @@ LOG: retry_defer MAIN == TESTSUITE/test-mail/rmbox R=r1 T=t1 defer (-52): Retry time not yet reached Processing retry items Succeeded addresses: -x@test.ex: no retry items + x@test.ex: no retry items Failed addresses: Deferred addresses: -TESTSUITE/test-mail/rmbox: no retry items -x@test.ex: no retry items + TESTSUITE/test-mail/rmbox: no retry items + x@test.ex: no retry items end of retry processing LOG: queue_run MAIN End queue run: pid=pppp diff --git a/test/stderr/0554 b/test/stderr/0554 index 5cabbf9ae..460a2c22b 100644 --- a/test/stderr/0554 +++ b/test/stderr/0554 @@ -26,7 +26,7 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -x@y + x@y locking TESTSUITE/spool/db/retry.lockfile retry for R:x@y: = * 0 0 failing_interval=ttt message_age=ttt @@ -78,7 +78,7 @@ LOG: MAIN => x@y R=r1 T=smtp H=127.0.0.1 [127.0.0.1] C="250 OK" Processing retry items Succeeded addresses: -x@y + x@y locking TESTSUITE/spool/db/retry.lockfile deleted retry information for R:x@y: deleted retry information for R:x@y diff --git a/test/stderr/2600 b/test/stderr/2600 index 6f2eaeac1..62b96aaef 100644 --- a/test/stderr/2600 +++ b/test/stderr/2600 @@ -355,7 +355,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@myhost.test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -402,7 +402,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@myhost.test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -449,7 +449,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -userx@myhost.test.ex: no retry items + userx@myhost.test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/5004 b/test/stderr/5004 index c619887d3..4730672b5 100644 --- a/test/stderr/5004 +++ b/test/stderr/5004 @@ -75,7 +75,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -113,7 +113,7 @@ routed by r1 router envelope to: userx@test.ex transport: locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -132,7 +132,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> TESTSUITE/test-mail <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -171,9 +171,9 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -TESTSUITE/test-mail: no retry items -userx@test.ex: no retry items -userx@test.ex: no retry items + TESTSUITE/test-mail: no retry items + userx@test.ex: no retry items + userx@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing diff --git a/test/stderr/5005 b/test/stderr/5005 index ad683388f..b25c6c5be 100644 --- a/test/stderr/5005 +++ b/test/stderr/5005 @@ -71,7 +71,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: nofile@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -108,7 +108,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> nofile@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -165,7 +165,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -nofile@test.ex: no retry items + nofile@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing @@ -257,7 +257,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -293,7 +293,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -352,7 +352,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaY-0005vi-00 Processing retry items Succeeded addresses: -userx@test.ex: no retry items + userx@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing @@ -444,7 +444,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -480,7 +480,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -536,9 +536,9 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -userx@test.ex + userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR @@ -552,6 +552,7 @@ Writing retry data for T:userx@test.ex first failed=dddd last try=dddd next try=+86400 expired=0 errno=-22 more_errno=dd mailbox is full (MTA-imposed quota exceeded while writing to tmp/MAILDIR.myhost.test.ex) dbfn_write: key=T:userx@test.ex +closed hints database and lockfile end of retry processing delivery deferred: update_spool=1 header_rewritten=0 Writing spool header file: TESTSUITE/spool//input//hdr.pppp @@ -639,7 +640,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY @@ -652,6 +653,7 @@ dbfn_read: key=R:userx@test.ex: no domain retry record no address retry record userx@test.ex: queued for routing +closed hints database and lockfile >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> routing userx@test.ex --------> r1 router <-------- @@ -678,13 +680,14 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/retry: flags=O_RDONLY dbfn_read: key=T:userx@test.ex retry record exists: age=ttt (max 1w) time to retry = tttt expired = 0 +closed hints database and lockfile search_tidyup called changed uid/gid: local delivery to userx transport=t1 uid=CALLER_UID gid=CALLER_GID pid=pppp @@ -724,9 +727,9 @@ Processing retry items Succeeded addresses: Failed addresses: Deferred addresses: -userx@test.ex + userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN opened hints database TESTSUITE/spool/db/retry: flags=O_RDWR @@ -740,6 +743,7 @@ Writing retry data for T:userx@test.ex first failed=dddd last try=dddd next try=+86400 expired=0 errno=-22 more_errno=dd mailbox is full (MTA-imposed quota exceeded while writing to tmp/MAILDIR.myhost.test.ex) dbfn_write: key=T:userx@test.ex +closed hints database and lockfile end of retry processing delivery deferred: update_spool=1 header_rewritten=0 Writing spool header file: TESTSUITE/spool//input//hdr.pppp diff --git a/test/stderr/5006 b/test/stderr/5006 index 6162c9bb0..9dd41c8e8 100644 --- a/test/stderr/5006 +++ b/test/stderr/5006 @@ -71,7 +71,7 @@ DSN: set orcpt: NULL flags: 0 Delivery address list: userx@test.ex locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN ensuring TESTSUITE/spool/db/retry.lockfile is owned by exim @@ -108,7 +108,7 @@ search_tidyup called >>>>>>>>>>>>>>>> Local deliveries >>>>>>>>>>>>>>>> --------> userx@test.ex <-------- locking TESTSUITE/spool/db/retry.lockfile -locked TESTSUITE/spool/db/retry.lockfile +locked TESTSUITE/spool/db/retry.lockfile EXIM_DBOPEN(TESTSUITE/spool/db/retry) returned from EXIM_DBOPEN no retry data available @@ -163,7 +163,7 @@ changed uid/gid: post-delivery tidying set_process_info: pppp tidying up after delivering 10HmaX-0005vi-00 Processing retry items Succeeded addresses: -userx@test.ex: no retry items + userx@test.ex: no retry items Failed addresses: Deferred addresses: end of retry processing -- 2.25.1