X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/de6273b487f1b5599894b09c1c8793ac22fb6cc8..e1d04f48a45c9f8e8ff75610003048f8ead73219:/src/src/transports/smtp.c diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index 43b623513..c1f5ad45a 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -1409,7 +1409,7 @@ if (sx->pending_BDAT) if (errno == 0 && sx->buffer[0] == '4') { errno = ERRNO_DATA4XX; /*XXX does this actually get used? */ - sx->first_addr->more_errno |= + sx->addrlist->more_errno |= ((sx->buffer[1] - '0')*10 + sx->buffer[2] - '0') << 8; } return ERROR; @@ -1454,9 +1454,7 @@ smtp_setup_conn(smtp_context * sx, BOOL suppress_tls) dns_answer tlsa_dnsa; #endif BOOL pass_message = FALSE; - uschar * message = NULL; -int save_errno; int yield = OK; int rc; @@ -1551,14 +1549,13 @@ if (continue_hostname == NULL) if (sx->inblock.sock < 0) { uschar * msg = NULL; - int save_errno = errno; if (sx->verify) { msg = strerror(errno); HDEBUG(D_verify) debug_printf("connect: %s\n", msg); } set_errno_nohost(sx->addrlist, - save_errno == ETIMEDOUT ? ERRNO_CONNECTTIMEOUT : save_errno, + errno == ETIMEDOUT ? ERRNO_CONNECTTIMEOUT : errno, sx->verify ? string_sprintf("could not connect: %s", msg) : NULL, DEFER, FALSE); @@ -2104,13 +2101,13 @@ return OK; SEND_FAILED: code = '4'; message = US string_sprintf("send() to %s [%s] failed: %s", - sx->host->name, sx->host->address, strerror(save_errno)); + sx->host->name, sx->host->address, strerror(errno)); sx->send_quit = FALSE; goto FAILED; /* This label is jumped to directly when a TLS negotiation has failed, or was not done for a host for which it is required. Values will be set - in message and save_errno, and setting_up will always be true. Treat as + in message and errno, and setting_up will always be true. Treat as a temporary error. */ EHLOHELO_FAILED: @@ -2134,7 +2131,6 @@ return OK; tried again for a while. */ FAILED: - save_errno = errno; sx->ok = FALSE; /* For when reached by GOTO */ yield = code == '5' @@ -2143,7 +2139,7 @@ FAILED: #endif ? FAIL : DEFER; - set_errno(sx->addrlist, save_errno, message, yield, pass_message, sx->host + set_errno(sx->addrlist, errno, message, yield, pass_message, sx->host #ifdef EXPERIMENTAL_DSN_INFO , sx->smtp_greeting, sx->helo_response #endif @@ -2170,7 +2166,7 @@ writing RSET might have failed, or there may be other addresses whose hosts are specified in the transports, and therefore not visible at top level, in which case continue_more won't get set. */ -HDEBUG(D_transport|D_acl|D_v) debug_printf(" SMTP(close)>>\n"); +HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP(close)>>\n"); if (sx->send_quit) { shutdown(sx->outblock.sock, SHUT_WR); @@ -3291,7 +3287,7 @@ writing RSET might have failed, or there may be other addresses whose hosts are specified in the transports, and therefore not visible at top level, in which case continue_more won't get set. */ -HDEBUG(D_transport|D_acl|D_v) debug_printf(" SMTP(close)>>\n"); +HDEBUG(D_transport|D_acl|D_v) debug_printf_indent(" SMTP(close)>>\n"); if (sx.send_quit) { shutdown(sx.outblock.sock, SHUT_WR);